Chapter 10. Understanding the Business of Software

In This Chapter

Learning marketing strategies

Making the best apps

Exploring App Store concepts

Customer reviews

Using App Store search secrets

Marketing yourself

Epilogue: Looking ahead

There is more to writing a successful application than simply creating a great application. Even if you have a great idea and great code to go with it, there are still literally thousands of other applications that can say the same thing. It is possible for you to have the best app in a given category and still not have the app that everyone is purchasing.

Like anything else, sometimes life is just not fair. But there are many things you can do to help stack the odds in your favor. This chapter provides you with an in-depth foundation of what it takes to ride an application all the way to the top.

Consider the following quote (with apologies to William Shakespeare): "Be not afraid of greatness. Some apps are created great, some achieve greatness, and some have greatness thrust upon them." With almost no effort, great apps rise to the top and dominate the charts. Many times this occurs when a company with an already successful application creates an iPhone version of their software.

Other times an application is simply lucky and has greatness thrust upon it. The application is just in the right place at the right time. A good example of a lucky application is when someone decided to create that first farting application. Apple rejected this app for being crude. The developer then gained massive media attention and people worldwide wondered why Apple rejected this harmless novelty application.

Eventually the developer got Apple to accept the farting application due to public outcry. The media immediately did a follow-up story on how an underdog developer was able to overcome great challenges and obstacles and finally get his farting application on the App Store. Thousands of users downloaded the farting application to find out for themselves what all the controversy was about. Finally, the developer bought a small island in the tropics and retired at the ripe old age of 23 (at least that's what we might imagine!).

Learning Marketing Strategies

You can have the greatest product in the world, but if nobody knows about it you are never going to make that first sale. People have to find and know about your applications before they can buy them. Not only do you want them to know that your applications exist, but you want them to know what your applications are all about. This burden rests on your shoulders and not on the consumers'. You also need to know information about how well your application is doing in the market and what buyers think about your products. Let's take a look as some ways you can achieve these goals.

App Store reports

Which came first, the chicken or the egg? You have probably heard of this riddle before. Here is another one for you: Which came first, business or reports? It's hard to say for sure, but today the two tend to go hand-in-hand. From day one, the App Store has had reports, and likewise, you should take advantage of these reports from the first day your applications are listed on the App Store. Here is what you need to know to be able to do that.

Financial reports

Apple provides developers with financial reports every month (Figure 10.1). These reports will prove invaluable to you over time because they are the authoritative source for how well your applications are doing on the App Store. Unlike the sales/trend reports, financial reports are not purged and are currently available indefinitely. However, it is still wise to download backups of all reports for your records.

The financial reports are available as tab delimited text files. This means you can open them directly and read them yourself, or even better, you can open them in programs like Numbers or Excel and do more advanced analysis and research.

As an application developer, you will receive up to seven regional financial reports every month. Reports are generated monthly for any regions in which you have had sales. Table 10.1 lists the seven possible financial report regions.

Table 10.1. Financial Report Regions

Region

App Store Currency

United States

USD

Canada

CAD

Europe

EUR

United Kingdom

GBP

Japan

JPY

Australia

AUS

Rest of world (Middle East, Africa, and European and Asian Pacific countries)

USD

Financial reports for iTunes Connect

Figure 10.1. Financial reports for iTunes Connect

If you open a financial report in an editor of your choice, you will see that the report has over 20 fields. This is indeed a wealth of useful data. Table 10.2 details the information available in a financial report.

Table 10.2. Financial Report Fields

Field

Purpose

Format

Begin Date/Start Date

Date of beginning of report.

MM/DD/YYYY

End Date

Date of end of report.

MM/DD/YYYY

UPC (Universal Product Code)

You can assign a UPC to your application when you add it to the App Store. It then appears in your financial reports.

20 characters maximum

ISRC (International Standard Recording Code)

The ISRC is the international identification system for sound recordings and music video recordings. It is meant to be used by iTunes content providers, not so much by application developers.

20 characters maximum

Vendor Identifier

This is a vendor identifier that is provided by you when you add your application to the App Store. If your company has multiple departments or subcontractors, this field may be more useful to you.

20 characters maximum

Units/Quantity

This is the total number of units sold.

Integer/whole number

Partner Share

Partner refers to you, and share refers to the percentage of the sale that is yours. It is the percentage of the proceeds you will receive per unit. For application developers, this is fixed at 70 percent.

Currency field

Extended Partner Share

This is a calculated field. Its value is always quantity times partner share.

Currency field

Partner Share Currency

This is the currency that will be used to pay you.

3 characters

Sales or Return

You will always see either an S (for sale) or an R (for return) here.

1 character, either an S or an R

Apple Identifier

This is the unique identifier that Apple assigns your application on the App Store.

18 characters maximum

Artist/Show/Developer

In this case, you should see the developer name you used to join the developer program.

4,000 characters maximum

Title

This shows your application's title.

5,000 characters maximum

Label/Studio/Network/Developer

If you registered as a company instead of as an individual, you see your company name here.

1,000 characters maximum

Grid

This is a product identifier.

30 characters maximum

Product Type Identifier

This field defines the type of product that was purchased (song, application, etc.). If it's an application purchase for an iPhone or an iPod touch, it is always a 1. If it's an application update, it is a 7.

5 characters maximum

ISAN (International Standard Audiovisual Number)/Other Identifier

An ISAN is a voluntary numbering system and metadata schema enabling the identification of any kind of audiovisual works, such as films, shorts, documentaries, television programs, sports events, and advertising, as well as their related versions.

50 characters maximum

Country of Sale

ISO country code that indicates what iTunes Store front the purchase occurred in.

2 characters

Preorder

Currently preorder is applicable only to music and related media purchases, not applications. When an item is a preorder fulfillment, a P is present in this field; otherwise, this field is empty.

1 character

Promo Code

This is another field that is currently only for music and related media purchases.

10 characters maximum

Customer Price

This is the price the customer paid.

Currency field

Customer Currency

This code indicates the currency the customer paid in.

3 characters

Consider working with your favorite spreadsheet application to take your monthly financial reports and create some useful formulas and charts to help you keep your finger on the pulse of your application sales.

Sales/trend reports

Apple provides developers with many App Store resources, including sales and trend reports. You can find these reports on the iTunes Connect site at https://itunesconnect.apple.com/.

Even though the sales/trend reports have only the summary report type available, you do have three reporting period options: monthly free, weekly, and daily. Be aware that Apple removes any daily reports older than 7 days and any weekly reports older than 13 weeks, so be sure to keep local backups of these files. Once they are purged there is no way to go back and get previous reporting data.

Note

Sales/trend reports are for directional purposes only. You should not use them for financial statement purposes; instead, use the financial reports for that purpose.

You can download your sales/trend reports or preview them online (Figure 10.2). If you preview them online, be aware that you can only see the top 50 rows from each report. The reports are sorted in descending order by the number of sales.

These reports show data for each sale, refund, and update of any application you have for any of the currently available 77 iTunes Store fronts. Even something as simple as changing the price of an application causes additional rows to be created. In other words, it is very easy for you to outgrow the sales/trend reporting preview feature. It's okay to spot-check things using the preview feature, but for any serious sales analysis you should skip the preview and work directly off downloaded files, which contain all the data.

The daily, weekly, and monthly free summary reports all have the same fields. Many of the fields in these reports are very similar to the ones in the financial reports, but in most cases the field's position has been changed or the field's name has been modified. There are also some new fields. Table 10.3 gives you more information about these changes.

Sales/trend report for iTunes Connect

Figure 10.2. Sales/trend report for iTunes Connect

Table 10.3. Summary Report Fields

Field

Purpose

Format

Provider

This field always contains the text APPLE.

50 characters maximum

Provider Country

This field always contains the text US.

50 characters maximum

Vendor Identifier

This is a vendor identification that is provided by you when you add your application to the App Store. If your company has multiple departments or subcontractors, this field may be more useful to you.

20 characters maximum

UPC (Universal Product Code)

You can assign a UPC to your application when you add it to the App Store. It then appears in your financial reports.

20 characters maximum

ISRC (International Standard Recording Code)

The ISRC is the international identification system for sound recordings and music video recordings. It is meant to be used by iTunes content providers.

20 characters maximum

Artist/Show

In this case, you should see the developer name you used to join the developer program.

4,000 characters maximum

Title/Episode/Season

This shows your application's title.

5,000 characters maximum

Label/Studio/Network

If you registered as a company instead of as an individual, you see your company name here.

1,000 characters maximum

Product Type Identifier

This field defines the type of product that was purchased (e.g., song, application, etc). If it's an application purchase for an iPhone or an iPod touch, it is always a 1. If it's an application update, it is a 7.

5 characters maximum

Units/Quantity

This is the aggregated number of units sold.

Integer/whole number

Royalty Price

This is the royalty price for the item.

Currency field

Begin Date/Start Date

Date of beginning of report.

MM/DD/YYYY

End Date

Date of end of report.

MM/DD/YYYY

Customer Currency

Code that indicates the currency the customer paid in.

3 characters

Country Code

ISO country code that indicates what iTunes Store front the purchase occurred in.

2 characters

Royalty Currency

This is the royalty currency.

3 characters

Preorder

Currently preorder is applicable only to music and related media purchases, not to applications. When an item is a preorder fulfillment, a P is present in this field; otherwise, this field is empty.

1 character

Season Pass

This field is currently only for music and related media purchases.

20 characters maximum

ISAN (International Standard Audiovisual Number)

An ISAN is a voluntary numbering system and metadata schema enabling the identification of any kind of audiovisual works, such as films, shorts, documentaries, television programs, sports events, and advertising, as well as their related versions.

50 characters maximum

Apple Identifier

This is the unique identifier that Apple assigns your application on the App Store.

18 characters maximum

Customer Price

This is the price the customer paid.

Currency field

CMA

This field is currently only for music and related media purchases.

10 characters maximum

Asset/Content Flavor

The field is currently only applicable to video content.

20 characters maximum

Vendor Offer Code

This is a product identifier.

30 characters maximum

Grid

This is a product identifier.

30 characters maximum

Promo Code

If the transaction was a part of a promotion, this field contains a value.

10 characters maximum

Parent Identifier

This field is currently only for music and related media purchases.

100 characters maximum

App Store statistics

A doctor learns more about a patient's health by looking at that person's vital statistics. Similarly, an iPhone developer has his application's sales/trend reports to learn more about his application's health. The sales/trend reports provide you with an early detection system that you can use anytime to monitor all of your applications.

Consider a scenario where you have been getting many sales each day, but then suddenly you are not getting any sales for one of your applications in particular. That may be a sign that the application has been removed from the App Store due to a content issue. This could be an expensive oversight if you did not find out about it until you saw the much smaller royalty check that followed. Remember, royalty checks are monthly, but always for the previous month's sales. That's a long time for an issue to go unhandled.

Application size

The App Store allows you to upload a new application as large as 2GB. But be aware that if your application is larger than 10MB, it will not be available to download directly to a device unless it is connected to a wireless network. Users who are out and about and only connected via a cellular connection will not be able to download the application directly. It's best to try and fit your application in a space of less than 10MB.

Application price

You have a lot of freedom when deciding how to best price your application. You can decide to make your application totally free; in other words, it is free to download and it contains no ads. Or you could make your application free to download but there are ads displayed in the app. The next option is to sell your application on the App Store for a set price. The average price of an application on the App Store is around $2.50. One of the most common prices that developers charge for their application is $0.99.

The monetization strategy that you choose for your application is one of the largest factors in how much revenue your application generates once on the App Store. And now you find yourself in a dilemma: If you charge too much, users may decide not to purchase your application, thereby lowering your profit. But if you charge too little, you may not get enough return on your investment to generate as much profit as you could have otherwise.

What should you do? Unfortunately, you are going to have to figure out the best answer to that question on your own. Our recommendation is to keep detailed records and measurements so you can experiment and try new things frequently. This way you can adapt and change as needed and learn and grow over time to help maximize both your success and profits.

Originally, the App Store allowed developers to set the price of their applications from $0.99 to $999.99, but later Apple lowered the maximum application price. Currently, it appears you can once again set your application price to $999.99. When you add your application to the App Store, you must apply a pricing tier to your application. There are 85 pricing tiers.

Pricing tier 1 means your application costs $0.99; tier 2 means your application costs $1.99; and so on, up to pricing tier 50, in which your application sells for $49.99. After that things start to get a little more complicated, with the price increasing exponentially all the way to $999.99 at pricing tier 85.

  • Tier 1: $0.99

  • Tier 2: $1.99

  • Tier 3: $2.99

  • ...

  • Tier 47: $46.99

  • Tier 48: $47.99

  • Tier 49: $48.99

  • Tier 50: $49.99

  • Tier 51: $54.99

  • Tier 52: $59.99

  • Tier 53: $64.99

  • Tier 54: $69.99

  • Tier 55: $74.99

  • Tier 56: $79.99

  • Tier 57: $84.99

  • Tier 58: $89.99

  • Tier 59: $94.99

  • Tier 60: $99.99

  • Tier 61: $109.99

  • Tier 62: $119.99

  • Tier 63: $129.99

  • Tier 64: $139.99

  • Tier 65: $149.99

  • Tier 66: $159.99

  • Tier 67: $169.99

  • Tier 68: $179.99

  • Tier 69: $189.99

  • Tier 70: $199.99

  • Tier 71: $209.99

  • Tier 72: $219.99

  • Tier 73: $229.99

  • Tier 74: $239.99

  • Tier 75: $249.99

  • Tier 76: $299.99

  • Tier 77: $349.99

  • Tier 78: $399.99

  • Tier 79: $449.99

  • Tier 80: $499.99

  • Tier 81: $599.99

  • Tier 82: $699.99

  • Tier 83: $799.99

  • Tier 84: $899.99

  • Tier 85: $999.99

Note

You should feel free to set the price of your application as you see fit, but be aware that there are not too many iPhone owners who are willing to pay $999.99 for an application. Be careful not to price your application out of existence.

Refunds

Refunds on the App Store are uncommon. The App Store refund policy is "All sales are final." But Apple will provide a customer a refund in the case of application quality issues. Apple recommends monitoring the rate of refunds for applications, since it is a strong indication of quality issues that you may be able to correct with a simple application update.

Parental controls

The iPhone and App Store support parental controls and age-based restriction settings. If you want your application to appeal to a broad audience, be sure to keep your application strictly PG. When you add your application to the App Store, you will have to choose how frequently your application exposes users to various types of content. The levels of content frequency are none, infrequent/mild, and frequent/intense. The various types of content Apple reviews are as follows:

  • Realistic violence

  • Sexual content or nudity

  • Profanity or crude humor

  • Alcohol, tobacco, or drug use, or references

  • Mature/suggestive themes

  • Simulated gambling

  • Horror/fear themes

  • Prolonged graphic or sadistic realistic violence

App ratings

Based on your choices for frequency of reviewed content, your application will be given an app rating. Apple's app ratings state the age appropriateness for your application. An app rating of 4+ means your application is appropriate for anyone four years and older. But note that regardless of rating, applications must not contain any obscene, pornographic, offensive, or defamatory content or materials of any kind (text, graphics, images, photographs, etc.), or other content or materials that in Apple's reasonable judgment may be found objectionable. There is a correlation between ESRB (Entertainment Software Rating Board), PEGI (Pan-European Game Information), and Apple's App Rating, as shown in Table 10.4.

Table 10.4. App Ratings

Apple's App Rating

ESRB Equivalent

PEGI Equivalent

What It Means

4+

EC

3+

Applications contain no objectionable materials.

9+

E10+

None

Applications may contain mild or infrequent occurrences of cartoon, fantasy, or realistic violence; and infrequent or mild mature, suggestive, or horror-themed content, which may not be suitable for children under the age of 9.

12+

T

12+

Applications may also contain infrequent mild language; frequent or intense cartoon, fantasy, or realistic violence; mild or infrequent mature or suggestive themes; and simulated gambling, which may not be suitable for children under the age of 12.

17+

Mature

16+

Applications may also contain frequent and intense offensive language; frequent and intense cartoon, fantasy, or realistic violence; and frequent and intense mature, horror, and suggestive themes; plus sexual content; nudity; and references to alcohol, tobacco, and drugs, which may not be suitable for children under the age of 17.

Restriction settings

Device owners can enable restriction settings on their device in Parental Controls to filter applications that can be installed on the device (Figure 10.3). The restriction setting levels match the app ratings that Apple assigns to applications on the App Store: Don't Allow Apps, 4+, 9+, 12+, 17+, and Allow All Apps.

Quality control

You can measure your application quality by analyzing your sales/trend reports. According to Apple, the typical ratio of refunds to overall sales should not exceed 0.5 percent. If you are seeing refunds in excess of that amount for a given application, it means that application's quality is likely subpar. Not only are you losing revenue due to refunds, but unhappy customers are likely to leave negative reviews and turn other potential customers away from your applications.

Restriction settings

Figure 10.3. Restriction settings

Making the Best Apps

Another way you can surprise and delight users is by including hidden features and functionality in your applications. These hidden features are sometimes known as Easter eggs. Figure 10.4 shows an example of one possible Easter egg.

Possible iPhone OS Easter egg: Emoji icons

Figure 10.4. Possible iPhone OS Easter egg: Emoji icons

Imagine that you have a fantasy role-playing game, and as the characters explore the land there is one screen where they can see an animated waterfall. It appears to be a part of the background imagery, but if a character tries to walk behind the waterfall, he is taken to a secret room that has some magical items that will aid him on his mission.

Using sound

What would movies be without music, soundtracks, and special effects? The same vacuum is made when you create an application without sound. An application without sound is only a little better than an application without graphics. Sound gives you yet another chance to surprise and delight your users, and you should never miss a chance to do this.

While you should always make an effort to include sound in your applications, you should also always include an easy way for your users to disable any audio you have in your app. While audio is a great feature for your applications to have, sometimes users don't want the extra attention it brings, or they may find it distracting. Make sure to always keep your application's user in charge.

You should be very excited to know that developers now have the ability to use music and playlists from the device iPod library in iPhone OS 3.0. This is a huge and largely untapped feature that would be a great advantage for your next game.

OpenGL ES

OpenGL ES (OpenGL for Embedded Systems) is a subset of the OpenGL 3D graphics API. All versions of the iPhone support OpenGL ES, but only the iPhone 3GS supports the latest version, OpenGL ES 2.0. This new version runs two to four times faster than OpenGL ES 1.1 on the previous models of the iPhone.

You can see the sample OpenGL ES application that Apple makes available in Figure 10.5. It may appear to be a simple shape, but many computer-generated images, especially in games, are built up from simple shapes like triangles. Like most things in math, once you master the basics you can do so much more.

Once again you may find yourself facing a dilemma. If you are considering doing any 3-D development for the iPhone using OpenGL ES and you want to support all devices, your application should target OpenGL ES 1.1. If you need the new texture and shading features of OpenGL ES 2.0 or the increased performance it allows, you will have to limit your application to the iPhone 3GS.

Transitions

One simple thing you can do to make all of your applications better is to take advantage of transitions. You'll notice that in almost all of the built-in iPhone applications, any time you go from one screen in an application to another, some sort of transition is fired. Maybe the next screen slides in from the right, or the screen curls up to reveal the screen behind it, as shown in Figure 10.6. But generally there is some eye candy to keep the user's attention and focus. You should want the same for your application's users.

Apple's OpenGL ES demo application

Figure 10.5. Apple's OpenGL ES demo application

The UIViewAnimationTransitions that are available in the iPhone SDK include the following:

  • UIViewAnimationTransitionNone

    This skips showing a transition and immediately shows the next screen instead.

  • UIViewAnimationTransitionFlipFromLeft

    This transition flips the screen from left to right vertically.

  • UIViewAnimationTransitionFlipFromRight

    This transition flips the screen from right to left vertically.

  • UIViewAnimationTransitionCurlUp

    This transition curls the view up from the right.

  • UIViewAnimationTransitionCurlDown

    This transition curls the view down from the top.

UIViewAnimationTransitionCurlUp being used to curl up view to reveal screen underneath

Figure 10.6. UIViewAnimationTransitionCurlUp being used to curl up view to reveal screen underneath

Xcode tools

Even the best carpenter in the world would have a hard time without the right tools. Make sure to take advantage of all the great tools you have available to you as an iPhone application developer. Here are some of the most important ones:

  • Xcode. Xcode (Figure 10.7) is the development environment for iPhone applications.

  • Interface Builder. Interface Builder is a visual design tool you use to create the user interfaces of your iPhone applications.

  • Dashcode. This allows for the creation of Web pages that are optimized for Safari on the iPhone.

  • Organizer. You use the Organizer to add Provisioning Profiles to your development device.

  • Debugger. The Xcode Debugger window offers a traditional but rich GUI debugging experience.

  • Console. This allows you to interact with the Debugger on the command line.

  • Research Assistant. The Research Assistant shows the selected symbol's declaration or availability information. You can also find sample code and related documents.

  • Shark. Shark is a tool for understanding and optimizing application performance.

  • Instruments. Instruments is an application for dynamically tracing and profiling iPhone application code. It includes the following useful templates: activity monitors, CPU sampler, file activity, leaks, object allocations, and UI recorder.

Xcode integrated development environment

Figure 10.7. Xcode integrated development environment

Development Provisioning Assistant

You can use the Development Provisioning Assistant (Figure 10.8) to create and install a Provisioning Profile and iPhone Development Certificate needed to build and install applications you're developing for iPhone and iPod touch devices.

Development Provisioning Assistant

Figure 10.8. Development Provisioning Assistant

There is a lot of work that must be done to configure your development machines and your development devices so they can work together and allow you to deploy applications you are developing. The Development Provisioning Assistant can do all of the manual steps for you and remove the chore from the process.

Note

You can find out more about the Development Provisioning Assistant and download it at http://developer.apple.com/iphone/manage/overview/index.action.

Apple Bug Reporter

Apple provides developers with a tool they can use to submit bug reports and enhancement requests. Developers can then track submitted bugs and enhancements using the Apple Bug Reporter, shown in Figure 10.9. If you do find a bug and it is a problem for you, you can even request a workaround using a technical support incident.

Apple Bug Reporter

Figure 10.9. Apple Bug Reporter

It's great knowing that if you encounter an issue while developing for the iPhone, Apple is there to support you. But what's really great is knowing that if you have an idea for an improvement to the iPhone, you can submit an enhancement request, and just maybe your idea will be a part of the next iPhone.

iPhone 3GS features

Recently Apple released the iPhone 3GS (Figure 10.10), and along with it a new iPhone OS 3.0 and iPhone SDK that allow developers to fully take advantage of this device's new capabilities. Here's an introduction to what has been added and what is new:

iPhone 3GS

Figure 10.10. iPhone 3GS

  • Accessibility. iPhone 3GS offers accessibility features to assist users who are visually or hearing impaired. These features include the VoiceOver screen reader, a Zoom feature, White on Black display options, Mono Audio, and more.

  • Compass. Combine a GPS with an accelerometer and now a digital compass and you have the ultimate mobile navigation tool that fits right in your pocket.

  • Open GL ES 2.0. Open GL ES 2.0 allows applications the ability to feature richer visuals and smoother game play performance. One of the biggest differences between Open GL ES 1.0 and Open GL ES 2.0 is that the latest version includes more advanced shader support.

  • Video recording. Now you can enjoy the same power and flexibility that the iPhone brings to photos with video. You can record, edit, and share video right on the device.

iPhone OS 3.0 features

The new iPhone OS 3.0 (Figure 10.11) brings a lot of new features and functionality. Not only is their support for new hardware found on the iPhone 3GS, but many of the new iPhone OS 3.0 capabilities work on all devices, including devices before the iPhone 3GS.

iPhone OS 3.0

Figure 10.11. iPhone OS 3.0

Make sure to always keep up with new OS features so your apps can take full advantage of new opportunities:

  • Automatic Wi-Fi login. Device automatically logs in to any Wi-Fi hotspot that it has seen before.

  • Cut, copy, and paste. You can now cut, copy, and paste text from any application. And you can even copy and paste images from Safari.

  • Find My iPhone. If you lose your phone you can now track its location via Find My iPhone.

  • Internet tethering. Your laptop can now access your device's Internet connection through either Bluetooth or USB.

  • iTunes Store account. The on-device App Store now allows users to log in to iTunes with different accounts.

  • Landscape keyboard. Need more room to type? More applications support the landscape keyboard feature, including Mail, Messages, Notes, and Safari.

  • MMS. You can now send audio, contact information, and photos using MMS messages.

  • New languages and keyboard layouts. iPhone now features 30 new languages as well as 40 new keyboard layouts.

  • Parental controls. You're in charge of deciding what apps, music, and videos your kids have access to.

  • Remote Wipe. Remote Wipe ensures your personal and private information is always safe.

  • Shake to shuffle. You can now shuffle to another song with ease by giving your device a quick shake.

  • Spotlight Search. Search calendar, contacts, e-mail, notes, and media content from one screen using Spotlight Search.

  • Stereo Bluetooth. Hear your iPhone audio in stereo using any compatible Bluetooth audio hardware device.

  • Sync notes. Notes now can be synchronized back to desktop using iTunes.

  • Voice memos. You can record audio memos using the iPhone's microphone or even your headset.

  • YouTube login. You can log in and access your YouTube account, including bookmarks and favorites.

iPhone SDK 3.0 features

So the iPhone 3GS brings new features, and the iPhone OS 3.0 contains new capabilities, but you'll need to use the iPhone SDK 3.0 (Figure 10.12) in order to fully take advantage of either of these.

It is through the iPhone SDK 3.0 that you will be able to tap into the new framework and libraries:

  • In App Purchase. The Store Kit framework (StoreKit.framework) provides a means for you to make additional content and services available from within your iPhone applications. For example, you could use this feature to allow the user to unlock additional application features. Or, if you are a game developer, you could use it to offer additional game levels.

  • Apple Push Notification service. The Apple Push Notification service allows you to alert your users to new information, even when your application is not actively running. Using this service, you can push text notifications, trigger audible alerts, or add a numbered badge to your application icon. These messages let users know that they should open your application to receive the related information.

  • Accessories. The External Accessory framework (ExternalAccessory.framework) provides support for communicating with hardware accessories attached to an iPhone or iPod touch device. Accessories can be connected through the 30-pin dock connector of a device or wirelessly using Bluetooth.

iPhone SDK 3.0

Figure 10.12. iPhone SDK 3.0

  • Peer-to-peer connectivity. The Game Kit framework (GameKit.framework) lets you add peer-to-peer network capabilities to your applications. Specifically, this framework provides support for peer-to-peer connectivity and in-game voice features. Although these features are most commonly found in multiplayer network games, you can incorporate them into non-game applications as well.

Note

See Chapter 7 for a full discussion on peer-to-peer connectivity.

  • Maps. The Map Kit framework (MapKit.framework) provides a map interface that you can embed into your own application. Based on the behavior of this interface within the Maps application, it provides a scrollable map view that can be annotated with custom information.

  • iPod library access. Several new classes and protocols have been added to the Media Player framework (MediaPlayer.framework) to allow access to the user's audio library.

  • Cut, copy, and paste. The UIKit framework provides new classes to support pasteboard operations and also incorporates selection and pasteboard behaviors into some existing UIKit views. You can use the new classes to incorporate cut, copy, and paste behaviors into your application.

  • Audio recording and management. The AV Foundation framework (AVFoundation.framework) includes new classes and protocols for recording audio and managing audio sessions.

  • Core Data. The Core Data framework (CoreData.framework) is a technology for managing the data model of a Model-View-Controller application. Core Data is intended for use in applications where the data model is already highly structured. Instead of defining data structures programmatically, you use the graphical tools in Xcode to build a schema representing your data model.

  • In-app e-mail. The Message UI framework (MessageUI.framework) is a new framework that provides support for composing and queuing e-mail messages in the user's outbox.

  • Streaming video. There is now support for the playback of live video that is stored on the Web. Streamed content can be played back on an iPhone OS–based device using the MPMoviePlayerController class.

  • Safari features. Safari supports the audio and video HTML elements, which allow you to embed audio and video content into your Web applications. Safari also supports geolocation JavaScript classes, which work with the onboard location services to retrieve the current location of the device.

  • Shared keychain items. It is now possible for you to share keychain items among multiple applications you create. Sharing items makes it easier for applications in the same suite to interoperate more smoothly. For example, you could use this feature to share user passwords or other elements that might otherwise require you to prompt the user from each application separately.

  • Accessibility support. Accessibility support makes it easier for people with visual, auditory, or physical disabilities to use iPhone OS–based devices.

  • Compass support. The Core Location framework now includes support for obtaining heading information from iPhone OS–based devices with a built-in magnetometer. Heading information obtained from such devices can be used to implement a real-time compass or other navigation-related programs.

  • OpenGL ES 2.0. Applications can now take advantage of the OpenGL ES 2.0 specification on iPhone OS–based devices with appropriate graphics hardware.

Simulator vs. device

The Simulator can do much of what a real device can do, but to completely know how an application will work in the field, you much test it on true devices. Many things such as battery life, performance, and hardware-related APIs are only valid on actual devices.

Simulator limitations include the following:

  • Accelerometer supports only shakes and rotation.

  • Camera is not supported.

  • Location/GPS is hardcoded to one location.

  • Multi-Touch events are not supported.

  • OpenGL ES is not supported.

  • Peer-to-peer (P2P) is not supported.

  • Time zone cannot be set on Simulator.

If your application is built around any of these features, you will only be able to fully test your applications on true devices. Again, the Simulator works great for quick and dirty testing, but always run your application on a real device for final testing.

Worldwide Developers Conference

The Apple Worldwide Developers Conference (WWDC) provides developers with in-depth technical information and hands-on learning about the powerful technologies in iPhone OS and Mac OS X from the Apple engineers who created them. The WWDC is a great opportunity for developers to learn more about the iPhone SDK directly from the source. The conference typically lasts five days and has over a thousand Apple engineers who give presentations and are available to answer your questions. The conference always sells out well in advance.

WWDC highlights include the following:

  • iPhone OS and Mac OS X developer-focused content

  • Technical sessions

  • Hands-on labs

  • Special events, such as Stump the Experts and the Apple Design Awards

  • 5,000 other developers on site

Tip

Find out more about the Worldwide Developers Conference at http://developer.apple.com/wwdc/.

Apple Developer Connection (ADC) memberships

You have to join the iPhone Developer Program if you want to be able to create applications that can be installed on real devices from the App Store. But you can also get an Apple Developer Connection (ADC) membership. Membership levels are Premier ($3,499), Select ($499), Student ($99), and Online (free) for a one-year membership. Figure 10.13 shows the ADC membership page.

Apple Developer Connection membership page

Figure 10.13. Apple Developer Connection membership page

ADC memberships offer many more benefits, including:

  • One ticket to the Apple Worldwide Developers Conference (Premier only)

  • Software Seeding Program (Premier and Select only)

  • Technical Support (eight calls per year for Premier and two calls per year for Select)

  • Developer Forums (Premier and Select only)

  • ADC on iTunes (Premier and Select include full access; limited otherwise)

  • Compatibility Labs (three days per month for Premier and two days per month for Select)

  • Hardware Purchase Program (10 systems per year for Premier and 1 system per year for Select)

Apple Developer Forums

Just as no man is an island unto himself, as the saying goes, no developer can figure out everything on his own. You've probably already figured this out for yourself, or you wouldn't have bought this book in the first place. The day will come when you will have a problem and no clue what to try next. When that day arrives, one of the first places we recommend you look is the Apple Developer Forums (Figure 10.14).

The Apple Developer Forums allow developers to discuss iPhone development with other iPhone developers and Apple engineers. It is one of the few places where developers can go and discuss iPhone SDK features that may still be under NDA, or non-disclosure agreement. Apple typically requires developers to not publicly discuss material related to beta releases of either the iPhone OS or iPhone SDK in order to better protect their intellectual property. Once these items are publicly released, developers usually are free to discuss details publicly.

The Apple Developer Forums cover many topics, including Getting Started, Cocoa Touch, Core OS, Graphics and Media, Web Technologies, System and Device Features, Performance, Developer Tools, Distribution, and User Experience. If you are having a problem figuring out a way to accomplish something using the iPhone SDK, then others have probably already had the same issue and maybe even found a solution that they would be willing to share with you.

Apple Developer Forums

Figure 10.14. Apple Developer Forums

Apple Push Notification service

With iPhone OS 3.0, developers now have the power to use Apple Push Notification service. Instead of allowing background applications on the iPhone, Apple decided to implement a remote notification system. The goal was to maximize battery life and performance. With push notifications, your application can receive events even when it is not running (Figure 10.15).

Apple Push Notification ideas include:

  • Sports game scores

  • Instant messaging and chat applications

  • Workflow and task management applications

  • Game challenges and invites

  • Deal-of-the-day applications

Example of Apple Push Notification received while application not running

Figure 10.15. Example of Apple Push Notification received while application not running

Be aware that when the iPod touch screen is on and has a Wi-Fi connection, push notifications are received at any time. If the iPod touch screen is asleep, it will check every 15 minutes for a notification.

Product icons

Product icons make up a large part of the first impression many users have of your application, as shown in Figure 10.16. Since app icons are 59 × 59 pixels for the device icon and 512 × 512 pixels for the App Store icon, there is potential to include marketing messages on the icon itself. Take a look at the top apps on the App Store today and you'll find many applications with some kind of marketing text as a banner, badge, or overlay. Some of the more common ones are Sale!, Sales 75%, 99¢, FREE!, and LITE.

iFlame's 512-x-512-pixel App Store icon

Figure 10.16. iFlame's 512-x-512-pixel App Store icon

Note

You might have noticed that the App Store always has three large application ads at the top of the main page in iTunes. You might be wondering how much it costs to advertise on the App Store yourself. Unfortunately, for the most part, you cannot simply purchase this advertising on the App Store. These are not usually paid ads. You must be approached directly from Apple for your application to be featured here.

Supporting different iPhone OS versions

When Apple was preparing the iPhone OS 3.0 for release, there was a period where developers were required to support multiple versions of the OS. This meant that your application had to work on the current version of the iPhone OS as well as on an upcoming version of the iPhone OS. It can get expensive purchasing multiple devices to test different iPhone OS versions on. Fortunately, it is possible to downgrade a device's firmware in order to test an application on an earlier OS version. This can be necessary if you begin to get reports from users that your application is having issues on iPhone OS version X.X.X and you're on a newer version.

In order to do this, you have to put your device in Device Firmware Update (DFU) mode. Here are the steps to do that:

  1. Open iTunes and connect your device.

  2. Press and hold down the Home button and the Sleep/Wake button at the same time.

  3. After 5 to 10 seconds, release the Sleep/Wake button. Continue holding down the Home button until iTunes displays a message telling you it has detected an iPhone in recovery mode. Note that your screen should remain blank during this process—if you see the Apple logo or a Restore screen, try again.

  4. Right-click the Restore button in iTunes, and you should be able to select any firmware version to load.

Exploring App Store Concepts

Being a developer and working with the App Store is a bit like being a manufacturer and working with Wal-Mart. You are not the one in power in this relationship and there are certain ways of going about things that you have to learn before you can be successful in this marketplace.

Supply and demand

If you have taken any basic economic classes, you are familiar with the concept of supply and demand. Why are people willing to pay more for diamonds than for water, when they need water to survive? It is because diamonds are scarcer than water. If you changed the supply of either water or diamonds enough, you could be sure to change which one people would be willing to pay more for.

Supply and demand applies to the App Store as well. Let's say your application has been getting 10 sales a day, at $4.99 per sale. This works out to about $50.00 per day of revenue for this application. What would happen if you offered a special where you lowered the price to $0.99? If you were to get 100 sales a day at $0.99 per sale, you would be making about $100 per day in revenue. In other words, for no real extra work or cost, you would double your income simply by lowering your price. This is a win-win situation for both you and your users. Notice that by reducing the price of your product you were able to increase the demand for your product.

This can work in reverse as well. Suppose you were selling another application on the App Store for $0.99 and you were getting as many as 100 sales a day. Now you decide to raise the price to $9.99, and find out you lose a majority of your sales, but you still get around 20 sales a day. In this case you went from making around $100 a day to making close to $200 a day on this one application. This time you saw that by increasing the price of your product you were able to better capture the full monetary demand for your product. Your sales/trend reports can help you better find your application's profit-maximizing price point. It is always easier to get more sales simply by lowering the price. But if you want to maximize your application's profit, you need to experiment and use a little trial and error to find your application's profit "sweet spot."

Promo codes

Apple allows developers to request promotional codes that will give users free downloads of applications. You can generate a promo code for any of your applications by going to https://itunesconnect.apple.com/ and choosing Request Promotional Codes. The request promotional code Web page has a View History feature (Figure 10.17), which allows you to view your requested promo code history for the last 60 days.

Note

You are given 50 promotional codes for each version of an application. They will expire after four weeks, and they can only be used in the U.S. iTunes Store.

Why would you want to give away any of your applications for free? What if you wanted to have a contest for one of your applications, and give the winner a free copy of another one of your applications? Promo codes make contests like this quick and easy for everyone involved. You can even make the contest a part of one of your applications. Or you could run the contest on Twitter, Facebook, or another social networking site. By tapping into a social networking site, you have the potential of creating a viral marketing event. Viral marketing is about creating a buzz—for example, creating a video that viewers enjoy so much that they pass it along to their friends. Say you create an app demo video that you manage to get in front of 1,000 people, who each share it with two of their friends, who in turn share it with two of their friends, and so on. You can see the snowball effect this creates. Another situation in which you might want to share free promo codes with others is if you have a few beta testers who have been testing your new application and you want to reward them for all their hard work with a free copy of the final product.

In iPhone OS 3.0 it is possible to redeem promo codes right from the App Store application on the phone. Currently it is not possible to send promo codes as links either through text messaging or e-mails, but users can take promo codes that they may have received in an e-mail and copy and paste the code into the redeem section of the new App Store iPhone application. There are even Web sites devoted to giving away iPhone application promo codes. For example, www.appgiveaway.com/ helps developers generate buzz about their applications by creating promotional giveaways around the app promotional codes. Consider that while only a few people can win the promotional codes for the free applications, many more people see the applications listed on the site. This is a great form of advertising and marketing.

Finally, you may want to allow someone to review your application. There are many sites that focus specifically on reviewing iPhone applications. Many of these sites request that you provide them with a promo code so that they can review your application without having to buy it. It can get very expensive for a site to review hundreds of iPhone applications if the site has to pay for all of the applications it reviews.

Requesting promotional codes

Figure 10.17. Requesting promotional codes

Contests

We mentioned earlier that you could have contests for your application where you give away App Store promo codes to users so they can download your applications for free. But that's not the only way you can take advantage of contests to promote your applications.

Many developers of graphics- and photo-related iPhone applications hold contests for their applications where users can submit content that they have created with their applications. In one case people might compete to draw the best picture, and in the other case users might try to take the best photo.

Other ideas are to create in-game challenges and reward users with prizes accordingly. Usually these contests would be framed around the basic idea of the application. For example, if you created a game with many challenging levels, you could run a contest for the first player to make it through all 13 levels. If you have a puzzle game that is a time-based challenge, you could give a prize for the player with the best score in the next 30 days. The possibilities are endless. You just have to find the right ones to fit your applications.

App Store rejections

One day you are likely to have one of your applications rejected by Apple for the App Store. It happens, and you shouldn't let it affect you personally. In most situations you will be able to address the issue and resubmit your application and have everything work out for the best.

If you have an application rejected, often you can find another application that already exists on the App Store that does exactly what your application was rejected for. It can be quite frustrating, but getting upset will not do anything to help the situation. Just assume that there is another developer looking at one of your other applications already on the App Store and wondering why his got rejected and yours did not.

There are several reasons an app may be rejected:

  • Application bugs. Your application should be, for the most part, free of any application bugs. Otherwise you run the risk of either the App Store rejecting your application or, even worse, your application users rejecting your application.

  • Data. Apps that transfer large amounts of data over cellular connections have been another common candidate for rejection. This includes everything from tethering applications to video applications.

  • Duplication. There is an expression that says if two people are exactly the same then one of them is unnecessary. Apple has this philosophy to applications that duplicate functionality of applications already existing in the iPhone OS. Even if you make a better app, it may be rejected if one just like it already exists. After we created iFlame, we went back and created Camp Fire, which was summarily rejected because it reminded someone too much of iFlame.

  • Graphics. Be careful when reusing existing graphic elements from the iPhone OS. In many cases, a developer who copies icons, images, or logos from the iPhone OS and uses them in their application will have their application rejected.

  • Icons. Your 57-x-57-pixel application icon must be the same as your 512-x-512-pixel App Store icon. The only difference allowed is that one is larger than the other. At one point we had some text on the large icon that wasn't on the smaller icon. This caused the entire application to be rejected until we redid the icons to match.

  • Offensive material. Any offensive material in your application, whether in text or image form, will cause your application to be rejected. You can even run this risk if your application pulls down third-party data streams like Twitter, Facebook, RSS, and so on. Apple says: "Applications must not contain any obscene, pornographic, offensive, or defamatory content or materials of any kind (text, graphics, images, photographs, etc.), or other content or materials that in Apple's reasonable judgment may be found objectionable by iPhone or iPod touch users."

  • Using private frameworks. You are not allowed to use any of the private frameworks in your applications.

  • Vibration. Vibration can only be used in limited amounts. Apps that use excessive amounts of vibration tend to be rejected due to concerns about device battery life.

App Store custom backgrounds

You may have noticed that many of the more popular applications on the App Store have a custom background (Figure 10.18) instead of the default blue gradient background. You might be wondering how you can create a custom App Store background for your applications. Unfortunately, you cannot. Apple decides which applications get to have custom backgrounds. If your application becomes popular enough, you might hear from Apple about creating an App Store custom background.

Custom background as shown in Apple's Texas Hold 'em

Figure 10.18. Custom background as shown in Apple's Texas Hold 'em

Top free and paid applications

It is common for new developers to wonder how to make their application become one of the top applications on the App Store. The ultimate goal is to be in the top 25 paid applications, as shown in Figure 10.19, or in the top 25 free applications. An easier goal is to be in the top 25 applications for an App Store application category, such as Games or Entertainment. Or better still, you could create a top 25 application in a less popular category, such as Weather or Finance.

Some of the top 25 paid applications

Figure 10.19. Some of the top 25 paid applications

The specific details for how application rank is calculated are a secret. But most developers agree that it's based on a sliding scale, using number of sales per day for a small time period (for example, three days). For some of the more popular categories such as Games or Entertainment, your application will need to have hundreds, maybe even thousands, of sales each day to be in the top 25. For other less competitive categories, your application may only need a hundred or so sales a day.

iTunes Deep Links

You can copy an iTunes Store URL from inside iTunes. First, find an application you like on the App Store. Then right-click on either the developer's name or the application's name. You should see a context menu appear named Copy iTunes Store URL. If you click this menu item, you will have a link like the following URL: http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=287545019&mt=8. This link works great for any hyperlinks on your Web pages or in your e-mails, but it is a bit unwieldy to show to people.

Another issue with this link is that you cannot tell what application it's for just by looking at it. For the most part, only we and Apple know this link is for the AppsAmuck iFlame application. If you want to have friendly URLs, one thing you can do is to use iTunes Deep Links. Creating a deep link is simple; just add the name of your app after itunes.com/apps/. Go to http://itunes.com/apps/iFlame to see an example of how much better this method is. We think you will agree that iTunes Deep Links is the way to go.

Note

For a discussion on creating the iFlame application, see Chapter 4.

Worldwide distribution

Currently there are 77 App Store fronts. Each App Store front is targeted for a specific region. Apple does this so the iPhone OS platform can reach as many people as possible. If this book were not written in a language you were familiar with, would you have bought it? The same way this is important for the App Store and for this book, it is important for your applications. You should make an effort to allow your application to support as many of the world's App Store fronts as possible—ideally all of them.

However, note that if your application has country-specific functionality, such as SMS integration with limited carriers, or depends on Web services that aren't available outside of the United States, it should be limited to those countries where it does work. Customers tend to assume that an app available in their country's App Store will actually work in their country.

App Store Logo License Program

By now you have probably seen the Available on the App Store artwork. Developers enrolled in the iPhone Developer Program can join the App Store Logo License Program. Users now recognize the Available on the App Store artwork (Figure 10.20), and they know that when they see it there is an application available for their device on the App Store.

Note

See Chapter 1 for more on the iPhone Developer Program.

Joining the App Store Logo License Program is a simple process. You will need to read the program's App Marketing License Agreement, then complete and mail the agreement to the address provided. Once you have read and complied with the agreement, you can download the Available on the App Store artwork and use it in your advertising, Web sites, and other application marketing items.

Available on the App Store artwork

Figure 10.20. Available on the App Store artwork

iTunes Affiliates Program

As an iPhone application developer, you earn 70 percent royalties on any application you sell on the App Store. But did you know that iTunes has an affiliates program you can also join that lets you earn commissions on any sales through your generated affiliate links?

The iTunes Affiliates Program, shown in Figure 10.21, covers applications on the App Store, but it also applies to music, TV shows, movies, and audio books. As an iTunes affiliate, you earn a 5 percent commission on all qualifying revenue.

Consider this: You can spend a month creating a great iPhone application and earn 70 percent of the revenue generated for any sale, or you can spend a minute creating an affiliate link and earn 5 percent of the revenue generated for each sale through one of your links. Finally, you can earn up to 75 percent of the revenue for a sale if you created the application and it came from one of your affiliate links.

iTunes Affiliates Program

Figure 10.21. iTunes Affiliates Program

There is a lot of money to be made in creating iPhone applications, but it can be a lot of work. No doubt it is the path we would recommend you take. But there is some wisdom in considering opportunities that are available through affiliate links as well. You should definitely consider creating affiliate versions of any links you control for any of your applications on the App Store. Sometimes 5 percent can be the difference between a successful company and a company that eventually ends up going out of business.

Customer Reviews

Customer reviews, like the ones shown in Figure 10.22, play an important part of an application's success. Not only can customers leave reviews for applications, but users can vote on specific reviews as to whether or not a review was helpful to them. You want to make sure your application is as good as possible to keep the highest voted customer review from being "This app does not work!" You will be much happier if your highest voted customer review is "Well worth the money!" If you put enough effort into the fit and finish of your iPhone application, you should not have anything to worry about.

Customer reviews for Bust-A-Spook

Figure 10.22. Customer reviews for Bust-A-Spook

Each customer review is made up of the following information: review title, customer rating, user name, application version review applies to, review date, review details, and the number of customers who found the review helpful or not. Customer reviews are by default sorted by most helpful, but you can sort reviews by most helpful, most favorable, most critical, or most recent.

Note

Only customers who have actually purchased your application can leave a review.

Treat your customers well. An upset customer is much more likely to leave a customer review and rating than a happy customer, so you want to do all that you can upfront to avoid giving a customer a reason to be upset with anything about your application. And if one user is having an issue with your application, there is a good chance that others are as well. Respond quickly and decisively to any issues reported.

You can encourage users of your application to leave reviews for your application. Any time someone requests a new feature in one of your applications and you add it, consider asking the person who made the request to leave a review for your application on the App Store. Most users will be thrilled to have an opportunity to do something in return for you.

Feedback

Apple has done a very good job of creating systems to allow application owners to provide feedback to others and developers. You have everything from customer ratings to customer reviews. The App Store also has a Tell a Friend feature. All App Store application listings have a company Web site link and a customer support Web link. You should make certain to monitor and respond to any feedback you receive from your application users.

You should also consider building custom feedback systems into your applications. Customers appreciate being able to find related Web sites and contact information easily and directly from inside the application itself. Even if all you do is create a couple of hyperlinks that either open your company's Web site or send an e-mail to your company's support e-mail address, you will likely earn the gratitude of more than one customer. With iPhone OS 3.0, you can now take advantage of in-app e-mail features, which means users don't have to leave the app to send an e-mail message.

People also like it when companies have community message boards or forums for their products. If a user is having an issue with an application, he may prefer to send you an e-mail, but if he just wants to learn more about your application's possibilities, sometimes forums are a more natural fit.

Review sites and testimonials

Many applications include reviews from famous iPhone app review sites. There are quite a few of these kinds of sites; a simple search provides you with a good list of some to contact about reviewing your application. You can think of these types of reviews as being like professional customer reviews.

As we've mentioned, many of these sites will be glad to review your application for free if you provide them with a promo code allowing them to download your application for free. It's one of those symbiotic relationships, where if you scratch their back they will scratch yours. You are providing them with content to add to their site, and they are providing you and their readers with a professional-quality review.

Here's a list of some great iPhone application review sites:

  • iPhone Application List. http://iphoneapplicationlist.com

  • iPhone App Reviews. www.iphoneappreviews.net/

  • Apple iPhone School. www.appleiphoneschool.com/

  • What's on iPhone. www.whatsoniphone.com/

  • I use this iPhone software. http://iphone.iusethis.com/

  • AppVee. www.appvee.com/

  • App Store Apps. www.appstoreapps.com/

  • iLounge.com. www.ilounge.com/

All applications on the App Store can have customer reviews, but there is nothing stopping developers like you from highlighting specific user testimonials in their applications' descriptions. This is a great way for you to show off all the great feedback your applications have received from users.

Customer ratings

Customer ratings are a prominent part of your application's App Store listing. They are important to potential buyers, and they should be important to you. Originally the App Store would allow anyone to leave ratings or reviews for your application, even someone who had never purchased your app. This lead to a great deal of weeping and gnashing of teeth for many developers due to random people—sometimes even competitors—leaving negative reviews for applications they had never even bothered to try. Eventually Apple changed how customer ratings work on the App Store so only users who actually purchase an application can leave ratings or reviews on it.

An application owner can rate an application on a scale of one to five stars, with five stars being the highest rating and one star being the lowest. Once users have left their rating for an application, this information becomes available for other potential buyers to consider. It is imperative that you make every effort on your part for your applications to become five-star applications.

Your application's App Store listing shows customer ratings in various formats. Potential buyers can see the average rating for the current version, which could be something like four and a half stars. Next to this value there is a number that shows how many ratings this average is derived from. Right below that there is a breakdown of how many votes the application received for each score value from one to five stars.

Take a quick look at the customer ratings for the current number-one application on the App Store. You will probably see values similar to the following:

  • Average rating for the current version: 4.5 stars (2,843 ratings)

  • 5 stars: 2,178 (77 percent)

  • 4 stars: 309 (11 percent)

  • 3 stars: 105 (4 percent)

  • 2 stars: 41 (1 percent)

  • 1 star: 210 (7 percent)

It's important to note that over 90 percent of the ratings for this application are three stars or higher. Also notice that even the number-one application on the App Store has a decent number of one-star ratings. That just goes to show you that the App Store is a cruel mistress, and there is very low tolerance of any imperfection.

Note

Since iPhone OS version 2.2, Apple has prompted users to rate an application before it is deleted from the device. Users tend to remove their least-favorite apps first.

You can see the average rating for the current version of the application, but you also get to see the average rating for all versions of the application. And again, you can expand the average rating for all versions so you can see the breakdown of votes for each rating score. This allows potential buyers to see if the quality of an application is getting better or worse over time. Users can even use this as a kind of litmus test to see if they want to install the latest update for an application. If a recent update has a lot of poor ratings, it may be a sign that there are issues with that update.

Using App Store Search Secrets

When you hear the term search engine optimization, or SEO, the first thing you probably think of are Web-based search engines such as Google. But in the highly competitive world of iPhone applications, your App Store SEO might be more important than your Google SEO.

The primary factor in your application's App Store SEO is its title. For example, our air hockey game is named Amuck Puck but it is listed as Amuck Puck—Air Hockey. This way our application can get hits for searches on its name and on the term "air hockey." We definitely want our app to come up in searches for "air hockey," since that is what the app really is—an air hockey game.

Tip

Check out your favorite applications and see what they are doing, and discover for yourself what really works. From time to time make a point of reviewing all of the featured and top 25 apps on the App Store for ideas on how to better market your own applications.

Keywords

Be sure to consider important keywords for your application title and description. Some people go so far as to include keywords in their company name, while others have noticed that having company and product names starting with the letter A can improve App Store search rankings and results. Be sure to search for Apps Amuck on the App Store and see our latest releases.

App Store application description

The App Store isn't perfect, but in a lot of ways it levels the playing field for everybody. It doesn't matter who you are; your application description must be 700 characters or less. That is both good and bad. It's good because none of your competition can use more than 700 characters to describe their application, but it's bad because more than likely you would prefer to have more than 700 characters to describe your application.

Not only do you have a limited number of characters that you can use to describe your application, but you can only use plain text for the description. You cannot use HTML or any other markup in your application description—but then again, neither can your competition. That means no HTML, no JavaScript, no AJAX, and no jQuery. How about bold? No. What about italics? No. Surely you can underline your text? No. If it's a text character, then maybe you can use it; otherwise, forget it.

That doesn't mean there aren't any tricks you can take advantage of. For example, it is possible to use some special Unicode characters. This allows you to include more graphic and symbolic characters in your application description. We have seen stars, squares, and so forth. It is common to see hyphens and asterisks being used in a row to create a virtual line out of text. It's true: Sometimes less really is more. So instead of trying to create advanced ASCII art in your application's description, focus on creating a well-formatted, easy-to-read description for your application.

Tip

Because you cannot include a hyperlink directly in your App Store description, consider using a URL-shortening service like http://bit.ly, which creates short URLs that redirect users to the much longer original URLs that you provided.

On sale

People love a good sale. Does anything actually sell for the manufacturer's suggested retail price anymore? It seems like products are designed from day one to go on sale. Think about how many people look forward to Black Friday, the day after Thanksgiving, which marks the beginning of the holiday shopping season in the United States. Many people line up hours before stores even open and risk life and limb in the hope of grabbing some doorbuster sale items.

Similarly, many apps on the App Store seem to have a permanent "Limited Time SALE!" of "80% OFF!" Basically these applications are marketing themselves as $4.99 applications that are on sale for $0.99. Who says a limited time sale cannot last for the next 10 years? You should definitely consider having an on-sale promotion period for your applications, but maybe your limited time offers really should be limited time offers.

Videos

The App Store does not allow videos of iPhone applications. You cannot place a video demo of your application in your App Store application description, but you can add a video section to your description and place links to premade application demo videos there. Unfortunately, you cannot add active hyperlinks, but you can add the text for the URL. Consider putting a note to visit your Web site to see a demo right in the description.

There is more value in creating video demos of your applications than just for including links to them in your application description. You should consider including videos, along with screen shots, on your application's Web site as well. The average Web site visitor has a very short attention span. If you are lucky she will see your application video and decide to watch at least one of the demo videos. And from there, she just might decide to purchase the app.

Consider posting your applications' demo videos to video-sharing sites like YouTube, Vimeo, and Google Video. These sites get a lot of traffic. It is possible to create a marketing video that becomes popular enough to go viral and gain widespread Internet fame. Don't forget that many social networking sites, including Facebook, allow you to post pictures as well as videos.

Maximum number of applications

Each page of applications on the iPhone can hold 16 applications, besides the 4 bottom dock icons. Before iPhone OS 3.0, you could have up to 9 pages of applications; with iPhone OS 3.0, you can have up to 11 pages of applications. That gives you 148 apps (9 × 16 + 4) for older operating systems, and 180 apps (11 × 16 + 4) for iPhone OS 3.0. Keep in mind there are almost 20 icons that Apple does not allow end users to remove from their device.

Before the iPhone OS 3.0, if users ran out of slots on their device to install applications, they could not install any new applications. This would prevent a world of applications from being installed (Figure 10.23). But on the iPhone OS 3.0, if there are no remaining application slots, the application can still be installed, but users must use the spotlight search feature to find the application first in order to launch it.

148 application icons from various iPhone apps

Figure 10.23. 148 application icons from various iPhone apps

So it looks like most users probably have room left on their device for your application, which is a good thing. Now all that is left for you to do is convince them that they should fill that empty slot on their device with your application.

App Store application categories

You can publish your application in up to two App Store application categories (Figure 10.24). Just as in retail stores, you have to decide where to put your products. The choice of App Store category can greatly affect the number of downloads your app receives.

App Store application categories include the following:

  • Books

  • Business

  • Education

  • Entertainment

  • Finance

  • Games

  • Healthcare & Fitness

  • Lifestyle

  • Medical

  • Music

  • Navigation

  • News

  • Photography

  • Productivity

  • Reference

  • Social Networking

  • Sports

  • Travel

  • Utilities

  • Weather

Some categories such as Games or Entertainment have a huge number of applications. And while they're quite popular, it is almost impossible for the average user to browse these large categories. On the other hand, smaller categories such as Weather are easily browsed from the App Store application on the iPhone.

It is possible for your application to rank higher in one category than in another. For example, since there are so many more applications in the Games category than in the Weather category, it is harder for an application to be in the top 25 games than for it to be in the top 25 weather apps. Sales tend to increase exponentially as you move closer to the top of a category, but the more popular categories carry more rewards for being in the top 25 as well. Be mindful of this aspect of App Store marketing.

There is a limit to the number of applications the App Store will return to a user for any given category on the App Store. At most a user can browse 3,500 applications in one App Store category. At 25 applications per page, this works out to allowing users to see 140 pages' worth of apps. But realistically, how many users would be willing to browse through 3,500 apps?

Assume that a certain percentage of people—let's say 100 percent, to keep things simple—is willing to look through the first page of 25 applications in a category, and a smaller percentage is willing to look at each additional page. So, for the applications on the second page of 25 apps, maybe only 90 percent of people are willing to browse this far. And only 80 percent might be willing to go far enough to see the applications in the 51 through 75 rankings. If this is the case, if you can promote your application enough to move from the third page of apps to the first page of apps, you increase the percentage of people who see your application from 80 percent to 100 percent.

The App Store categories

Figure 10.24. The App Store categories

App Store approval wait times

When you submit your first application to the App Store, you will likely be very anxious about it getting approved to be on the App Store. There is no fixed time for how long this approval process takes. It has taken about seven days for one of our typical applications to get approved, sometimes longer. In some cases you may even receive an Extended Approval Time Notice e-mail from Apple informing you that your application is taking longer than typical to review. Not only will you have to wait for your application to be approved when you first add it to the App Store, but all updates will have to be approved as well. This is true for bug fixes and feature enhancements to applications.

Marketing Yourself

Today's marketplace requires developers to create loyal customers who will purchase tomorrow's applications. Competition is extreme and margins are tight, so you need to stand out in a crowd and be memorable. Here are some ways to further promote yourself so that you stand out against the competition.

Social networking

One of the strongest ways to promote your iPhone applications is to use social networking technologies. Sure, you probably have a Twitter account, but does your company have one? (You can see ours in Figure 10.25.) How about your latest application? There are times when it makes sense to have a company Twitter account, and there are times when it makes sense to have a Twitter account for an individual application, especially if it is a popular app.

Social networking makes it easy to put people in touch with each other. That's also why it's so great for companies and their products. If you have good synergy between your company and your products, you can probably simply use one account for all of them. But if your company has two very different products—say, one is a "death-to-all-zombies" type of game and the other a kids' lullaby application—you might want to create two separate accounts.

This applies to Facebook just as much as Twitter. Again, maybe your company should have a fan page, and maybe your application should have one as well. A Facebook fan page is a great place for you to share pictures and a video about your applications. It gives users a comfortable place to go to give you feedback without having to worry about you using their contact information inappropriately.

In-app marketing and advertising

You know you can have in-app advertising show ads inside your application. But there are other forms of advertising and marketing that you can include in your application as well. For example, many developers include a More Games or More Apps screen in their applications.

AppsAmuck on Twitter

Figure 10.25. AppsAmuck on Twitter

This is a great opportunity to upsell your application's customers. If a customer loves one of your applications, he will probably like another one of your applications. Be sure to create a link to either your application's Web site or a direct link to your application's App Store listing (Figure 10.26) so that you can actually complete the sale if the customer is really interested. Links directly to the App Store listings are more valuable, because with an App Store link you can direct users right to the on-device App Store so they can buy and download the app immediately.

Take advantage of the iPhone's capabilities to help pitch your other applications to your clients. You can include screen shots, videos, and HTML descriptions for applications. There is nothing stopping you from even including a limited demo of one application inside another application.

You could let users try one level from your most popular application inside all your other applications. Or you could change what application trial you included in the next update for your application. Fresh content is always appreciated by users. Remember to have fun and always surprise and delight your users.

In-app marketing screen for iFlame

Figure 10.26. In-app marketing screen for iFlame

Many more people will download a free version of an application than pay for an application. In some cases you can make more money by giving away your application for free and adding in-app advertising to your application. You may wish to experiment with this by having a lite version of your paid app that has in-app advertising.

In-app advertising sites include:

  • AdMob. www.admob.com/

  • AdWhirl. www.adwhirl.com/

Competition

Users enjoy competition. You can take an application to a whole new level if you can add a healthy dose of competition to your applications. For example, a game could include a built-in high-score board that all application users can see. You could create an online high-score board as well, so that potential buyers can see the challenge and completion waiting for them once they purchase your app. Obviously, you could include contests and achievements in your application, among other ideas, to further expand its appeal.

Note

See Chapter 7 for more about building competition into your game design.

Testing

Testing is not optional. It is a fundamental and critical requirement for all of your applications. Yes, you can create a new version of your application that fixes any issues in a previous version of your application. And yes, Apple will perform a cursory test and review your application; however, that is no excuse for not performing adequate testing on your own first.

You cannot afford to ship applications that do not function as advertised. Today's users are very vocal and outspoken about any frustrations caused by faulty applications. They will remember the issue, they will tell others, and they will move on to the next product. When applications cost less than a cup of coffee, you can only expect so much loyalty and patience from a customer. Also note that since all updates submitted to Apple must go through the full review cycle as well, this can lead to frustrated users if they have to wait for critical bug fixes.

In App Purchases

With iPhone OS 3.0, it became possible to include In App Purchases, like the one shown in Figure 10.27, in your application. This means that users can now buy new application content from right inside your application. If you have a game, you could include additional levels that users could purchase for $1.99. Or maybe your application has other themes and skins available for it for a small fee. There are an endless number of ideas for how you could use the store kit framework in your applications.

Here are some ideas to get you started:

  • Application subscription—for example, monthly access to reverse phone number lookup database

  • Additional levels

  • Additional characters

  • Additional weapons

  • Additional character items

  • Additional application features—for example, the ability to access local music from the app

Application demonstrating In App Purchase

Figure 10.27. Application demonstrating In App Purchase

Payments for In App Purchases are handled via iTunes just the same as payments for application purchases. The developer picks the price, and 70 percent of the revenue goes to the developer. There are no credit card fees, and the developer is paid monthly.

Free applications remain free. This means that if your application is free, you cannot have In App Purchases. Apple was concerned that if it allowed In App Purchases in free apps, developers would be tempted to create a bunch of free software that wasn't really free and would not function until users purchased additional content for the application.

Be careful about changing your applications from being free to paid and vice versa when it comes to In App Purchases. Currently it appears that if you change a free app into a paid one you will enable In App Purchases, and you will disable In App Purchases if you do the reverse. The concern has been that developers might make free apps and build up large user bases and then change the app to a paid app and enable In App Purchases. Once users get the latest version, their free app might no longer be free. This could lead to community backlash or direct action from Apple to prevent this scenario.

Blogs

In most cases it makes sense for either you or your company to have a blog, like ours shown in Figure 10.28. It may even be useful for you to create an application-specific blog. In this case there should be a lot of activity going on around the given iPhone application. Most blogs should be updated every two or three days, and certainly at least once a week. Any less and the blog will atrophy and lose its followers over time.

Apps Amuck's blog

Figure 10.28. Apps Amuck's blog

Lite version

Many of the most popular applications on the App Store have a free version, usually known as a lite version. This is because Apple does not allow applications to have built-in trial capabilities. These lite versions usually only contain one level from the paid version of the application. This allows users to try out applications, like Trism-Lite shown in Figure 10.29. This is very important, since the App Store refund policy is "All sales are final." These lite versions of applications are the only way people interested in your products can test them out to be sure they will like them.

Trism-Lite

Figure 10.29. Trism-Lite

App updates

It's a good idea to update your applications from time to time (Figure 10.30). There are several reasons why you should do this. For one reason, it helps keep your applications visible on the App Store. Updating your applications frequently also keeps your application fresh in the mind of your users.

Facebook iPhone application update

Figure 10.30. Facebook iPhone application update

Mind share is an important part of an app's ultimate success in the marketplace. Consider if a user has two applications on his device. One of them is yours, and the other is your competitor's. You've been busy lately and have not been good about updating your application. But your competitor has been. This user really liked your application better at first, but when he saw all the new updates coming down for your competitor's application, he couldn't resist giving it another try. And he noticed that with every version the other app was getting better and better, until finally, it was better than your application.

Eventually, he even decided to uninstall your application to make room for something else that caught his eye. Then, as a final loss, later someone asked him for a recommendation for a new application to try, but instead of recommending your app, he recommended the other app. It is almost like a digital war where every device is a small piece of land that your application has to battle for, and every battle counts.

If your application has in-app advertising, you should be sure to update your application frequently as well. Updating your application often tends to encourage users to return to your application regularly to see what is new. The same way you want to water plants and flowers, you want to update your application with new features and improvements.

Consider also that frequent application updates can be a feature of your application that you can market to help propel your application's growth. This is called creating serial content for your application. You can let users know in your application's description that every week you will add new capabilities or content to your application. This could take many forms:

  • New levels

  • New weapons

  • New characters

  • Bug fixes

  • User-suggested ideas

  • New application themes and skins

  • New features

  • New music

  • New languages

  • New Easter eggs

Ad Hoc beta testing

Apple created Ad Hoc distribution to allow developers to easily beta test their applications. You can create an Ad Hoc distribution for any of your applications, as shown in Figure 10.31, and send it to beta testers to install on their device. Beta testers must first send you their Device ID, and you will have to add it to your currently registered devices.

Note

Be aware that removing a device from the list of currently registered devices will not replenish the current number of devices available. You will not be able to reset your device list until you renew your Apple developer membership.

You can manage your currently registered devices at http://developer.apple.com/iphone/manage/devices/index.action. Apple allows you to have a maximum of 100 devices allocated for your development team, which includes beta testers. Once you have added your beta testers' devices, you can create a beta build for your application and send it to them. From there, testers can install the application through iTunes and test on their devices.

Ad Hoc beta testing

Figure 10.31. Ad Hoc beta testing

While on one hand you want to make sure to take advantage of all the opportunities Ad Hoc beta testing brings, be sure not to use up all of your device slots too soon. Remember, Apple releases new devices regularly, and if a beta tester upgrades from one device to another, you will lose another slot. You want to make sure you always have some device slots left for yourself.

Application names

Your iPhone application name is very important because it is shown under your application's icon on the actual device. While your App Store application title can be quite long—up to 5,000 characters—your actual application name must be fairly short.

Your app's name cannot contain special characters like UTF-8 characters. The font used for showing application names on the iPhone is not a fixed-width font, so there is no specific number of characters that will not fit. Just be aware that if your application's name is too long, the iPhone OS will insert an ellipsis into the application name and remove any extraneous characters, making the name short enough to fit in the space allocated.

If you try to use a name for your application that is already taken, you will receive the following error message:

The Application Name that you provided has already been used. Please provide a unique Application Name.

Note

Once you assign a name to your application, it can be a bit of a challenge to completely rename it later on. You can rename it easily enough in Xcode, but if you want to rename every file, you will have to invest a little time finding and then replacing each reference.

Application piracy

For the most part, developers don't have to worry too much about application piracy. It does exist, but marketplace forces keep it in check. In order to pirate an iPhone application, you have to be able to afford an iPhone and an iPhone data plan. Most applications are very affordable, many only $0.99. Buying applications from the App Store is so easy and affordable it is hard to imagine a pirated version existing that could compete. Plus pirated applications can only be run on hacked devices, which further reduces the risk.

Screen shots

The App Store allows you to include up to five screen shots of your application, and you should try to include as many of these screen shots as you can. It's one of the quickest and easiest ways users can get a look at your application and get an idea of what the user experience will be.

Screen shots are very useful to include on the App Store, as shown in Figure 10.32, but be sure to include them on your application's Web site as well. One nice thing about including screen shots on your Web site is that you can include more than five of them. Also consider posting screen shots to various social networking sites such as Facebook. Screen shots allow you to market your application to users early in the development process before your application has been listed on the App Store. This allows developers to create buzz for their upcoming releases well in advance, creating momentum and increasing initial sales.

Tip

Sending screen shots along with "press releases" to blogs and sites that cover iPhone-related news is a great way of promoting your app before it's released.

Password Generator's primary screen shot on the App Store

Figure 10.32. Password Generator's primary screen shot on the App Store

Summary

In this chapter you learned a great deal about the business of software. You should now have a basic understanding of how to take advantage of the information and statistics in your applications' App Store reports. You should also understand more about how application size and price affect your sales. You are aware of how parental controls like app ratings and the device's restriction settings can block your application from being bought, and you realize how important quality control is to the ultimate success of your app.

You have learned how supply and demand control your application's sales. You know where to find help on the Apple developer forums, and you know how to promote your application using promo codes and contests. You've also learned about many of the new features of the iPhone 3GS, iPhone OS 3.0, and iPhone SDK 3.0.

You've become familiar with the important role that keywords play in App Store search engine optimization. You also know how critical a great App Store application description is. You have reviewed how an application that is on sale can be a powerful influence on consumers. And you know how to show off your application using videos. You are aware of App Store application categories and approval times. You should realize users enjoy cinematic experiences on their device and want to be surprised and delighted often.

Finally, you've learned that great marketing is as important as having a great app. You should try to take advantage of every opportunity you have to market your application. This includes social networking, in-app marketing, in-app advertising, screen shots, videos, and blogs. This also includes making sure you have a lite version of your application. You understand how to further grow your application revenue by taking advantage of In App Purchases.

You should now be fully prepared to unleash your ideas on the App Store. Remember, some apps are created great, others have greatness thrust upon them, and the rest have to work for it. There is an expression that describes this perfectly: Most people find it takes years of hard work and perseverance to become an overnight success. But when it does finally happen, it can be extraordinary. Hang in there. It really can happen. Work hard—and then enjoy the benefits!

Epilogue: Looking Ahead

Many consider the iPhone a revolutionary device—and it is, if you look at the whole package. But if you look at each piece individually, you will find that the iPhone is not the first device to attempt to become the "keystone" device—the device that people carry with them everywhere and always look to first. But today it looks like the iPhone is on the track to achieving this goal. The iPhone is the first device that combined a plethora of existing technologies into one device and coupled them with a user experience like no other. This tells you what most people already think. The iPhone is cool, awesome, and all those things that attracted you to it in the first place. However, it also tells you that we can step back and look at the industry to find what lies down the road.

To travel this road at a pace necessary to keep up, you will need to refine your skills. You have to become proficient at iPhone development so you can crank out new products and features as the platform moves forward.

Understand that the platform is always moving forward. Build and layer your solutions in a way that you can quickly and easily change and add features as necessary. You may have a great app today, but if a new app comes along that competes with yours and adds one great new feature, it could sink yours. Be ready to adapt before that happens. Look at other mobile devices and technologies that are popular. There's a good chance that those features will be brought to the iPhone down the road. Build your app in such a way that you can quickly integrate the new feature before it is announced. If you are feeling really confident, build a whole new app around this feature. If you are right and if you are the first to do so, the rewards can be great.

Refining your skills

Practice makes perfect, and that principle applies to iPhone development as it does any form of development. This is called experience, and that is why most jobs require a certain level of experience before you are even considered. As you begin to develop on the iPhone, you will likely become discouraged and frustrated, as we did. But don't worry; it will become more natural as you practice more and more.

Study the snippets in this book. Download the examples from http://appsamuck.com and from the Apple sample code library. Study the details of each example and try to learn more than just the specific technology being demonstrated. Look for patterns and practices you can adopt and reuse. Become an expert at finding answers to your questions. Search the Internet for examples that solve problems similar to yours. Search the Apple development forums and ask questions there. If you have a question, chances are that several others have the same question, so ask. Your questions will only help others and the community.

Finally, don't give up. Coming from other languages and disciplines to iPhone development can be tough. However, the best thing about developing for the iPhone is the reward. It is an incredibly satisfying experience. Once your see your creations take life on-screen in the palm of your hand, you will be hooked.

Answering the question: Is there more?

In short, the answer is yes! There is much more to learn and there will continue to be more. The iPhone SDK is a living and breathing project. It can be challenging to keep up with the changes; in fact, we had to change course while writing this book to include 3.0. Also, Apple released the iPhone 3GS, which introduced a whole new API for reading directional data from the internal compass.

The first iPhone was released in 2007; Tables 10.5, 10.6, and 10.7 list what the OS release schedule has been from then until the time of this writing.

Table 10.5. 1.x: First Release of the iPhone OS

Version

Release Date

(This was the release that introduced the App Store)

1.0

Jun 2007

1.0.1

Jul 2007

1.0.2

Aug 2007

1.1

Sep 2007

1.1.1

Sep 2007

1.1.2

Nov 2007

1.1.3

Jan 2008

1.1.4

Feb 2008

1.1.5

Jul 2008

Table 10.6. 2.X: Second Major Version of Iphone Os Released With The Iphone 3G

Version

Release Date

2.0

Jul 2008

2.0.1

Aug 2008

2.0.2

Aug 2008

2.1

Sep 2008

2.1.1

Sep 2008

2.2

Nov 2008

2.2.1

Jan 2009

Table 10.7. 3.x: Third Major Version of iPhone OS Released with the iPhone 3GS

Version

Release Date

3.0 B1

Mar 2009

3.0 B2

Mar 2009

3.0 B3

Apr 2009

3.0 B4

Apr 2009

3.0 B5

May 2009

3.0 GM

Jun 2009

3.0

Jun 2009

As you can see, this is an intense schedule. With every step in the release cycle you must be vigilant and adapt to features and changes that can trip you up or offer opportunity. These changes can render your application obsolete and potentially break your existing code, or they can open the door for you to greatly enhance your game. The point is that you must keep a watchful eye on all changes as they come, or pay the price of falling behind. With the 3.0 release alone, several enhancement features and changes were applied, including the following:

  • Spotlight Search

  • Cut, copy, paste

  • Earth magnetic compass (iPhone 3GS only)

  • In-application maps

  • MMS functionality (iPhone 3G and up) to send pictures, audio files, and more

  • Push notification for third-party applications

  • Peer-to-peer connectivity

  • Access to the iPod music library

  • In-app payment API for paid application add-on features

Apple tends to cluster their most significant changes around major releases. Apple also tends to limit and restrict access for certain releases and certain related features. For example, very few developers had access to push notifications before Apple made the service available to everyone. In some cases, you may have to react very quickly to a new change made in a new OS release. Both the 2.1 and 2.2 releases had this problem, causing many apps to be broken on release day and leaving developers scrambling to catch up.

Where to learn more

As we've mentioned, getting good at finding answers to your questions and solutions to your problems is one of the most important skills you can develop. We learned from the resources Apple offers and from newsgroups. Many of these resources are listed in Appendix A, but here are a couple of good ones to get you started.

Apple resources

http://developer.apple.com/iphone/
  • Getting started videos

  • Getting started documents

  • iPhone reference library

  • Coding how-to's

  • Sample code

Examples, questions, and answers

  • http://appsamuck.com

  • http://DevForums.Apple.com

  • http://StackOverflow.com

Preparing for the future

We have established the fact that you will always learn more and you will need to embrace changes in the SDK to keep current. The challenge is to build an application that employs strategies that minimize the impact of SDK changes.

Building apps with change in mind

You saw in the Amuck-Tac-Toe application in Chapter 8 how we used a factory to instantiate our connection class. This pattern is useful because it allows a single code base to effectively connect with any connection that can implement the protocol. However, this pattern is also useful for insulating the components of our application from changes in the iPhone SDK.

In the new 3.0 releases, a new sound library has been introduced. If you previously implemented a pattern that abstracts your sound actions from your sound engine, you could simply replace your sound engine implementation with a new one. This would effectively swap implementations without recoding every line that calls out to the sound engine.

Predicting the future

Okay, we cannot read minds, and we cannot teach you to read them, either. However, you can watch the industry and plan for obvious changes that you believe will be implemented. Remember that the iPhone is not the first mobile device to hit the market. Several features that are "new" to the iPhone are not new to mobile devices. The following new and exciting features that are now on the iPhone were, in some cases, available much earlier on other devices:

  • 3G networking

  • P2P over Bluetooth

  • GPS

  • Compass

  • Turn-by-turn directions

  • MMS

  • Video

  • Push notification

This is important, because if you code for a feature that is not available yet, you can be that early bird that gets the worm. On the other side, you may build an app that never gets the feature it needs to run, but eventually you will get lucky. What do you think the future holds for the iPhone? Here is a list of ideas that may or may not come to fruition in the future:

  • More space, more memory, faster processors

  • Higher-resolution screens

  • Bigger iPod version with bigger screen

  • Smaller iPod version with smaller screen (new nano?)

  • More APIs that are available today in Mac OS

  • More accurate GPS

  • More carriers

  • More languages

  • Flash support

  • Multitasking/background processes

  • Ability to download apps without the App Store

Watch the newsgroups, evaluate the rumors, and you will be able to pick some items you feel confident will happen. Take this knowledge and be the first to build the next cutting-edge app before the competition can even begin to catch you!

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset