Friday, April 29, 2011

Mobile Development with Native SDKs

Mobile Web Applications work on a wide range of devices but lack the ability to access handset features.  Specialized tools like Google App Inventor provide access to those features, but have their own limitations.  Contrast this with native SDK development for mobile platforms.

Utilizing the SDK for iOS or Android gives you complete control over the application you build.  Unfortunately, that control comes at a cost.  At the risk of offending faithful loyalists to one platform or another, both iOS and Android are very similar in how they manage applications and make the most of the resources of the phone.  The devices using these operating systems are also comparable, providing common features like location data and cameras.  Despite this commonality, when you write an application with a native SDK, you tie the resulting output to a particular platform.

Setting up an iOS development environment involves getting XCode from Apple.  XCode 3 is a free download from  XCode4 is available for purchase from the App Store or is a free download for members of the iOS Developer Program.  You're likely going to want XCode4 since you won't be able to run your iPhone or iPad application on a physical device without paying the $99 annual fee for the iOS developer program.  All of this is restricted to a Apple hardware.  You're going to need a Mac of some type in order to build and test your app as well.  There is another option for building iOS apps in the cloud, but that's another post.....

Setting up an Android environment on the other hand can be done on Linux, Windows, and Mac platforms.  The Eclipse IDE is the development tool of choice and the Android Developer Toolkit plugs right into it.  The Android SDK rounds out the development environment.  Full instructions for various platforms can be found on the Android developers portal.

The Android SDK and Eclipse provide an environment where you can design, build, and test your application, using emulators that support various flavors of Android with varying screen sizes.

Native SDKs provide full access to platform capabilities, but the price of that access is that you need deeper knowledge of the platform that your developing on.  Each tool uses a different language and has a different API for access to the device features.

In the next post, I'll discuss how you can get the best of both worlds by using a Hybrid toolkit.

No comments:

Post a Comment