Today more than 40% of the web traffic comes from mobile devices. Are you thinking about creating a mobile application for you own business? There are couple of technical things you might want to know first. Especially, if you are looking to manage this project and understand the technical side of developing a mobile application.
The mobile application is a piece of software that is deployed to mobile device through mobile app store such as Google Play store, Apple App store or even Windows store. I will only cover those 3 main platforms but the same principle is used for many other specific stores. Those 3 stores are related to 3 different Operation Systems which are iOS for Apple, Android for Google, and Windows. It also means that they don’t use the same execution language and format. Basically, if we wanted to create an application for each platform, we would require to develop the same app 3 times and in 3 different languages. It’s what is called a “native app”. Hopefully, there are couple of ways to avoid this waste of time, energy and money by developing an application in a common language and then transcode it as 3 different apps for each platform. Obviously, there are pros and cons for each method.
The native language, whether that could be for iOS, Android or Windows, are much faster, and adapted to the devices. It means that more features are available such as full and deep Bluetooth management as well as specific operating system functions. As an example, if you need to develop an application that should connect to an iWatch or other complicated devices, it should be easier for you to develop your interface application in native language.
You might also heard of PhoneGap/Cordova which is one of the first platforms that allows HTML5 development in a mobile app. This is not so often used anymore and is replaced by Ionic and Xamarin.
The game changer: Unity. Coming from the game field, unity became a very well known framework to create any kind of game, 2D, 3D, and anything about virtual reality. It’s also well integrated and can be deployed on the 3 main platforms we’ve talked about.
Until then, we’ve covered how and what technologies are used to build an app. But an app without internet isn’t a useful app anymore. If you want to build a relevant product, I bet that you’d like to create some interaction between users, you and their data. That’s when the concept of application programming interface well known as API comes in. An API is a kind of website only understandable by applications. It means that only displaying information as webpage, it provides the application arrays of data and services. The most common used API functions are: authenticate the user, save user’s information, retrieve user’s information, get messages, send messages and so on. This is through API that every useful information comes and goes to and from the apps. So when looking at creating your own mobile app, you also need to think about which API service you want use or create depending on you business.
If your business is very specific or you already have some data in another system like a website, then you quite surely need to create/develop your own API to allow your new app to interact with your data. But if you start from scratch, you might think about using a ready to use “Backend As Service”. Since the leader parse.com announced they are going to stop their services, there are several new alternatives like http://www.kumulos.com that provide large technical solution to build and store your app’s data without creating a backend infrastructure on your own. We need to note that most of the Cloud providers also provide Backend As services such Google, AWS, Microsoft Azure or even IBM.
As I always recommend, be sure that you have access to the work that your developer or outsourcing company is doing for you. (If you haven’t read it before, check out this article about the outsourcing checklist to go through: http://outoftech.com/top-10-things-you-need-to-know-before-signing-a-development-contract/)
Find a trustworthy technical person that can help you to make right decisions about the framework, backend and small technical details. Try to be sure that the recommendation is objective and not only related to the developer’s team skills.
If you need advice, tips or feedback on how to manage this kind of a project, feel free to ask your questions and I would be glad to help you.
Note: Here is a quick drawing to sum-up how it usually works :