Mobile app development is one of the more lucrative aspects of software development. One of the big reasons for this is that there are a number of initial hurdles one needs to get through before mastering it. Unlike the normal world of desktop development, the mobile world tends to move very quickly. A desktop operating system usually won’t change all that much in five years, or even ten. Mobile operating systems tend to come with huge changes to the development API on a fairly frequent basis. This leaves a lot of people confused as to how they would even begin to learn about mobile app development. The reality of the situation is that once someone takes those first few steps, the rest is fairly easy. It’s just a matter of deciding on a few things before getting started with the development process.
The first decision mobile app developers need to make is about the platforms they want to support. There are some distinct advantages and disadvantages which will come about as a result of this decision. The ideal method of development and distribution will be a native app which runs on every supported platform. This will ensure that one has the full use of a device’s hardware, that all buttons and menu items work in a natural way and that distribution will be simple. However, the big downside here is programming language and API lock down. Technically both android and iOS allow one to use more than one programming language to write applications. In reality, if one is writing for an Android device it will be in Java and if writing for iOS the developer will usually use Objective-C.
The language lock down essentially means that one is forced to rewrite most of the underlying program code for each platform. This also ensures that porting to new platforms will be more difficult. There are ways to get around this issue and stick with a single code base for both platforms.
Because Web based mobile apps aren’t allowed within most mobile app stores, one will need to ensure other options for commercial sales. Typically this is handled in the same way that most online subscriptions are. One will create a user name and password within the app, and this is either directly saved to an online database or sent off to a merchant site to finish a billing process. This actually ensures more people are able to buy the app, as it bypasses the country restrictions many app stores impose on customers.
Lastly, if one is writing an HTML5 based mobile app than it’s important to ensure the program looks natural on the system. Typically this can be done by using css based theme modifications. One should look within the user agent string when the app first loads, and then modify the presentation based on what operating system is being used. For example, if someone is running the program on iOS than one should send create a meta tag which contains “apple-mobile-web-app-capable” in order to switch to Apple’s mobile app view.