What You Need To Know About Getting Your App Developed
Developing an app for Android can be a confusing process if you’re not a developer; Java, XML, or Android Studio may not mean a great amount to you. In this 2-part blog series we’ll try to clear up some of the choices that you’ll make in development. You will get a high level understanding of what decisions you might have to make developing your app.
Let’s assume you have an idea for an app or need an app for your own internal use in your organisation. Let’s also assume that you want this to be an app and not a mobile web site. There are too many differences to outline here between an app and a mobile web site but if you want users to be able to download your application from the Play Store then you need an app. Apps also provide nice features like notifications and better integration with Google Wallet, photos, contacts, GPS and the like.
Once you have definitely decided that an Android app is the way you want to go, the next stage is to determine the requirements for your app as these will influence some of the technology choices.
Do you want your app to have a first class user interface or are you happy with something less flashy? Designs will be different if you are designing an app to capture the attention of consumers compared to an app which will be used by your sales teams. However we would argue that a great user interface is important no matter what the purpose of the app.
You will need to have thought about other questions such as will your app be using features of the Android platform such as Google Wallet, Notification services or integration with any Google Wear devices? How important is performance of the application?
These details will all need considered before determining how to develop your app. Using Java development tools (Android Studio) or using a third party cross platform development tool such as Xamarin or Cordova.
Apps developed using Android Studio are generally known as ‘native’ apps. These apps are created to run specifically on Android devices. Cross platform tools can, in addition, generate apps for iOS devices as well as other platforms such as Windows 10 Mobile. One other option for development is to write something called a ‘hybrid’ app which is basically some web pages wrapped up in a native app shell. For the sake of discussion we will treat ‘hybrid’ apps in the same way as we treat cross-platform apps.
Given cross platform tools can produce one app for lots of different platforms then surely these tools are better as the app can be written once and deployed to different platforms thus saving time and cost? It’s not necessarily that simple. Since cross platform tools are designed to run on many different platforms they have to make compromises. The performance may suffer when compared to a ‘native’ app. The user interface may not be as nice or responsive as a ‘native’ app and may not be able to easily take advantage of some of the nicer, more modern user interfaces, or other operating system features as soon as Android introduces them.
By their nature cross platform tools add another layer of complexity and more complexity means more opportunities for bugs to be introduced. Long term support for your app can also become an issue if you or your developer choose a tool with a dwindling developer community. This is unlikely to happen with Eclipse, or Android Studio as platform companies generally support their platform with their own development tools and Eclipse already has a well-established user base.
If you are covering lots of different platforms and your app does not have any stringent requirements, then perhaps a cross platform development could be a good choice but most world class apps from large companies, such as Facebook and LinkedIn, seem to be developed as native. This choice should be something you talk over with your development partner.