If you’re still contemplating opting for native mobile app development
or cross-platform mobile development, you might want to consider some statistics before jumping on the bandwagon.
- Android has captured 68.1% of the smartphone OS market share, up from 46.9% in 2011; are we looking at a monopoly in the making?
- From 2.3% in 2011 to 3.5%, slow and steady, Windows Phone is expecting a major thrust in the coming quarters.
- IOS, riding on it’s reputation of being the first smartphone OS, saw a slight decline to 16.9% from 18.8% in 2011.
- BBOS, although on a decline path, clocks at 4.8% in 2015 from 11.5% in 2011; requires a serious revival.
- Symbian still hanging on at 4.4% after a steep fall from 16.9% within a span of 1 year; doesn’t this convey anything else for the future?
- Linux-based operating systems such as Bada, Palm OS, MeeGo, Maemo, webOS, etc might not be as happy as their market share of 2.3% down from 3.0% in 2011.
Is your techie sense tingling? Read between the lines and you’ll notice that, more than revealing the market share, the figures talk about a slew of new entrants making headway into the smartphone OS space. This means sticking to one particular platform might not be a prudent strategy if you want your service or app to reach a bigger/wider audience base, that’s spread over various devices that employ these array of mobile platforms.
Mobile Development at ‘cross’ Roads
With so many diverse platforms emerging in quick succession, 100% native development for each mobile platform can become a cumbersome, daunting and a costly affair. The solution is Cross-platform mobile tools, which has come a long way to confidently take on the challenges posed by the multi-platform mobile environment. Having said so, you can easily bet that it wouldn’t be an easy decision to go the cross-platform way. Since cross-platform mobile development use third-party SDKs (development tools) to develop apps compatible with diverse platforms, before you go ahead, you need to be clear:-
- If you plan to have your service or app for multiple platforms; if so, you’ve the option to reuse the code, design or database that can save you a lot of effort at the same time maintain your app’s visibility across platforms.
- About the extent to which you wish your service or app to be reusable. As mentioned above, the increased number of platforms requires you to focus, effectively, on few of them and build your service or app around them. And for the rest, you can have provisions in your code or design or database for extensions.
- If usability and UI are your considerations. Creating a first impression through visual expression is the key. Cross-platform tools capable of producing identical UI designs and usability across platforms give your apps better acceptability.
If you’re still undecided, there’s nothing surprising because you’d need to consider your target audience, the content, the interface, etc. And most critical of all is, where your app is destined to run.
While there’s no denying that native code is robust, have support in terms of developer base and toolkits, faster development due to reusing of existing codes; the flipside is finding and retaining the techies with the required expertise in the programming language used in native development. Native apps would mean that they are not cross-platform compatible, which lessens your apps’ reach thereby impacting your revenues. Cross-platform development and maintenance costs are nowhere near that of native development since native development requires QA testing and porting. On the same lines, native development to a large extent is outsourced which also adds to the cost factor.
If cross-platform apps are to be really banked upon, it should be capable of accessing the features as native apps, such as location, camera, accelerometer, NFC, contacts, calendar, etc. Going by the current scheme of things, we can expect this capability to be built into cross-platform apps in 3 years completely. This is made possible by mobile browser APIs.
Experts speculate that even if HTML5’s capabilities are enhanced multi-fold, variations in standards being implemented across devices and platforms can push the actualization of the desired results. Moreover, native apps employ revenue models that at times burn a hole in the pocket of the users and involve sharing of revenue for the use of it’s platform. On the other hand, with HTML5, a common click does the job; no App stores required.
Cross-platform apps, give you direct control over your marketing/distribution activities without external interferences such as approval from third-party vendors as well as enable these apps to be deployed quickly. After all when monetization of your apps is your intention, you got to be in control and cross-platform tools just do that for you.
Tools That Rule
Drawing inspiration from the revolution brought about by HTML and allies, a slew of cross-platform mobile development tools have begun finding favour with mobile developers. With a lot of makeover expected in due course, the 3 cross-platform tools currently ruling the roost, score in the following areas:
- Full array of development tools, supporting all aspects of cross-platform apps development.
- Proven and tested code repository .
- Decent development community and support groups providing active and passive support.
- Fair documentation
- Ability to access device capabilities such as Audio/Video Capture, Geo-location, PIM contacts, Native maps, Screen rotation, Native Menu, Barcode, SMS, Calendar, Ringtone, Storage, Bluetooth, etc.
Titanium is based on the cross-compilation technique where JS, which is the main language, codebase is compiled into native code. A clear distinction between Titanium and other frameworks is the absence of a browser engine for UI, wherein it makes use of APIs to allow UI elements to be converted to native UI elements.
Absence of browser means near native experience such as enhanced responsiveness and fluidity. The developers have been able to provide detailed documentation and support for tablet and desktop development, enabling fast and easy setting up. Existence of a good user and developer community means a lot in the efficient roll-out of apps. The downside is, Titanium is yet to venture into large or diverse phone sets. An inherent disadvantage of cross-platform apps is the generalization; jack of all trades, master none. Additionally, too much dependency on API leads to inconsistency with standards at certain levels.
Titanium is currently compatible with Android, iOS and BlackBerry. In Android, Titanium doesn’t have access to Barcode, Bluetooth and Ringtones, and has partial access to SMS and Contacts. With iPhone it’s similar, except that it has full access to contacts unlike in Android.
Rhodes makes use of Ruby as programming language and follows an MVC architecture. HTML/JS/CSS is used to construct the UI. The whole system revolves around a runtime environment created to access device capabilities via abstractions. Again a cross-compilation technique, Rhodes applications are compiled into the respective codes of various platforms with the help of a virtual machine. An unique feature of Rhodes is Rhom – the storage system which is independent of any database.
Although Ruby being an open-source, it’s relatively unexplored and hence talents expert enough to do high-end programming is limited in number. A noticeable drawback is the need for full rebuilding of the code while updating the UI code. Rhodes is compatible with Symbian, Windows Mobile 6.5, BlackBerry, iOS and Android and can access almost all the device capabilities.
The crux of this tool is the JS API which gets access to device capabilities without going into the details of the platform. Built around HTML/JS/CSS, Phonegap is more of a hybrid than a cross-platform tool due to the fact that it works by setting up native app wrappers along with embedded browser for UI and interaction with device. The tool is highly flexible when it comes to customizing the apps according to the user needs since Phonegap doesn’t strictly ask the users to adhere to guidelines or instructions. Seasoned programmers would find Phonegap to be highly user-friendly due this factor. This is another reason why it’s compatible with almost all popular platforms out there. But, the less-experienced users can find this a bit tough to cope.
A major lacking is the non-resemblance to native apps. Too much effort into perfecting cross-platform capabilities have impacted it’s look and feel as well as consistency in access to device capabilities across platforms. However the ‘look and feel’ gap is plugged with the help of scores of other tools. Phonegap is compatible with almost all the popular platforms namely, iPhone, Windows Mobile, BlackBerry, Android, Symbian, PalmOS, etc.
Native or Cross-Platform? OR Native and Cross-Platform?
Experts, users and developers, alike, are debating fervently on the future of mobile development. The rate at which mobile technology is evolving makes it practically impossible to predict what’s in store. However, several industry analysts have come to a consensus that mobile development is non-exclusive of native and cross-platform and the emphasis should be on leveraging both options to render the maximum benefit to the user base. Gradually a third dimension is emerging, which is the hybrid development environment. This combines the best of everything.
So when you thought you almost got what you wanted, well there is more to come. The best option would be to keep your options open.