Rakesh Nair

Project Manager

rakesh@credosys.in

A Walk Through Mobile Application Development


Mobile Application Development Mumbai India


    This blog is an extract from my ebook "A walkthrough mobile application development". Before  going into the details of  mobile application development let’s explore a little about mobile technology and how they are changing the world. The mobile phones were first introduced in 1980’s by Motorola. The same company that was brought by Google and later sold to Lenovo. In early years Nokia ruled the cell phone Industry and now it’s gone. It clearly demonstrates the unpredictable nature of tech industry. However last decade has witnessed to some major paradigm shifts taking place. More and more people are accessing internet through their mobile devices. We can undoubtedly claim that this decade belongs to mobile technology. In the early stages mobile devices with more internal storage was given preferences. Now a days with the help of cloud technology storage isn’t an issue anymore. Mobile technology has made our lives better and now mobile applications are trying to make them more comfortable. There are three main players in mobile technology:
  1. Apple (iOS)
  2. Google (Android).
  3. Windows

Let’s explore different processes and technologies involved in Mobile Application Development (MAD).

Mobile Platforms

As discussed above there are three main different mobile operating systems that dominate the mobile space. Let us briefly discuss each of these platforms wrt their popularity, number of apps in app market and market share.

1.Apple(iOS for iPhones and iPad’s):
Ever after its launch on 9th January 2007 there is no looking back for iPhone. With every new versions rolled out it just got better every time. Both iphone and ipad’s run iOS . Latest iOS version is 8.3.currently around 80% of iOS users are on some versions of 8.0. According to latest statistics there are approximately 1.5 million apps on appstore. Its second largest appstore next to Google playstore. But quality wise I would say apple maintains its quality, before any app goes live its reviewed and it takes about 10 days from the date of submission till the app becomes live on appstore. Sometimes they do reject the app. Although an iphone app works on ipad but it looks shabby. Normal practice is to redesign app  for ipad.So if you plan to make your app compatible with both iphone and ipad then it will cost you little extra. Out of the total number of smartphone users about 15.6% use iphone. Also majority of the  iphone users are in USA and Europe. Asian market is predominantly dominated by Android.

2.Android:
Android was first released in 2008 with cupcake version 1.5. Now the latest version is Lollipop 5.0. But so far only 10% of the users have upgraded to Lollipop. The main reason may be due to carrier barriers. It wouldn’t be wrong to say that android dominates the smart phone market with 1 billion users. One of the biggest reason for popularity is that being open source its very cheap as compared to iOS. So it has a strong presence in low income and developing countries. There are approximately 1.6 million apps on Google playstore. As with apple there is no quality check when it comes to android in playstore. It takes around 48 hours for the app to become live in playstore as opposed to appstore which requires around 10 days. When it comes to tablets android tablets are not as famous as ipads. Since the launch of ipad mini people prefer ipad over any android tablet. Also development wise android development takes more time as compared to iOS development. Although cost of development of Android and iOS remains the same, the time required for android development is more as compared to iOS.

3.Windows:
In US, the market share of windows is around 3%. So I will be blunt. Unless you are a big shot investing in windows is not worth the investment. The only reason you could go with windows is when you are going for hybrid development.Will come to hybrid app development later on. So now let’s explore various process involved in MAD one by one. The different processes involved are:
  1. Idea
  2. Choosing platforms
  3. Native Vs Hybrid Development
  4. Design
  5. Server options.
 

IDEA

“Everything is created twice,

First in mind and second in reality” –Robin Sharma

