Datasheet
Mobile Development
❘
7
In 2009, Apple introduced the iPhone 3GS and version 3 of the iPhone operating system. The iPhone
3GS, a refi nement of the iPhone 3G, supports higher data rates than the iPhone 3G, an improved
camera, an updated CPU, and voice control.
In 2010, Apple announced and shipped the iPad. The iPad is a tablet device, and it has a larger
screen than the iPhone. Also signifi cant is that it shipped with the iPhone operating system that is
fundamentally different than the iPhone.
Along with the release of each new iPhone, Apple has introduced a new iPod touch. The iPod touch
can be thought of as an iPhone without the phone, camera, and support for the 3G data services;
however, the iPod touch does have support for wireless networking using WiFi.
Since its availability three years ago, Apple has shipped more than 60 million units of the iPhone.
The iPad is estimated to ship several million units of the iPad in its fi rst year of availability, and this
will likely result in the iPad being the most popular tablet in 2010.
Unfortunately, for developers, three issues must be considered when running on the device:
The iPhone operating system does not allow for software code that is interpreted or dynami-
➤
cally compiled in any way.
Apple’s licensing for the SDK and developing with the iPhone does not allow for applications
➤
to have interpreted or dynamically compiled code.
Apple has an extensive validation process for iPhone applications. Some of the automated
➤
tests for an application will check for dynamically compiled and interpreted code.
These issues and licensing are something that developers need to be knowledgeable of, and some-
what limit the choices that a developer has for writing applications that run on the iPhone.
MOBILE DEVELOPMENT
There are a few things developers need to know when building applications on the iPhone with
MonoTouch:
The iPhone has a startup timer. If an application takes longer than 20 seconds to start up, the
➤
iPhone OS kills it.
The iPhone OS will kill any application that is unresponsive for longer than 20 seconds while
➤
the application is running. To work around this, you need to perform some type of asynchro-
nous operation.
The time spent processing the
➤
FinishedLaunching() event counts against the startup
timer. As a result, you do not want any long-term synchronous processing in the
FinishedLaunching() event.
The iPhone simulator is good for initial testing; however, it is not necessarily accurate for all
➤
testing. Just because something works in the simulator doesn’t mean it will run in the iPhone
in the same way. Final testing should be completed in the iPhone.
637821c01.indd 7637821c01.indd 7 5/27/10 5:29:37 PM5/27/10 5:29:37 PM