Sunday, 1 December 2013

To Dance with the Devil

One of the big differentiators between native Android & iOS mobile app development is how much of the process is monopolised. This is an important point for many companies who want to start mobilising their product - especially if they already have something web based.

Android is an open platform. That means that almost anyone can get the tools (several to choose from) to create an app, use open source libraries to support the development, & quickly & easily launch the resulting product onto the unsuspecting world for the total price of a cheap laptop (more or less) - & simulation means that you can get away without buying a phone.

To do the same thing for an iOS app, you need the right kind of hardware, essentially only one dev environment, enroll in Apple's dev program, & jump through hoops to get your app approved so that other people (the general public) can use it. There are no corners to cut.

If you're thinking from the point of view of a start-up, Android is easy. If you're thinking in terms of targeting iPhone/iPad users, you don't have the luxury of making the decision about your dev environment, tools, etc, at all.
The consequences are that almost anyone can create an Android app & distribute it from their bedroom, but creating an iPhone app at least takes the commitment of capital outlay & following a process, which is less likely for a teenager to do.

This is all native mobile app development so far.

You would think that cross-platform solutions would try to go down the Android path, rather than the Apple path, but that's not necessarily the case. Often the tools needed to build or deploy the app are the key elements in the business model for cross-platform solution providers. If you don't have the right tools, the rest becomes a struggle.

PhoneGap (Cordova) & Rhodes (RhoMobile) offer hosted dev environments (at a price). Titanium, although a free dev env, is limited compared to its big brother, Appcelerator.

Deploying a PhoneGap app to a mobile device is like hosting a web page - if you have the host environment on the device, then it's easy to load up a new app. However, if you bundle the hosting environment, then you're distributing a native app (via iStore/Google Play). Your end-users would need to commit to the run-time environment (equivalent to installing a Java RE on your PC) for you to avoid dealing with Apple as well.

Flex, Sencha, & Rhodes are like using a whole new technology to be multi-platform - not necessarily an obvious commitment for a start-up.

What am I saying here? The gap in cross-platform development is large. You will always have trouble jumping it alone, & that first step into the void is the most important one.
Choose your travelling companion wisely, based on how far they're travelling in the same direction (what functionality they support), & how likely they are to still be there when you get to your destination (their commitment to the technology).

Going with a "brand" is often the smartest way forward, rather than trying to go it alone because it's "cheaper". Basically, there are no silver bullets & it's often better to just bite one.

If you must have apps (which is a decision only you can make), never lose track of why you need them (what you're trying to achieve), to stop you from using alternatives like responsive design web content.

No comments:

Post a Comment