Creating Mac Widgets with Dashcode - Chris H. Pappas and William

LI
lienhejb
0 lượt tải
96
0

Nội dung tài liệu

Trang 1

Available as a PDF Electronic Book or Print On Demand Creating Mac Widgets with Dashcode 89 PAgeS William H. Murray and Chris H. Pappas www.allitebooks.com

Trang 2

About firstPress Apress's firstPress series is your source for understanding cutting-edge technology. Short, highly focused, and written by experts, Apress's firstPress books save you time and effort. They contain the information you could get based on intensive research yourself or if you were to attend a conference every other week—if only you had the time. They cover the concepts and techniques that will keep you ahead of the technology curve. Apress's firstPress books are real books, in your choice of electronic or print-on-demand format, with no rough edges even when the technology itself is still rough. You can't afford to be without them. Creating Mac Widgets with Dashcode Dear Reader, We have taught a lot of programming courses and written a lot of programming books in our careers, but this time we felt that Mac users would benefit the most by knowing how to develop Dashboard widgets with Dashcode rather than laboring over programming languages and endless pages of code. Our first goal in this short book is to introduce you to the major significant components of the Dashcode product and quickly teach you how to develop some interesting and exciting Dashboard widgets. The first half of the book concentrates on Dashcode templates and shows you how to use the stock templates, with just a little modification, to create your own unique widgets. The latter half of the book uses slightly more aggressive alterations to the templates and introduces you to some straightforward JavaScript code. With just a little effort, you'll be creating some really exciting widgets. The second goal is to get you right into using the Dashcode product, help you have fun developing widgets, and show you how easy it is to create those essential utilities that you have wanted to create for so long. Have fun! Chris H. Pappas and William H. Murray, Professors of Computer Science, State University of New York Affiliation, Binghamton, New York www.allitebooks.com

Trang 3

Contents Chapter 1: Widgets in a Hurry.....................................................1 A Little Widget History.......................................................................... 2 Ease............................................................................................................2 Focus..........................................................................................................3 Functionality...............................................................................................4 Cost ............................................................................................................5 Implementation...........................................................................................7 Distribution...............................................................................................12 The Look and Feel of a Good Apple Widget........................................18 Front Face Design Ideas............................................................................18 Back Face Design Ideas............................................................................19 Miscellaneous Design Ideas......................................................................20 What Widgets Can and Cannot Do......................................................20 The Problems with Widgets..................................................................20 Clutter.......................................................................................................20 Widget Removal.......................................................................................21 More Excitement Coming ....................................................................21 www.allitebooks.com

Trang 4

Chapter 2: Widgets Without Worry: Using Dashcode...................23 What Is Dashcode? ..............................................................................23 Where Is Dashcode and How Is It Installed? ......................................23 A Quick Look at Dashcode Features ...................................................28 Front Face Changes ..................................................................................36 Back Face Changes...................................................................................41 Important Dashcode Features and Tools.............................................44 View.........................................................................................................44 Library......................................................................................................46 Inspector...................................................................................................47 One Template Down, Nine To Go........................................................52 Chapter 3: Widget Templates: Thinking Out of the Box ...............53 The Countdown Timer Template .........................................................54 The Maps Template..............................................................................59 The RSS and the Daily Feed Templates...............................................66 The Podcast Template..........................................................................71 The Photocast Template.......................................................................75 The Photocast Template and .Mac Web Gallery........................................78 The Quartz Composer Template ..........................................................79 The Video Podcast Template................................................................83 The Gauge Template............................................................................86 Out of the Box—Not!...........................................................................89 ii Creating Mac Widgets with Dashcode www.allitebooks.com

Trang 5