Idea is all it starts with. They may come in fragments or rarely do they reveal themselves in entirety. Usually ideas come in crude form which then has to be refined to a fine product. I would highly recommend reading Become An Idea Machine . Once you feel you have a good idea, next step is to validate the idea. Ask your friends and ask them to give honest feedback. This is the “WHY” stage where you find out the reason behind creating an app . I am not just talking from individual perspective. Even organizations should know clearly the purpose behind making an app. Once you deal with the “Why” part, the “How” part becomes relatively easy. Quite often it’s the case that your ideas are not unique. There might be some competitors who are either doing exactly the same thing that you were planning or somewhat similar. In either case study their app and understand their flaws and areas for improvement. Read user review about their app. It’s like getting a glimpse of future and a good opportunity to avoid same mistakes. Try to be as specific as possible before you go into the development stage. It will save you a lot of time and money. If you are falling tight on budget I would suggest you to develop a MVP(Minimum Viable Product) using minimum resources and time. I always suggest my clients to launch their first version asap. Once you release your MVP you start to get actual feedbacks. As pointed out by Steve Blank in his phenomenonal  book “The Four Steps to Epiphany”  why product development model doesn’t work for startup’s. Please remember the only real feedback that matters is the one that you get from your paying customers. So the gist is that you should improvise your way to perfection.

   

Development

The next stage after conception of idea is its development onto a product.In mobile application development there are two types of development:
  1. Hybrid Development
  2. Native Development
1.Hybrid Application Development:
Simply put hybrid application are Web applications(HTML,CSS,javascript) encapsulated inside native browser. So essentially it uses webview of native platform to function. There are number of frameworks that makes this possible like Cordova, Phonegap etc. Hybrid Application Development gives the developer flexibility. It is basically founded on the principle “write once and run anywhere”. In case of hybrid application development, development  is faster, simpler, more rapid and the application is easier to maintain. It also makes economic sense to go with hybrid .Since you don’t individually have to code for different platforms. Having discussed the pros lets discuss the flipside of hybrid application development. The best example would be that face book tried hybrid but soon again switched back to native app. The reason is that hyprid apps are slow and laggy. However it’s not always the case it depends upon the features and functionalities of the app. So there are some situations where hybrid apps may be preferred over native due to the ease of development and cost consideration. However performance and UI  wise native will always outperform hybrid apps.

2.Native Application development: In native application development, app is developed in the native platform like android and iOS. So we have to make individual apps for different platforms. So obviously app development takes longer as compared to hybrid app development. For iphone the native programming language is Objective C , Swift  and for Android native programming language is  java. They offer the fastest, most reliable and most responsive experience to users. Also they could easily use wider functionality of the devices like camera, accelerometer etc. The additional cost that goes into the development of native app as compared to the hybrid balances the user experience it provides. So if your budget allows, native apps are ideal providing the best user experience. So now that you know what is hybrid and native app development, your obvious question will be how will decide which one should you go with.Well it depends on the type of app you are planning to develop. If your application is going to be heavy which involves lot of  processing, animations etc I would recommend you go with native app development. However if your app is going to be lite and mostly informative with less or no animation hybrid would be your best bet. Now that we have discussed various type of app development, let’s explore little about the server side of the app which is actually the brain of the app.

What is Server?

  In simple terms web servers are computers that deliver web pages. They are large datacenters that host the websites and mobile application. The primary task of server is to store the data and retrieve relevant data when asked for by website/Mobile Applications. The cost of servers vary according to configuration and type you select. In order for your app to function smoothly and carter to a large audience your server should have enough bandwidth and processing power. In case of mobile application load is calculated by request per second ie request the server gets per second. Load management is not a onetime task but a full time job. Initially when you have less number of users it is not much of an issue but as the number of users increases the pain also increases. The latest trend is mBaaS ie Mobile first backend as a service. mBaaS services typically provide application programming interfaces for user management, push notifications, social network integration and cloud storage. They provides SDK which can be used in your app , which helps you to access the backend easily and more reliably. With the help of these sdk’s programmers can query the data from server easily by passing the required parameters . Most of the mBaas services allows you to upload the cloud code, which can be used in data management or to do some heavy data task which cannot be performed on your mobile devices, moreover this services also provide push notifications. So overall it’s a best thing to do if you want to cut cost on server side developments. The most prominent player in this sector is Parse, which was lately acquired by facebook.inc. Latest player in this market is built.io. So mBaas are good for creating fast MVP In traditional approach where you create the entire thing from scratch like creating DB structure, exposing rest API calls, implementing push notification services on back end which in case of mBaaS is taken care by the service provider. I hope I was able to explain you briefly various processes involved in mobile application development.

Please feel free to connect with me at rakesh@credosys.in