---
title: Introduction to Dashboard Programming Topics
framework: appleapplications
role: article
path: apple-archive/documentation/AppleApplications/Conceptual/Dashboard_ProgTopics/Introduction
---

# Introduction to Dashboard Programming Topics

Explains Dashboard and WebKit technologies used in widgets.

## Who Should Read This Document?

*Dashboard Programming Topics* is for anyone who wants to create and enhance a Dashboard widget. It will provide you with an understanding of different techniques useful for improving your widget's functionality.

If you haven't developed a Dashboard widget before, be sure to start with [Widget Basics](../Articles/WidgetBasics.html#//apple_ref/doc/uid/TP40008117-SW2) .

## Organization of This Document

This document contains the following articles:

- [Widget Basics](../Articles/WidgetBasics.html#//apple_ref/doc/uid/TP40008117-SW2) introduces the Dashboard environment and describes how to develop a simple widget. - [Designing Widgets](../Articles/Design.html#//apple_ref/doc/uid/TP40003053-SW3) provides guidelines and tips for designing successful widgets. - [Introduction to the Apple Classes](../Articles/AppleClasses.html#//apple_ref/doc/uid/TP40003186-SW1) discusses the Apple Classes, what they offer, and how to include them in your widget. - [Using Scroll Areas](../Articles/AppleScrollArea.html#//apple_ref/doc/uid/TP40003241-SW2) talks about integrating a scroll area into your widget. - [Using an Apple Slider](../Articles/AppleSlider.html#//apple_ref/doc/uid/TP40003242-SW2) tells you how to use a slider control in your widget. - [Using Animation](../Articles/AppleAnimator.html#//apple_ref/doc/uid/TP40003187-SW1) discusses using the animation-focused Apple Classes. - [Using an Apple Button](../Articles/AppleButton.html#//apple_ref/doc/uid/TP40003185-SW5) talks about using the `AppleButton` class to build your own buttons, and how to use the `AppleGlassButton` subclass for standard-style buttons. - [Widget Backs and Preferences](../Articles/Preferences.html#//apple_ref/doc/uid/TP40003043-SW3) tells you how to display, save, and retrieve preferences. - [Syncing Widgets](../Articles/SyncingWidgets.html#//apple_ref/doc/uid/TP40004748-SW1) looks at the Dashboard Sync feature in OS X v.10.5 and how you can handle syncing in your widget. - [Using Widget Events](../Articles/Events.html#//apple_ref/doc/uid/TP40003044-SW1) discusses Dashboard and widget events that your widget may want to be aware of. - [Declaring Control Regions](../Articles/ControlRegions.html#//apple_ref/doc/uid/TP40003045-SW3) defines and explains how to work with control regions, areas where controls are present in a widget. - [Resizing Widgets](../Articles/Resizing.html#//apple_ref/doc/uid/TP40003046-SW1) provides code useful for implementing resizing in your widget. - [Using the Canvas](../Canvas.html#//apple_ref/doc/uid/30001236-BAJGJJAH) talks about using the Canvas feature of WebKit within your widget. - [Using the Pasteboard From JavaScript](../CopyAndPaste.html#//apple_ref/doc/uid/30001234-BAJGJJAH) talks about supporting copy, cut, and paste in a widget. - [Using Drag and Drop From JavaScript](../DragAndDrop.html#//apple_ref/doc/uid/30001233-BAJGJJAH) tells you about the handlers needed to support drag and drop in your widget. - [Localizing Widgets](../Articles/Localization.html#//apple_ref/doc/uid/TP40003047-SW2) discusses offering your widget with international users in mind, using localizable strings and other resources. - [Specifying Access Keys](../Articles/AccessKeys.html#//apple_ref/doc/uid/TP40003048-SW2) describes the widget access keys, used to turn on resource access for your widget. - [Accessing External Resources](../Articles/ExternalAccess.html#//apple_ref/doc/uid/TP40003049-SW1) talks about opening applications or web pages in a browser with your widget. - [Accessing Command Line Utilities](../Articles/CommandLine.html#//apple_ref/doc/uid/TP40003050-SW1) tells you how to access command-line utilities and scripts from within your widget. - [Creating a Widget Plug-in](../Articles/WidgetPlugin.html#//apple_ref/doc/uid/TP40003051-SW1) discusses native code plug-ins that your widget uses to interact with other applications. - [Calling Objective-C Methods From JavaScript](../ObjCFromJavaScript.html#//apple_ref/doc/uid/30001215-BBCBFJCD) provides more detail on bridging Objective-C and JavaScript. - [Delivering Widgets](../Articles/Delivery.html#//apple_ref/doc/uid/TP40003052-SW1) tells you about packaging and distributing your widget.

This document also contains a revision history.

## See Also

All of the Dashboard-specific information discussed in this document is covered more in depth in *[Dashboard Reference](../../../Reference/Dashboard_Ref/DashboardRef/DashboardRef.html#//apple_ref/doc/uid/TP40001339)*. You might also be interested in [iAd Producer](https://developer.apple.com/iad/iad-producer/) , which enables some widget creation tasks and helps you create iBooks content.

In addition to these documents, *WebKit DOM Reference* provides reference information on most of these topics.

The `XMLHttpRequest` object allows you to parse XML in JavaScript and use the results. Read [Dynamic HTML and XML: The XMLHttpRequest Object](http://developer.apple.com/internet/webcontent/xmlhttpreq.html) for more information.

[Next](../Articles/WidgetBasics.html)

Copyright © 2010 Apple Inc. All Rights Reserved. [Terms of Use](http://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](http://www.apple.com/privacy/) | Updated: 2010-02-01
