5
Contact PointAbout at 202.391.0347, [email protected] or visit www.pointabout.com for more information. Get In the Know As mobile applications continue to solidify their importance in the digital world, companies interested in going mobile have to consider many factors before taking the plunge. One of the most important considerations is choosing the device(s) for which to develop. Google’s Android and Apple’s iPhone are the most popular plat- forms for apps to date. Because of their popularity, increasingly more companies want to develop cross-platform apps or translate one platform’s version to the other. This whitepaper will explain the offerings of each platform and what the considerations may be in supporting additional platforms. The Operating Systems’ Back- grounds and Features Google’s Android OS Google’s Android OS is one of mobile’s rising stars. While few foresaw Android’s meteoric take- off, International Data Corporation predicts that Android will hold almost a quarter of worldwide market share by 2014. The Android OS is the first free, open source and fully customiz- able mobile platform, based on the modified version of the free and open source Linux kernel. Android offers a full software stack, which includes an operat- ing system, middleware, and key mobile applications. The Android software development kit also provides application program- ming interfaces and other tools necessary to develop applica- tions. Android Features Devices running Android OS offer support for an array of features, including push messaging, various media formats, Bluetooth, vide- ocalling, multitouch, tethering, various connectivity technologies, multitasking, streaming media support, and more. Apple’s iOS Apple originally developed its mobile operating system, iOS, for the iPhone and released it in June 2007. Since then both the iPod Touch and the iPad have included iOS. Apple does not permit third-party hardware to run on its operating system, which means it is proprietary software (except for open-source components). iOS derives from MacOSX and shares the Darwin foundation, which Apple released in 2000. Darwin is an open-source com- puter operating system com- posed of various code, forming the core set of iOS components. Native applications on Apple mobile devices are written in the Objective-C programming language. iOS Features The Home screen contains preloaded default apps such as the iPod (splits into two apps, Mu- sic and Video on the iPod Touch), Safari web browser, iTunes, Voice Memos, Contacts, and Google Maps. Multi-tasking is another iPhone to Android Considerations for Developing Mobile Apps

iPhone to Android: Considerations for Developing Mobile Apps

Embed Size (px)

DESCRIPTION

This whitepaper delves into the common problem of shifting from one mobile platform to another, in particular, Apple’s iOS to Google’s Android or vice versa. Each platform’s background and features are discussed, along with development considerations. Other aspects included are the differences in hardware and programming languages, multi-platform options, and testing applications.

Citation preview

Page 1: iPhone to Android: Considerations for Developing Mobile Apps

Contact PointAbout at 202.391.0347, [email protected] or visit www.pointabout.com for more information.

Get In the Know

As mobile applications continue to solidify their importance in the digital world, companies interested in going mobile have to consider many factors before taking the plunge. One of the most important considerations is choosing the device(s) for which to develop.

Google’s Android and Apple’s iPhone are the most popular plat-forms for apps to date. Because of their popularity, increasingly more companies want to develop cross-platform apps or translate one platform’s version to the other. This whitepaper will explain the offerings of each platform and what the considerations may be in supporting additional platforms.

The Operating Systems’ Back-

grounds and Features

Google’s Android OSGoogle’s Android OS is one of mobile’s rising stars. While few foresaw Android’s meteoric take-off, International Data Corporation predicts that Android will hold almost a quarter of worldwide market share by 2014.

The Android OS is the first free, open source and fully customiz-able mobile platform, based on the modified version of the free and open source Linux kernel. Android offers a full software stack, which includes an operat-ing system, middleware, and key mobile applications. The Android software development kit also provides application program-ming interfaces and other tools necessary to develop applica-tions.

Android FeaturesDevices running Android OS offer support for an array of features, including push messaging, various media formats, Bluetooth, vide-ocalling, multitouch, tethering, various connectivity technologies, multitasking, streaming media

support, and more.

Apple’s iOSApple originally developed its mobile operating system, iOS, for the iPhone and released it in June 2007. Since then both the iPod Touch and the iPad have included iOS. Apple does not permit third-party hardware to run on its operating system, which means it is proprietary software (except for open-source components).

