iPhone SDK for iPhone OS 3.0

With a rich set of over 1,000 new APIs, the iPhone SDK for iPhone OS 3.0 provides you with an amazing range of technologies to enhance the functionality of your iPhone and iPod touch applications. New APIs also provide support for applications to communicate with hardware accessories attached to iPhone or iPod touch.

I. In App Purchase (Users can purchase subscriptions and extra content from within your applications.)

Users can purchase subscriptions and extra content from within your applications.

Flexible payments.

In app purchase gives you the flexibility to support a variety of business models. You can offer your customers additional services and content within your paid app.

For example, you can create a subscription magazine app where you ask for payment on a monthly, yearly or periodic basis of your choice. Sell extra levels to extend the experience of your game. Build a general-purpose city travel guide app and let your customers pick the city guides they want to purchase. This new capability opens up many new business opportunities.

You create the app, we’ll bring the cash register.

The new Store Kit framework provides the functionality to process payments via the iTunes Store. You submit items to the store and set their price. When a customer chooses to purchase an item, your app creates a payment request and sends it to the iTunes Store for processing. After the iTunes Store verifies and approves the payment, your app is notified so that it can provide features or additional content.

Familiar business terms.

In app purchase uses the same business terms used for apps sold on the App Store. You receive 70% of the purchase price of each item you sell within your app, paid to you on a monthly basis—no credit card fees apply.

II. Apple Push Notification Service (Keep your users informed with instant alerts.)

Unified notification for all.

Use the Apple Push Notification service to keep your users up-to-date. This service will benefit a wide variety of apps. For example, a sports app can now give key game updates even when the app isn’t running. A chat application can display the latest response in a conversation. Task management applications can track how many tasks you have yet to approve.

Get their attention.

There are a number of ways to send a push notification. Send a message with text that lets the user launch your app. Trigger audible alerts with your own custom sounds. Add a numbered badge to your app icon when it’s important to let the user know how many things are waiting for them.

Optimized for mobility.

The Apple Push Notification service is designed with the mobility needs of iPhone and iPod touch users in mind. Most of the heavy lifting is handled between your servers and ours, so there’s less impact on battery life and performance than there would be if you ran the app in the background. The service maintains a persistent IP connection so that it can notify users even when your app isn’t running. We’ve optimized the service to adapt to all different configurations of mobile networks that the iPhone runs on so you don’t have to.

III. Peer to Peer Connectivity (Connect your users with nearby friends.)

One-on-one games.

Some games are just not the same when you’re playing against the computer—word games, chess and other strategy games are so much better when you’re playing against another person. You can now create games that are easy to set up and play between two devices, whether it’s an iPhone or an iPod touch.

Easily connect.

The new Game Kit framework opens new opportunities for developers to easily create peer-to-peer apps.

Game Kit provides the user interface for initiating a multi-player game, and a data transfer API to share game state. When incorporated into a game, it will automatically discover if the same game is running on other nearby iPhones or iPod touches, allow the user to connect to one of them through Bluetooth, and start sharing game state over a standard IP-based communication channel. The automatic discovery is handled by Bonjour. And making the connection doesn’t require pairing, so it works seamlessly for everyone involved.

Not just for games.

While Game Kit has been designed for games, it can used for any kind of app to share information between iPhones and iPod touches. Use it to exchange business contacts. Share a photo with a friend. Or send a short note to someone nearby.

In game voice.

Game Kit also provides a real-time voice chat API. You provide the network connection, the in game voice capability provides the underlying services to capture your voice through the microphone, transmit it to another player and then playback their responses.

IV. Accessories (Applications can now communicate with accessories)

A way to connect.

Apps for iPhone and iPod touch can now communicate with accessories via the dock connector or wirelessly over Bluetooth.

Enhance your accessory by developing an iPhone app to extend its functionality, or create entirely new integrated solutions that combine an iPhone app with dedicated hardware. For example, you can display a fully interactive Multi-Touch equalizer for your speaker system. Create an inventory app for your barcode reader. Or, build an app that logs and tracks the readings from an attached heart-rate monitor. The potential solutions are limitless.

Create your own protocol.

As with current Made for iPod accessories, your accessory can use Apple-provided protocols to control music and video playback in the iPod app. With iPhone SDK 3.0, you can also create your own custom protocols to exchange data and commands with your app. Use the new Accessory APIs to allow your app to communicate with and control your accessory.

To learn how to add support for iPhone apps in your dock connector or Bluetooth accessory, join the Made for iPod and Works with iPhone Licensing Program and the iPhone Developer Program.

V. Maps (Embed maps within your applications.)

Location, location, location.

You can now add a map view to your apps to help users find what they’re looking for in the real world.

For example, your app could find the closest stores in the area and show where they are nearby. Display interactive tours in a travel guide. Teach geography with an interactive learning app. Or show the the next destination in a scavenger hunt game. Maps can improve any app that takes advantage of the user’s location.

Maps your way.

Place a map anywhere in your app using Map Kit, the new framework that works with the Google Mobile Maps Service. Display the map with a street view, a satellite view or put them together in a hybrid view. Position the map to anywhere in the world or center it where the user currently is. Users can use their finger to pan to a nearby place, and pinch to zoom in for a closer look. Place pins wherever you like, or identify points of interest with your own annotations. You can also use geocoding services to turn a latitude and longitude into a real address.

VI. iPod Library Access (Bring a user’s music into your application.)

Audio content on tap.

With iPhone SDK 3.0, you can access a user’s music, podcasts and audio books from within your app. You can even leverage a user’s custom, On-The-Go, Genius and Smart playlists.

For example, you could create a trivia game that uses the metadata of the user’s songs. Improve on an arcade game by using a playlist as its soundtrack, or add the ability to listen to podcast lectures in a note taking app. You can make almost any app more enjoyable by bringing a user’s personal music and audio choices into your app.

Take control.

Once you have access to the music and playlists, you have full control of the playback. You can play, pause, shuffle and repeat. While the user is listening to an audio track, you can follow where they are and even move to a specific part.

Playlists on-the-fly.

You can also build playlists using custom searches. Leveraging all of the metadata in the audio files, you can create custom playlists that match particular criteria. For example, if you want your app to play all of the podcasts from yesterday—you can build that from a search on Date Created and Content Type.