Creating Mac Widgets with Dashcode by William H. Murray and Chris H. Pappas Welcome to the world of easy widget programming. Dashcode is Apple’s revolutionary product for automatically generating widget code. With Dashcode, you can work with a variety of widget templates and experiment with subtle changes in widget forms and properties. When you are ready to move on to more challenging projects, those same templates can serve as the base for exciting and unique widgets that you can add JavaScript code to in order to make even more functional. The key ingredient in Dashcode is ease of use. You’ll be developing widgets in no time at all. We’ll teach you how to start with small projects, and as you expand your knowledge, show you how to add interesting features to each widget. Widget programming fills the gap in your application needs. Once, you would either have had to purchase every application you needed or become a programmer and designed your own applications using massive compilers like those provided with Xcode. With Dashcode, much of what you need for your applications is generated automatically. Then, with a little JavaScript, you can create even more robust applications. This book will provide many of the development fundamentals you will need to be an active widget designer and creator. But, this book is only the beginning of what you can do with Dashcode! It’s all in the word: Dashcode. Dash for fast and code for what is being written. Dashcode, fast code. Creating Mac Widgets with Dashcode iii www.allitebooks.com

Trang 7

Chapter 1: Widgets in a Hurry In this chapter, you will learn about what widgets are, their short history, what they can and cannot do, their various types, problems that you might encounter with them, and how they are installed on your computer. This brief overview will put you on the right track for easily developing your own widgets with Dashcode. Of course, if all of this is familiar to you, you might want to jump right to Chapter 2, which goes into the process for developing your first widget with Apple’s Dashcode. What is a widget? This is almost a rhetorical question, since everyone familiar with OS X has probably bumped into a widget or two while investigating various Apple resources on Apple’s web site (www.apple.com). However, there is a formal definition that should be considered. In an Apple developer’s bulletin, Apple states, “Widgets are handy mini- applications built with web technologies and some specialized resources. They exist on Dashboard, a layer that appears over the desktop with a keystroke or mouse click. Widgets allow users to assemble a collection of information and tools that are most useful to them.” In other words, widgets are just small applications that use a special layer in OS X, called Dashboard, that allows easy user access. The easiest way to open the Dashboard layer is by selecting the Dashboard icon, which appears on the OS X dock. See Figure 1-1 for the actual icon. Figure 1-1. The Dashboard icon The simplest widgets are built from several pieces of code that might include graphics, HTML, and JavaScript components. Of course, the rub is getting those Creating Mac Widgets with Dashcode 1 www.allitebooks.com

Trang 8

various files connected and talking to each other. That is also the reason you will prefer using Dashcode—everything will be done automatically for you. So, just to make sure we’re clear about some terminology before proceeding, Dashboard is the screen or layer where widgets are installed and modified, and appear. You open Dashboard by selecting the Dashboard icon from the OS X dock. Dashcode, on the other hand, is where we will be doing our widget design and modifications. There will be more on the ins and outs of Dashcode starting with Chapter 2. A Little Widget History Widgets have had a relatively short life, starting with the latter versions of OS X 10.x. However, during this time, widgets have become extremely popular. Why? The “why” can be summed up in several key concepts: ease, focus, functionality, cost, implementation, and distribution. If you have been using widgets for a while, maybe you can even think of a few additional categories. Ease There was a time in personal computing when most applications were written by users. Trust us when we tell you that we were there when the Apple IIs were rolling off of the production line. When early users were writing their programs, they were either using assembly language or Apple’s version of interpreted BASIC. The applications were simple, short, and modestly fast. When an interpreted BASIC program is executed, the computer translates each line of program code afresh for each execution of the program. The translation process from BASIC to machine code often formed a speed bottleneck, though. It was just a short time later that Apple introduced its version of Pascal, a compiled language. In compiled programs, the translation is made once and saved. Thus, the “file” of machine code already exists, does not have to be interpreted again, and typically executes faster. However, there is a downside to compilers. With compiled programs came larger programs and more complicated compilers and debuggers. This drove the market for more powerful compilers. As the compilers got better, the programs grew even larger. We are now at a point in 2 Creating Mac Widgets with Dashcode www.allitebooks.com

Trang 9