iOS derives from MacOSX and shares the Darwin foundation, which Apple released in 2000. Darwin is an open-source com-puter operating system com-posed of various code, forming the core set of iOS components. Native applications on Apple mobile devices are written in the Objective-C programming language.

iOS FeaturesThe Home screen contains preloaded default apps such as the iPod (splits into two apps, Mu-sic and Video on the iPod Touch), Safari web browser, iTunes, Voice Memos, Contacts, and Google Maps. Multi-tasking is another

iPhone to AndroidConsiderations for Developing Mobile Apps

Page 2: iPhone to Android: Considerations for Developing Mobile Apps

Contact PointAbout at 202.391.0347, [email protected] or visit www.pointabout.com for more information.

huge perk that iOS offers on the iPhone 4.

The App Store vs the

Marketplace

Android MarketplaceAndroid’s community of develop-ers is expanding at a rapid pace. The number of applications avail-able for download in the Android Market reached 100,000 in Octo-ber 2010, roughly two years after the first phones running Android OS hit stores. Presently, Android has a variety of sources for users to download publicly released applications. The largest store is Google’s official Android Market, but al-ternative stores such as SlideME, AndroLib, and AppBrain are also popular. Additional app stores created by Verizon, Amazon, and other larger vendors may pop up. A variety of marketplaces is beneficial for users and shows evidence of strong growth in the platform. Without a single catch-all repository, though, users have a harder time searching for every published application.

Most importantly, the Android Marketplace places no restric-tions on the language that ap-plications use, the functions they perform, or any other property of the application. Registering developers pay a one-time $25 fee and earn 70% of the revenues. Developers may also publish the

same applications in other mar-kets without restrictions.

The App StoreOver 300,000 applications are available in the App Store, which includes thousands of games and entertainment titles. Collectively, the App Store boasts over 10 bil-lion downloads.

Apple’s iTunes App Store is the only source for publicly released applications. It is not only the one source for applications (whether free or paid), but it also comes on every single iOS device by default and is incapable of being deleted or removed.

Those interested in iPhone de-velopment must sign up for the iPhone Developer Program Standard track, which enables them to receive 70% of sales revenue without paying any dis-tribution costs. Apple charges a $99 annual fee for the use of the iPhone SDK; in turn, developers will receive the required digital certificate signature needed to sell applications in the App Store.

Considerations for Development Costs

iPhone applications can take any-where from one to six months of full-time development, with costs typically landing between $20,000 and $150,000. Time and cost are important considerations, but there are many other factors to consider when going from one platform to the next. These fac-tors include language differences, user interface and functionality requirements, the app submission process, developer talent, differ-ences in devices and hardware, and the architecture of the first application.

ProductivityOne of the most difficult things to do is measure the productivity differences between platforms. Variations in developer abil-ity levels, preferences, and back-grounds can—and often—lead to different developers favoring and being more proficient in one platform compared to another. Even within a platform, individual developers will display strengths and weaknesses that can cause productivity differences. As a simple example, let’s say you want to add location features to your existing app. Regardless of platform (Android or iPhone), the developer experienced in imple-menting such features will fair the best in completing the task.

Furthermore, if a customer is go-

Google’s Android and Apple’s iPhone are the most popu-

lar platforms for apps to date.

Page 3: iPhone to Android: Considerations for Developing Mobile Apps

Contact PointAbout at 202.391.0347, [email protected] or visit www.pointabout.com for more information.

ing from an iOS app to an Android app, the developers involved with the creation of the iOS app should remain a part of the conversion, if only to serve as a resource on the new project. Familiarization is essential because it can help determine the costs of time and money. This is a “been around the block before” type of project. Since data services are stable and already in place, the customers protect their savings and increase their productivity.

Hardware Differences

Android’s Hardware StandardsAndroid-powered smartphone devices, unlike iOS devices, do not have a plethora of standard hardware specifications. Due to device variations, platform ver-sions, and the openness of the platform, there is only one stand-ard hardware specification: four dedicated navigation buttons (Home, Search, Back, and Menu). Other variable device features include high-megapixel cameras, keyboards, touchscreens, acceler-ometers, GPS, and HDMI ports.

