Choosing a mobile app development platform

Mobile App Platforms

The tech world is changing. It’s no longer about the browser, or even the PC. Smartphones and tablets are becoming the new platform of choice for computing applications of all types, from games to enterprise apps. This is a significant change affecting all corners of the global technology, media and telecommunications sectors. Such a structural shift brings with it great uncertainty about what the final outcome will be, and the risk of making the wrong technology choice increases even as the opportunities for first movers, who are prepared to take the risk, increases.

If anything does seem clear in amongst all this uncertainty, it is this: people like apps. Whereas web browsers came to dominate PC usage in the internet era, it seems that consumers prefer the simplicity of apps on their phones. But for companies choosing to embark on the challenge of building apps for their customers, big choices remain about what to build and what platform to build it on. On one level there is a choice between the major smartphone platforms: Android, iOS, Windows Phone and BlackBerry. On another (related) level there is the choice of whether to code natively for those chosen platform(s) or to use one of the emerging cross-platform technologies such as Adobe AIR and HTML5.

So what mobile app development technology should decision-makers choose for their business? Different platforms have different strengths and weaknesses, so the best approach depends on the specific needs of the business and the functionality required in the app itself. We’ve built up considerable experience with developing mobile applications for all the major app platforms. Here’s what we’ve learnt thus far.

 

User Interface ‘slickness’

Native mobile app platforms Adobe AIR HTML5
Rating - excellentNative user interface controls enhance the “app-like” experience, and native code execution creates a highly responsive user experience. Rating - goodAIR compiles efficiently to native runtime code so speed and responsiveness are both excellent. The AIR user interface controls are not the same as the native UI controls. This means Air is probably best suited to games and entertainment apps. Rating - poorBrowsers execute code slower compared to native apps. Animations are slower and more difficult to achieve. Native UI controls need to be redone manually. The HTML/JS/CSS technology stack is more cumbersome to create a good slick UI with, especially when aiming at non-iOS browsers. UI techniques like pinch-to-zoom are almost impossible to implement using HTML.



Code reuse

Native mobile app platforms Adobe AIR HTML5
Rating - poorCompletely different code bases are required for each smartphone platform and separate ones for PC if the app is required to run on desktops too. Using Adobe AIR you can target these platforms:

  • Android
  • iPhone / iPad
  • Blackberry Playbook + BB10
  • Windows & Mac OS X
A single code base, with some minor tweaks and UI re-configuration, can run on virtually any platform (PC, iOS, Android, Windows Phone, Symbian, Bada, BB10). HTML5 doesn’t work well on pre-BB10 Blackberries. Also, not all browsers support HTML5 features in the same way.



App discovery

Native mobile app platforms Adobe AIR HTML5
App store distribution is the primary channel for mobile apps. Optimisation and marketing techniques for mobile app stores are evolving. Since you can use AIR to publish both native apps and web apps, you have the ability to leverage both app store discovery and PC-based web searching. Wrappers such as PhoneGap allow for app store discovery, whilst web versions are discoverable by PC and mobile searching.



Availability of skills

Native mobile app platforms Adobe AIR HTML5
Rating - poorThe relative novelty of smartphone platforms means that the depth and breadth of mobile development skill is not well established yet. The multitude of platforms also means that companies have to have separate skills for each platform. Adobe AIR uses ActionScript, the same programming language as Flash. Since Flash development is relatively mature, skills are readily available. Coding for mobile/AIR requires some re-training from normal PC-based Flash development. Web skills are widely available BUT HTML5 development requires a more advanced level of Javascript programming knowledge and skills.



Performance

Native mobile app platforms Adobe AIR HTML5
Native code executes faster. This is important not just for games but also for more common tasks like network communication. Graphics performance is slightly slower than native but better than HTML5 because you can offline rendering to the GPU. At 60 FPS (frames per second) this is fast enough for most games. Rating - poorHTML5’s reliance on the browser runtime creates significant performance headwinds in UI rendering, responsiveness, and network communications.



Access to handset capabilities

Native mobile app platforms Adobe AIR HTML5
Access to handset features like location, accelerometer, camera, etc. is provided through APIs making native development the best choice for anything requiring access to device hardware. Native extensions / plugins allow you to access the device hardware. Rating - poorPure web apps don’t have access to the device hardware. Web apps wrapped in a native wrapper can call API’s that allow you to access the device hardware. However, this interaction is complex and occasionally doesn’t work on all devices.



Ease of publishing & updating

Native mobile app platforms Adobe AIR HTML5
Rating - poorApple’s approvals for app updates take at least 7 days so any critical bug fixes, security patches, etc. will be live in your app for at least that long before they can be fixed. Customers can choose to update or not, so old versions of software persist for long periods of time. Rating - poorAdobe AIR apps are subject to the same app store limitations as native apps. Web apps that run inside a browser can be updated immediately. Even web apps that run inside a native wrapper can be built in such a way that certain types of functionality not embedded in the wrapper can be updated independently of the app store review process.



Offline usage

Native mobile app platforms Adobe AIR HTML5
With full access to the device, native applications can run completely offline in all cases except where online access is a functional necessity. Offline capability is possible using SQLite so data can be stored on device and accessed. Rating - poorCurrently, mobile browser support for the offline data storage features in HTML5 is relatively poor.



Business model independence

Native mobile app platforms Adobe AIR HTML5
Rating - poorApp stores can force your app to use their own payment mechanisms and this will result in a 30% commission. This can wreck existing business models (e.g. print subscriptions). Some app stores (like Apple’s) can and do reject applications that they don’t like. Others (like Google Play) don’t have an app approval process. Rating - poorAIR apps are subject to the same app store limitations as native apps. Web apps that are ‘wrapped’ are also subject to the same limitation as native apps. However, those that are published onto the web bypass app store approvals and commissions. However, this requires you to market the app yourself and build your own payment mechanism.

 

 

At Maxxor, we’ve built up a huge amount of experience in mobile app development. Our in-depth knowledge and experience with all the major mobile app platforms allow us to advise our clients on the ever-changing mobile landscape. We then help them build consumer mobile apps as well as enterprise mobile applications. Contact us to discuss your mobile development requirements.