# webOS SDK 2.1 - build 519

## Highlights

- The webOS 2.1 SDK is a significant update, with many new features for developers. See Key Features & Enhancements, below.
- The APIs for Contacts and Calendar (both the CRUD APIs and the People Picker) have changed in webOS 2.
  - Developers using these APIs will need to make changes to their apps to avoid compatibility issues.
  - The CRUD APIs for Contacts, Calendar and Accounts have been removed.
    - Light CRUD users (apps that add one-off contacts and calendar events) should move to Add Contact and Add Calendar Event APIs exposed by the Contacts and Calendar apps.
    - Heavier CRUD users (apps that sync with data locally or in the cloud) will need to move to the new Synergy APIs.
  - The People Picker returns data in a different form, reflecting the new Contacts schema in webOS 2.0.
- We are in the process of migrating to a new set of doc publishing tools, and the 2.1 SDK docs are currently in a state of transition -- please bear with us as we complete this work.
  - The New in 2.1 section contains docs for the new features in the 2.1 SDK.
  - The Reference section contains reference docs for the various SDK components.
  - Older conceptual docs have not yet been migrated. Please refer to the conceptual docs on the webOS developer portal.

## Key Fixes & Enhancements

### New webOS Features & APIs

- Just Type. Integrate into the webOS Just Type interface, enabling users search within your app or use your app to perform quick actions.
- Exhibition. Implement support for Exhibition to inform, entertain and delight your users when their devices are docked on the Touchstone charger.
- JavaScript Services with Node.js. Write background services in JavaScript. Services run in the popular Node.js runtime environment, which is built into webOS 2.
- Synergy APIs. Integrate deeply into the webOS user experience by developing Synergy connectors for Contacts, Calendar or Messaging.
- HTML5 Enhancements. CSS gradients, enhanced Canvas support, Web Storage and more. Web sites can also take advantage of HTML5 Geolocation and Application Cache.
- Key Manager. Utilize new key management and cryptographic functionality.
- Media Capture. New APIs for capturing photos, videos and audio recordings.
- Bluetooth SPP. Implement wireless data transfer to and from Bluetooth-enabled devices, using the Bluetooth Serial Port Profile (SPP).
- Zeroconf (Bonjour). Discover devices on a local network.
- Media Indexer. Access the index of audio and video files stored on the device.

### PDK

- OpenAL support (http://connect.creativelabs.com/openal/default.aspx)
- New PDL APIs:
  - `PDL_Minimize`
  - `PDL_GetHardwareID`
- Application-visible changes:
  - In hybrid apps, you can mark your PDK plugin-hosting
  - When handling touch input, you now get raw touch data. In 1.4.5, you wouldn’t get mousemove events until the user had moved their finger a sufficient distance from the initial touch area, and the mouseup event on lifting the finger might not change match the actual finger position if the finger hadn’t moved outside that drag radius.
- Bug fixes:
  - `PDL_GetOSVersion` works correctly in jailed applications.
  - `/media/cryptofs` is now always writable from jailed PDK apps and hybrids.
  - The `/media/cryptofs` filesystem now correctly handles random access writes to files without corrupting them.
  - OpenGL ES headers now properly list extensions supported for each webOS device.
  - Memory leaks have been fixed in `PDL_GetUniqueID`, `PDL_GetLanguage`, and `PDL_GetDeviceName`.
  - Parameter size limits have been removed from JS-to-plug-in communications.

### Tools

- Numerous installer improvements -- updates and clean installs should now work on all platforms
- Eclipse plug-ins have been updated
- Mac installer now preserves the emulator images from earlier releases.
  - Old emulator images are stored under `~/Library/Application Support/Palm/SDK/Images/`.
    - To remove them from the list that appears when the emulator is started, delete them from this directory.
    - To completely remove old images from your computer, also follow steps 1-6 here.
- No need to uninstall the previous version of the SDK on the Mac

## Known Issues & Limitations

### APIs

- Data stored using the HTML5 Local Storage API is not deleted when app is deleted
- There are some issues with text entry in emulator -- some characters cannot be typed under certain circumstances

### Tools

- The Palm Inspector is deprecated and will be removed from future SDK releases. To inspect elements, use Emulator Host Mode and the inspection tools in your WebKit-based desktop browser.
- When entering text in the emulator, the right Shift key does not work for typing many symbols. Use the left Shift key instead.

### Installers

- Mac: When upgrading on Leopard, all of the components show 0 size due to a bug in the OS X PackageMaker. This issue is purely cosmetic; the upgrade will proceed as expected.
- Windows: The 32-bit installer will not run on a 64-bit OS; the user is warned and the installer quits.