Remember: Android OS is not specific to one mobile device. When an application performs well across multiple devices, it results in more downloads and a larger sales revenue. On the other hand, the need to test across dif-ferent devices and optimize for each platform also increases app

development costs. Develop-ers must consider the particular platform version and how that version interacts with the device hardware.

iOS Hardware StandardsApple is far stricter in device and iOS platform variation. The first iPhone release established hardware precedents—screen size and button placement per-sisted through all the following models. Besides the trend-setting touchscreen (iPhone 4’s screen size is slightly different than the three previous generations), each iPhone features four hardware buttons: Home (situated directly under the display), Sleep/Wake, Volume, and Silence. All four iPhones also include (with slight variations) speakers, micro-phones, dock connectors, and cameras.

Apple demonstrated consistency across its devices, adding a set of focused standards for ap-plication development. This will not dramatically decrease the cost of development, but it does decrease time spent on decid-ing which device to develop for, programming, and device testing.

Difference in Programming Language

Java and AndroidJava, one of the most popular web programming languages, is the programming language for the Android platform. In comparison

to Objective-C, Java has more ro-bust and mature libraries, allowing for more “plug-and-play” and less custom development. According to a 2009 survey conducted by Evans Data Corporation, there are over 9 million Java developers worldwide, making Java skills the most common among program-mers thus far. At the same time, an overabundance of developers are gravitating toward Android, which consequently drives devel-opment costs down.

Objective-C and iOS First released in June 2007, Objective-C is the primary programming language used to develop native applications for Apple’s mobile platform, iOS. Due to the popularity of Apple devices, Objective-C developers are in high demand but in short supply. iPhone developers tend to charge anywhere from $100 to $250 per hour.

Differences in User Interface Design Each platform offers features that interact with device hardware, allowing for unique user experi-ences. When developers and designers work with different platforms, they must understand the specific UI requirements.

While the iOS and Android platforms overlap in some UI requirements, there are quite a few exceptions. One of the major differences is navigation, as shown in the image below.

Page 4: iPhone to Android: Considerations for Developing Mobile Apps

Contact PointAbout at 202.391.0347, [email protected] or visit www.pointabout.com for more information.

To move within an application and complete various tasks, us-ers will interact with iPhone and Android devices differently. For example, iPhone users do not have a hardware Back button like Android-powered devices, so designers must create certain visual cues, letting the user know a button means “to go back.” The Facebook app images below il-lustrate the Back button/function on each device.

Android’s UIDesigning for Android is totally different than designing for iP-hone. Unlike iOS, which has well-established, documented guidelines, the Android UI team is just beginning to document standards for visual and interac-tion design across the many devices on the market today.

To date, the Android developer guide offers much information about the design of icons, widg-ets, menus, styles and themes, activities and tasks, graphics, audio and video, data storage, and more.

iOS UIWith fewer targeted devices, iOS designers have more room to focus on design and interaction principles. The iOS Reference Library contains information geared to guide developers through the whole application creation process.

Multi-platform Options

More times than not, a budget is the determining factor in decid-ing to create a custom applica-tion. Those on a lean budget can capitalize on multi-platform op-tions that allow the development of certain types or styles of ap-plications using one tool and that then generate the application for the deployment to more than one platform. Some of the leading op-tions are PhoneGap, Appcelerator, and AppMakr. The cons to using multi-platform options are con-cerns about design efforts. These options can develop pre-existing apps using HTML and other web technologies, specifically wrap them for individual platforms, and disburse them into various app stores. Design factors, however, can preclude this approach. For instance, Apple iPhone devices have standard screen sizes and one home button, located at the bottom of the device. Android devices, on the other hand, have countless variations of screen sizes and buttons (in other words, no device standards).

PhoneGapPhoneGap is free, open source development framework, which allows for the creation of plat-form-neutral mobile applications. Using common web technologies such as HTML, JavaScript, and CSS, PhoneGap permits users to take advantage of native device

functionalities supporting the iP-hone/iPod Touch, iPad, Blackberry SDKs, Google Android, Symbian, and Palm.

