Friday, October 1, 2010

Dashboard Widget Tutorial

This tutorial walks you through using Dashcode to create a Dashboard widget. As you follow the steps, you learn how to choose a widget template, customize your widget’s appearance and code, and share your widget with others. Completing this tutorial is a quick and easy way to get started building Dashboard widgets in Dashcode.

This document includes two additional tutorials, “Mobile Safari Web Application Tutorial” and “Dual-Product Web Application Tutorial,” which follow this one. The remainder of the document delves more deeply into the Dashcode development environment, describing how it supports both widget and web application development. If you don’t want to learn how to create a web application, you can continue learning more about Dashcode by reading “Starting a Project.”

Before You Begin !

In this tutorial, you build a Dashboard widget that counts down to your birthday, similar to the widget shown in Figure 1-1.

Figure 1-1  The Birthday widget



Before continuing, make sure that you have Dashcode installed on your Mac (the location is /Developer/Applications/). If you don’t have Dashcode installed, read “Getting and Running Dashcode” to learn how to get and install Dashcode.


Choose a Template


To start, double-click the Dashcode icon to open it. A new project window opens and displays a dialog in which you first select the type of project you’re interested in—in this case, Dashboard—and then, the kind of widget you want to create from an assortment of templates. Templates are handy starting points for creating common types of widgets. Select a template’s icon to show a short description of what that template does.

To make the Birthday widget, this tutorial uses the Countdown template. Select its icon and click Choose. A project window opens with a new widget based on the Countdown template, as shown in Figure 1-2.

Figure 1-2  A project window showing a new Dashboard widget


Along the left side of the project window is the navigator, which you use to switch between the various tools available when you’re designing a widget. The main portion of the window is the canvas, which you use to design your widget’s interface.

At the bottom of the navigator in Figure 1-2 you can see the Workflow Steps list, which guides you through the widget development process. Each step is a milestone in creating a widget, telling you what to do and where to do it. When you complete a step, mark it as done and move on to the next step.

Note: If you don’t want to see the Workflow Steps list, you can hide it by choosing View > Steps or by clicking the button that looks like a checkbox at the bottom edge of the project window (this button is highlighted in Figure 1-2).
Alternatively, you can view a list of the widget’s files in place of the Workflow Steps list. If you want to see the Files list, choose View > Files or click the list button in the bottom edge of the project window (it’s the button that looks like a bulleted list).
Set the Target Date

The Countdown template gives you a Dashboard widget with all the elements and code needed to count down to an event. All you need to do is tell the widget the target date. To set the target date, select Widget Attributes in the navigator. The canvas is replaced by the widget attributes pane, in which you specify important values that your widget needs.

In the Properties section of the widget attributes pane, choose Date and Time in the Target Kind pop-up menu and enter the date of your next birthday, as shown in Figure 1-3.

Figure 1-3  The Countdown template’s properties





Test the Countdown

Your new Dashboard widget is already fully functional. To prove this, choose Debug > Run to run the widget. Dashcode can run a widget without opening it in Dashboard, making it a handy place to test your widget and fix any problems you encounter. After the widget loads, it starts counting down towards your next birthday.

When you’re satisfied that your widget is working as you expect, choose Debug > Stop to stop it.

Now is a good time to save your widget project. Choose File > Save to save the project. Give your project a name and select a location to save it in. Your widget is saved in a widget project that encapsulates the widget and information Dashcode needs to create the widget for you.


Customize the Widget’s Appearance

Although you now have a fully functioning Dashboard widget that’s ready to share, you might want to personalize it to make it unique. Dashcode’s design tools make it easy to customize your widget’s interface. Select the widget item in the navigator (it should display the name you gave it when you saved the project). The widget attributes pane is replaced with the canvas.

First, change your widget’s body color. Select the widget body (also called the front image or frontImg) on the canvas and then choose Window > Show Inspector. The inspector window allows you to modify a selected element’s properties, such as its appearance and behavior. Click the Fill & Stroke button at the top of the inspector window (it’s the second from the left). If it’s not already selected, click the Style tab to reveal fill, stroke, corner roundness, and opacity values. Click the color well and choose a new color in the Colors window that appears. Try different fill styles until you find a combination that you like. If you want to try changing other effects, such as the glass appearance, click the Effects tab to reveal these values, as shown in Figure 1-4.

Figure 1-4  Tweaking the front image using the Fill & Stroke inspector



When you’re finished customizing your widget’s body, add a photo of yourself from iPhoto to the widget. Your iPhoto library is available from the Library window. To show your iPhoto library, choose Window > Show Library; then click the Photos button. Find a photo and drag it to your widget on the canvas. Resize it by dragging any of the resize handles on the photo.