computing where it is very difficult to develop simple programs. The compilers are too complicated for the casual user. Use Xcode for Mac or Visual Studio for PC and you’ll see what we mean. When you find a product that is simple to use, like REALbasic for the MAC or PC, you will have to lay out several hundred dollars to buy and use the product. If you are a serious programmer, these products are well worth the investment in time and money. But what if you are a guy or gal who has this idea for a neat little program that you want to write primarily for your own use? Is that simple application you had in mind really worth the cost? On the other hand, even without the Apple Dashcode product, which is the focus of this book, widgets are still considered relatively easy to create. Why? Well, first because they use language components that are web-based and interpreted. These components include HTML files (.html file extensions), Cascading Style Sheets (CSS) files (.css file extensions), and JavaScript files (.js file extensions), plus several other types. That means that no language compiler is required. The lack of a compiler translates to (1) no learning curve for the compiler product, (2) no financial outlay for the compiler product (Xcode is, of course, the exception), and (3) easy project creation without the need for multiple time-consuming compiles. Focus Widgets tend to be focused entities. By focused, we mean that most widgets are simple, relatively short applications that focus on a specific purpose. For example, instead of a large spreadsheet application that is general in nature and capable of many different feats, a widget would more likely be a program that adds, converts, or manipulates data in a specific manner. So, while the spreadsheet application could perform lots and lots of general tasks, it just might be overkill for the user. A simple widget might be written to convert temperatures or a number’s radix from one base to another. Widgets can also be used to read an RSS feed, indicate hard disk access, check on a user’s IP address, and so on. Widgets can be found, or created, to do all of those neat little tasks that we never want to open a spreadsheet or word processor in order to perform. Widgets are fun! Creating Mac Widgets with Dashcode 3 www.allitebooks.com

Trang 10

Functionality Because widgets are focused on specific tasks, their functionality is usually easy to maintain. In this sense, functionality means how easy it is to develop and maintain a widget’s capabilities (i.e., to get and keep that widget operating as planned). Dashcode will free you from a lot of the mundane programming tasks that have hampered developers in the past. That is not to say there will never be programming code to deal with, as you will see in Chapter 5, but that the code you deal with will be under control. Dashcode creates project components that fit together in the OOP (object- oriented programming) model, where most of the action takes place when events are fired. For example, you might have an application that converts inches to centimeters. The user enters a value in inches—then what? Typically, a button is clicked with the mouse, which fires the event. The event is the mouse click. This is where we write the JavaScript code to do the actual conversion. That kind of coding requires a little knowledge of JavaScript (see Chapter 5), but it is manageable. “Okay,” you ask, “Where does the functionality come in?” Well, in this application, there will probably never be a problem because of the fact that 1 inch will always equal 2.54 centimeters. But what if you were designing a program to convert dollars to euros? In this type of application, the exchange rate between the two can change. In the first application, the user never has to see the fact that 1 inch equals 2.54 centimeters—it can just be “hard-wired” into the JavaScript code. In the exchange rate program, however, you would include another value to be input by the user—the current exchange rate. Then, each time the program is used, the user would enter the dollars to be converted and the exchange rate. An exchange rate program with real functionality, however, wouldn’t require the user to know the exchange rate—rather, it would know where to go on the Internet to get the current exchange rate for the user. As long as that location did 4 Creating Mac Widgets with Dashcode www.allitebooks.com

Trang 11

not change, the functionality of the application would remain intact for the life of the application. Cost How much does a widget cost? Well, are we referring to the cost of developing the widget? Buying the widget? Let’s consider both of these cases, because they have both contributed to a widget’s popularity. First, since we don’t need a compiler to create a widget, there is no cost involved with a product such as that. Since Apple provides the framework (editors, the Safari browser, etc.) for developing web-based applications, there is no cost there. And since Dashcode is provided free starting with OS X and later, there is no cost there either. So, there are no out-of-pocket expenses required for creating your own widget applications. Free widget creation tools have certainly gone a long way toward making widgets so popular. Now, go to the Downloads page on the Apple web site (www.apple.com/downloads), and look for the Top Widgets section, in which you can feast your eyes on literally hundreds of widgets. Widgets come in three types: shareware, freeware, and demo, as you can see in Figure 1-2. Widgets with the shareware attribute are widgets whose developers are usually looking for a contribution. Typically, shareware widgets are fully functional, and the developer is asking for an optional donation. Sometimes some of the widget’s functionality (there’s that word again) is removed until the donation is made. Widgets with the freeware attribute are free. That means they are free to download and free to use. There is no guarantee from the creators that the widgets will work for your particular needs, however (after all, they are free). Of the widgets that are available, we would guess that at least 80 percent of them are freeware widgets. It doesn’t get any better than free. Creating Mac Widgets with Dashcode 5