PhoneGap generates native wrappers for various platforms for hybrid web applications. Developers using PhoneGap can tap into their existing skills, create code, and insert functionality us-ing native features on the device (GPS, accelerometer, camera, maps, and multimedia). When launched, apps run inside of a hosted browser control. Moreo-ver, PhoneGap provides a bridge between JavaScript and native device APIs.

Appcelerator TitaniumAppcelerator Titanium is an-other open source framework similar to PhoneGap. It enables developers to use web technolo-gies (JavaScript, HTML, CSS, and PHP) to create native mobile apps across multiple devices and operating systems with a single codebase, a collection of source code used to build an application. Currently, AT supports the iPhone, iPod Touch, iPad, and Android devices, with Blackberry coming soon. Unlike PhoneGap, AT does not allow outside code. Devel-opers will use the Appcelerator framework to build applications from scratch for multiple plat-forms. In addition to the Titanium SDK, developers must download the SDK of the platform(s) in question.

Page 5: iPhone to Android: Considerations for Developing Mobile Apps

Contact PointAbout at 202.391.0347, [email protected] or visit www.pointabout.com for more information.

Mostly importantly, AT offers the composition of a native app as the end result. To achieve this, AT uses a 3-step building block process:• Block #1: Pre-Compiler- opti-

mizes the application’s Javas-cript.

• Block #2: Front-End Compiler-generates platform-specific native code as well as any code that will assist in compiling AT for a particular platform.

• Block #3: Platform Compiler and Packager- compiles the final native application for the specific platform and pack-ages it for distribution, testing, or to run on a simulator.

Appcelerator offers numerous free and paid support options to guide developers through the app creation process. There are a range of on-demand videos, custom development training, premium forum access, and sup-port webcasts.

AppMakrAppMakr is a DIY app develop-ment workbench for non-pro-grammers and HTML developers. AppMakr.com allows the public to use a drag-and-drop style wizard to build apps quickly and submit the binary to various app marketplaces. Today AppMakr supports the iPhone and in early 2011 it will support iPad, Android, and Microsoft Phone 7. AppMakr is easy to use: people like web-

site owners, business owners, bloggers, and writers can all tap into its features and capabilities. Along with constantly upgraded features, available functionalities include: push-notifications for di-rect alert messaging to app users, native photo galleries, location-aware Geo-RSS, app quality index for iTunes App Store approval recommendations, custom JavaS-cript and CSS capabilities, social networks sharing, and mobile ad network integration for monetiz-ing the app’s content.

Testing Applications

Regardless of platform, app creators must always test on ac-tual devices. Simulators help im-mensely during development, but application behaviors can differ in a simulator versus on a physical device.

Testing on the Android platform has a mixed feel. The lack of re-strictions on applications makes Android testing easier than iOS testing. For example, testers can utilize open-source testing frameworks like Robotium to automate some testing tasks. However, the plethora of Android devices, which currently come in at least six different screen reso-lutions, complicates testing. The variation in screen resolutions will grow quickly, as a large number of Android tablets are expected to arrive on the market this fall. As it stands now, some devices contain

physical keyboards, others have virtual keyboards only, and others support both. Again, testing will require devices of each type to ensure a functional app, and that makes for a longer testing cycle.

Because of the limited variations in Apple’s core hardware designs, the testing lifecycle is a bit easier. Screen resolutions are currently limited to three different sizes (iPhone, iPad, iPhone 4/Retina display), and they are all touch-screen only. iOS 4.2 is the latest OS released by Apple. This re-lease combines features of iOS 4 —multi-tasking, unified mailbox, and fast app-switching—with Airplay, Airprint, and other updates geared toward the iPad.

Bringing It All Together

There are no concrete answers when it comes to the route any one company or business should take when creating a mobile application. The main factors to consider are: the devices and platforms for the app, whether to create a custom or native app, its primary uses, budget, target au-dience, and most importantly, the reputation and previous work of the developing firm/team. Each platform lends itself differently to the projects at hand, so it’s impor-tant to research the advantages and limitations of each operating system.