Finally, change the Event Label text to something like “...days until my birthday.“ You can do this by selecting the Event Label text, clicking the Attributes button in the inspector window (it’s the leftmost button), and entering the text in the Value field, or by double-clicking the text in the widget body itself and entering the new text.



Add Functionality Using Parts

Now that you have a personalized Dashboard widget that counts down to your birthday, add a button that, when clicked, shows the Apple Store (so your friends and family can buy you a birthday present!). To add a button to your widget, use a button part. Parts are controls and views used on a widget’s interface.

To find a button part, choose Window > Show Library and click Parts. You can use the search field at the bottom of the window to help you find a particular part or type of part. From the list of parts, drag the Lozenge Button part from the Library window to your widget’s body. Double-click the button to select its label text, enter the text “Buy me a gift” and press Return. You'll probably need to resize the button to fit the new label.



Write Code to Show the Apple Store

To make the button take the user to the Apple Store when it’s clicked, you need to add a behavior to the button. In the inspector window, click the Behaviors button (it’s the rightmost button). This shows the Behaviors pane, in which you assign handler functions to events on an object. Select the button on the canvas and double-click in the Handlers column next to the onclick event name. Enter the name of a new function, such as showAppleStore, and press Return. Click the arrow next to the function name you entered to reveal the source code editor below the canvas. Here you write code to add functionality to your widget. Clicking the arrow reveals the showAppleStore function Dashcode inserted in your widget’s code. Between the braces ({ .. }) enter the following line of code:

widget.openURL("http://store.apple.com/");


The code in the source code editor should look like that in Figure 1-5.



Figure 1-5  A function in the source code editor



Test your widget again by choosing Debug > Run. Click the button you added and make sure a new Safari window opens with the Apple Store website displayed. Be sure you save your project often to preserve the changes you make.




Deploy Your Widget

Congratulations! You’ve created your first complete Dashboard widget using Dashcode.

To open your widget in Dashboard, choose File > Deploy Widget. Click Install in the dialog that appears to view your widget in Dashboard.

To share your widget with the world, select Run & Share in the navigator. The pane that appears displays the widget project name you chose in “Test the Countdown,” but you can replace this with a different name if you want. You can also set the minimum version of Mac OS X your widget should run in. Click Save to Disk to save your widget. You can now email it to friends or post it on your webpage. You can use the File > Compress command in the Finder to archive it.

0 comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Yang Populer di Dedi Aryadi Al-Jazairi