Trang 12

Figure 1-2. A sample of the three types of widgets that you can download 6 Creating Mac Widgets with Dashcode

Trang 13

The third category is a widget with the demo attribute. These are usually mini- programs developed commercially or by a developer who really spent a lot of time on their project. If you go down the demo road, plan to lay out some cash in order to make your download functional. So, in summary, widgets cost nothing to develop (in terms of tools), and people have posted hundreds of free widgets on Apple’s site. If everything is so “free,” why would anyone want to write their own? Ah, because you have that idea for a widget that no one has created yet! If your widget turns out to be a big success, you might consider changing it into shareware or a demo. Implementation Imagine that you have just found the perfect widget for your needs on the Apple web site. How do you get it off of the web site and installed on your computer? Actually, that is a piece of cake. Figure 1-3 shows the Downloads portion of the Apple web site, mentioned earlier. Creating Mac Widgets with Dashcode 7

Trang 14

Figure 1-3. Apple’s Downloads page showing widget selections To find widgets, select the Widgets box or select from the Top Widgets listing. For this example, we chose the Flip Clock widget from the Top Widgets list. 8 Creating Mac Widgets with Dashcode

Trang 15

Figure 1-4. The download screen for the Flip Clock widget. Note that this widget is freeware. If you click this selection, you will be taken to another screen, as shown in Figure 1-4. If you click the Download button (near the upper right of the screen), the widget will be downloaded to your computer. Typically, you’ll find downloads such as this in your Download folder. After downloading, you should see two icons in your Download folder, as shown in Figure 1-5. Creating Mac Widgets with Dashcode 9

Trang 16

Figure 1-5. These two icons should now appear in your Download folder. Double-click the Flip Clock icon to begin the installation of the Flip Clock widget on your computer’s Dashboard. When you do this, the installation process will start automatically, and you will be greeted with the screen shown in Figure 1-6. Figure 1-6. The Widget Installer dialog for the Flip Clock widget The installation process occurs almost instantly. When Dashboard is opened, you will see the default Flip Clock widget, along with any other widgets already installed. Figure 1-7 shows this widget. 10 Creating Mac Widgets with Dashcode

Trang 17

Figure 1-7. The default Flip Clock display If you select the information button on the widget, represented by the (i) symbol, you can flip to the back of the widget and enter new information, as illustrated in Figure 1-8. Figure 1-8. Changing the defaults of the Flip Clock widget to DST in New York City When you have made all of the desired changes, click the Done button to flip the clock back around. Figure 1-9 shows the final widget as it will appear in Dashboard. Creating Mac Widgets with Dashcode 11

Trang 18

Figure 1-9. The Flip Clock widget is customized with our settings. Basically all widgets are downloaded and installed in the same manner. Pretty simple, right? Now you have confirmed another reason why widgets are so popular. Distribution So, that widget you developed turned out really well. All of your friends have encouraged you to share it with the world. How do you do that? If it were a new song, you would go to a record producer. If it were a great book, you would seek out a publisher. With a widget, however, you can go directly to Apple! Go to www.apple.com, select the Downloads menu item, and choose Widgets from the rightmost column. Your screen will look something like the one shown in Figure 1-10. Examine the page and notice the Submit a Widget menu item near the top of the screen. You can click this menu item when you have your widget ready to submit. Clicking it will transport you to Apple’s Developer Connection page, similar to that shown in Figure 1-11. In order to be able to submit software to Apple, you must be a member of the Apple Developer Connection. This is rather painless because you can get a free membership for just registering. So, if you have not registered as a developer yet, now is the time to do so. After all, you are a developer! 12 Creating Mac Widgets with Dashcode

Trang 19

Figure 1-10. The Dashboard Widgets page from Apple’s Download site Creating Mac Widgets with Dashcode 13

Trang 20

Figure 1-11. The Downloads Submission form requires membership in the Apple Developer Connection. 14 Creating Mac Widgets with Dashcode

Hiển thị 20 trang đầu. Tải tài liệu để xem đầy đủ.

Bình luận (0)

Đăng nhập để tham gia bình luận

Chưa có bình luận nào. Hãy là người đầu tiên!