...organise your mac ★★★★★ 10 Keyboard Shortcuts for Text 10 Quick Mac Tips 10.6 10.7 10.8 10.9 9 to 5 Mac A-Z Glossery - iPhone App Abdullah bin Muhammad As Salafi About Abu ‘Abdil Muhsin bin ‘Abidin as-Soronji Abu Qatadah Accounting Adab Adab Dan Perilaku Administrasi Siistem dan Jaringan Administrasi Staff adsense Ahli Hadits Ahmad Saud AirPlay Akuntan Al-Lajnah Ad-Daimah Lil Buhuts Al-Ilmiah Wal Ifta Al-Quran Amalan Sunnah Anak Anak Muslim Anak Serta Orang Tuanya android Anonymous Anti Virus Apoteker App App Store - News Apple Apple Downloads Apple Gazette Apple Keynotes Apple Matters Apple Pro Apple Support Communities Apple Support Tips Apple Updates apple.stackexchange.com AppleInsider Applelinks AppleNews AppleTV Application Tips applications Apps A-Z Apps Apps Apps Apps on Mac Apps on Mac - Dashboard Widget AppShopper AppShopper.com Aqeedah Aqidah Arab Saudi Arab Saudi' Karawang Artikel ASC Asteroid ATMac Audio Audio dan Video Automator Baby Sitter Bahasa Arab Balikpapan Bandung Bandung Barat Bangkalan Banjarnegara Banking Banten Bantul Banyumas Banyuwangi Batam Batang BBM Beasiswa Pelajar Beby Sitter Bekasi Berita Biaya Gratis Bidah Bidan BindApple Biografi blackberry Blitar Blogger Blogs + Forums Widgets Blora Bogor Bojonegoro Bondowoso Boot Camp Bored of your Mac? Boyolali Brebes Browser Brunei BUMN Business Widgets Calculate + Convert Cataloguer Cerita Cerita Pengajaran Changing the background Check external devices Check spelling and grammar Checker Cheff Cianjur Cibitung Cikarang Cilacap Cilegon Cilengsi Cimahi Cinta Cirebon Cleaning Service Clear Versions History + Auto-Save Cache Data Collect RSS feed URLS from Mail compiz conky Create Ringtones in iTunes Crew CS Cult of Mac Customise your desktop + screen saver Customizing Customizing Your Mac Cydia D3 Daily Tips and Tricks Dajjal Dasar Bermain Backtrack Dashboard Dashboard - Tips+Tricks Dashboard Guidelines Dashboard Widget Dashboard Widgets DashboardCandy DashboardClocks DashboardSearch DashboardWidgets.com Dashcode Delta Silikon Demak Depok Desain Grafis Desktop Desktop Computers Developer Forum Developer News Developer Tips Developer Tools Developer Widgets Development Tools digg Disable restored windows when re-opening specific apps Discussions Disnaker Display a login banner Display a short message Display system stats DKI Jakarta Doa dan Dzikir Dock Does your Mac qualify for free 10.8 upgrade? Download Downloads DR.Muhammad Nur Ihsan Driver Dual Boot OS X 10.7 Lion + OS X 10.8 Mountain Lion Easy Mac Tips Ebook EJIP Email Email + Messaging Widgets Energi Essential Exploitation Tools Extract and Save Mac Application Icons Falsafah Perang ala Sun Tze FAQ Farmasi Fatwa-Fatwa Fatwa-Ulama Financial Services Find a MAC Address in Mac OS X Find iMessage Users + Contacts Finder Fiqh Fiqh Ibadah Fiqh Kontemporer Fiqh Mu'amalah Fiqih Firoq Folders Food Widgets Forensics Formal Free Apps Freeware Furniture games Games Widgets Garut Gas Gatekeeper Get a Homepage - Mac OS X Style Get iTunes track notifications in your Dock Get Mac News Get More Mac and iOS Tips Get quick information with widgets Get RSS Menu Extension for Safari 6 Get Windows Live Hotmail with Mail Get Yahoo Mail with Mail gnome google Google News Gresik Grobogan gSearch - iPhone App Guide Gunung Kidul Guru Hacking Hackint0sh hackintosh Hacks Hadis Hadist Hadits Haji Hartono Jaiz Hasil Seniku Helper Hidden Features Hidden Features in OS X 10.8 Mountain Lion Hong Kong Hongkiat Hotmail How To How to disable the Java web plug-in HRD Ibn Kathir iCal iClarified iCloud iCloud + MobileMe iCloud News iCloud system requirements icon Icon Icons Icons + Screensavers iDesign - iPhone Wallpaper Ied iHackintosh iLife iLife 11 iLife Discussions - GarageBand iLife Discussions - iDVD iLife Discussions - iMovie iLife Discussions - iPhoto iLife Discussions - iTunes iLife Discussions - iWeb iLife News iLife Support Ilmu image Image Capture Imam Imam Abu Hanifah Imam Ghazali Imam Hanbali Iman iMovie Indramayu Info Info CPNS Informal Information Gathering Information Widgets InsanelyMac install driver install kernel install kernel lowlatency install software Install Windows 8 on a Mac Installation International Widgets Internet Internet and Chat Investment Banking iOS 4 iOS Developer News iOS Support iPad iPad - News iPad Support iPhone iPhone - News iPhone 4 iPhone App iPhone SDK iPhone Support iPhone Tips and Tricks iPhoto iPod iPod - News iPod News iPod Support iPod Tips and Tricks - iPhone App iPod touch Irhab iscsi Islam Istri Nabi IT IT Industry Today iTunes iTunes - Latest Movie Trailers iTunes - News iTunes - Top News iTunes App Store iTunes App Store - All New Applications iTunes News iWork Jababeka Jakarta Jaringan Komputer java Java Runtime Environment Jawa Barat Jawa Tengah Jawa Timur Jember Jepara Jlainnya Job Baru job baru brunei Job Baru Malaysia Job Baru Taiwan Job Kontruksi Job Kontruksi Taiwan Jombang Jurnalis Just Added Just Added - iPhone Apps Just Added Downloads Just For Fun Widgets Kalsel Kaltim Karanganyar Karawang Kasir Kata Pengantar Keamanan Komputer Kebumen Kecantikan Kediri Kedokteran Kendal Keputusan Presiden Kerja Kantoran Kesalahan Dalam Solat Kesehatan kext Key Combos Keyboard Shortcuts Keynote Address KIIC Kisah Tauladan Klainnya Klaten Komputer Komuniti Islam Kontruksi Kristologi Kudus Kuliah Kulon Progo Kuningan Kurir Lagu Musik dan Permainan Laki-laki Lamongan Lampung Langsung Launchpad for Mac OS X Snow Leopard Lebak Links Linux Lion Listrik. Logistik Loker Astra LOker Pabrik Lowongan Kerja Lowongan Kerja Guru/Pengajar Lowongan Kerja Pertambangan Lowongan Kerja Rumah Sakit Lowongan Kerja SPG Lowongan Kontruksi Lowongan Kontruksi Taiwan Lowongan Pekerjaan Lumajang Mac Mac 101 Mac 101 - Get One on One with your Mac... Mac App Store Mac App Store - Business Mac App Store - Developer Tools Mac App Store - Education Mac App Store - Entertainment Mac App Store - Finance Mac App Store - Games Mac App Store - Graphics + Design Mac App Store - Health + Fitness Mac App Store - Lifestyle Mac App Store - Medical Mac App Store - Music Mac App Store - News Mac App Store - Photography Mac App Store - Productivity Mac App Store - Reference Mac App Store - Social Networking Mac App Store - Sports Mac App Store - Top 50 Mac Apps Mac App Store - Travel Mac App Store - Utilities Mac App Store - Video Mac App Store - Weather Mac Developer Tips Mac OS X Mac OS X 10.6 Mac OS X 10.7 Lion Mac OS X 10.8 Mountain Lion Mac OS X Applications Mac OS X Things Mac OS X Tips Mac OS X Tips - News Mac OSX Hints Mac OSX Hints - News Mac Quick Tips Mac Support Mac Tip of the Day Mac Tips Mac Tips and Tricks Mac Tips and Tricks - Desktop App Mac Tips Daily Mac|Life Mac101 Mac360 MacApp MacApper MacApps MacFixIt MacintoshOS.com Maciverse MacLion MacNews MacNN MacOSXAudio.com macosxtips.co.uk MacRumors MacSupport MacTech MacTips MacUpdate MacUpdate.com MacVideos MacWidgets Macworld.com - iPhone App Reviews Madiun magazines Magelang Magetan Mahasiswa Mail Maintenance Majalengka Makanan Makna Niat Makrifatullah Malang Malaysia Manager Manajemen Proyek ManiacDev Manufacturing Marketing Masakan Masalah Agama Masalah Rumah Tangga Medis Mekanik Mengenang Ilahi MInyak MM 2100 Mobile MobileMe News ModMyi.com Mojokerto Most Recent Movies + TV Widgets Mualamat Dan Riba Muhammad Thaha Al junayd MUI Mujahideen And Mujahidah Mukjizat Murotal Al-Quran Music Widgets Muslimah Nasehat Nasihat Nasyeed Navigating + Selecting Text in Mac OS X Negara Brunei Negara Canada Negara Taiwan Network Networking + Security Widgets New Application Tips New iPhone Apps news News on Mac News Widgets Nganjuk Ngawi nokia Notification Center Notification Center Tips OB office 2013 Office Boy Oil onemac.net onemac.org Open source OpenDashboard operating system Operator Operator Produksi Organize Your Dock OS OS X OS X - FAQ OS X 10.5 to 10.8 Upgrade OS X 10.7 OS X 10.8 Mountain Lion OS X Basics OS X Daily OS X Lion OS X Mac Tips + Tricks OS X Mavericks OS X Mavericks Tips OS X Mountain Lion OS X Mountain Lion - News OS X Mountain Lion Hompage OS X Mountain Lion Installation Guides OS X Snow Leopard OSX OSX Basics Other OS Pabrik Pacitan Pages Palembang Pamekasan Pandeglang Pangandaran Para Nabi Pasuruan Pati PC Pekalongan Pengumuman Penjaga Orang Jompo Perawat Perawat Panti Jompo Pernikahan Pertambangan & Logam Perusahaan Periklanan Pesanan PJTKI PJTKI Sragen PJTKI Pemalang PJTKI Rembang PJTKI Semarang PJTKI Sukoharjo PJTKI Tegal PLN Podcast Widgets Polisi Khusus Kereta Api Ponorogo Pontianak Portable Computers Ports and Connectors Pos Preambule Preferences Press Release Preview Pria Pro Tip Probolinggo Prof dr. M.M Al-A'Zami proxy PRT Puasa Public Relation Purbalingga Purwakarta Purwodadi Purwokerto Purworejo Putra-Putri Nabi QC Qurban racing Radio + Podcasts Widgets radio islam Rampant Mac - iPhone Wallpapers Rasulullah s.a.w. Remaja Dan Cinta Remote Folder and Synchronization Remove Dock Icons in OS X Mountain Lion Rename Files and Folders Renungan Reporting Tools Resepsionis Reset specific parts of Safari Restart an external device Restoran Riyadhus Shalihin RSS Ruang Keinsafan Rumaha Sakit Rynoedin S1 Safari Safari 5.1 Safari 6 Sahabat Sains dan Al-Quran Salam Redaksi Salatiga Sales Sales Manager Salon Samarinda Sampang Scheduled Startup and Shutdown ScreenCast Online SD and SDXC card slot FAQ Search Widgets Security Sekeretaris Semarang Serang Set up iCloud Set Up Storage Devices Shalat Shaum(Puasa) Shopping Widgets shortcut keyboard Sidoarjo Simple Desks Singapura Siri Siri Tips Situbondo situs islam Sleman SMA SMA/K SMK SMP Snow Leopard Snow Leopard Tips Soccer Softonic - Mac Softonic.com Softpedia Softpedia - Tips + Tricks Softpedia.com Software Solat Sunat Solo Speed Up Your Mac SPG/B Stacks Staff Staff Admin Staff Gudang Staff picks Status Widgets Stop Automatically Updates Storage StorePreview Strategi/Perencanaan Konstruksi Stress testing Subang Sukabumi Sumatera Sumatra Sumedang Sumenep Supervisor Support Surabaya Surakarta suriah Switch 101 switchtoamac.com Syaikh Abdul Aziz bin Baz syaikh Abdullah Bin Abdurrahman Al- Jibrin Syaikh Abdur Razzq 'Afifi Syaikh Abu Usamah Salim bin Ied Al-Hilali Syaikh Ali Hasan Al Halabi Syaikh Dr. Muhammad Musa Alu Nashr Syaikh Ibnu katsir Syaikh Khalid al Husainan Syaikh Kholid bin Abdillah al-Mushlih Syaikh Muhammad bin Abdul Wahhab Syaikh Muhammad bin Jamil Zainu Syaikh Muhammad bin Shalih Utsaimin Syaikh Muhammad Nashiruddin Al-Albani Syaikh Shalih bin Fauzan bin Abdullah Al-Fauzan Syamail Muhammadiyyah syiah.buku-buku sesat Syiakh Masyhur Hasan Salman symbian Syncing with iTunes System Configuration System Preferences Taiwan Take advantage of Quick Look Taking Screenshots Tambun Tangerang tarawih Tasikmalaya Taubat Sahabat Islam Kita Tauhid Tazkiyyatun Nufus Tekhnologi Teknik Mesin Teknisi Temanggung Terminal TextEdit The Apple Blog The Apple Core The Mac Observer The Mac Screencast Guy The MacTips Podcast Theme themes Themes thinkmac.net Time Machine Tip of the Day Tips Tips + Tricks Tips and Support Tips and Trick Tips and Tricks tips ubuntu Tips+Tricks TKI Tki/TKW Sukses TKW tool Top 10 Grossing Apps Top 25 Grossing Apps Top 50 Grossing Apps Top iTunes Tips Top Mac Tips Top10 Mac Tips Top10 Paid Apps Top10 Widgets Top50 Dashboard Widgets TopApps Translates Transportation Travel Widgets Trenggalek tricks TUAW Tuban Tulungagung Tutorial Tutorials tweak Ulama Unix Updates Updating USB 3 devices on Mac - FAQ Use Smart Folders effectively Useful iPhone Shortcuts Ustadz Abdul Hakim Bin Amir Abdat Ustadz Abdullah Taslim Ustadz Abdurrahman bin Abdul Karim At-Tamimi Ustadz Abdurrahman Thayyib Ustadz Abu Abdillah al-Atsari Ustadz Abu Ishaq Muslim Al-Atsari Ustadz Badrussalam Ustadz Firanda Ustadz Hamzah Rifa’i Ustadz Khoilid Abdus Shomad Ustadz Yazid bin Abdul Qadir Jawas Ustadz Zainal Abidin Syamsudin utilities VersionTracker Video Videos Vulnerability Assessment Waiter Waitress wallpaper Wallpaper Doa Wanita Want More Mac Tips ? Warehouse Warisan Wartawan Wates Web Apps web Developer Web Programmer WebApps Webcam Widgets wep cracker whatsapp Which Mac is Worth Your Investment? widget Widgets Windows windows 7 windows 8 windows xp wireless Wonogiri Wonosari Wonosobo Wudhu www.freemacware.com Yahoo Yogyakarta youtube YouTube Videos Yusuf bin Abdullah bin Yusuf Al-Wabil MA Zakat ZDNet  Navigation Mac