In the first part of this series, I have dealt with some basic terms and concepts. If you missed it, you can find it here: “What is a Mobile Application?”
In the second part, you have learned about what are the usual mobile app development platforms. You can find it here: “Mobile Application Development Platforms”
As I said in my first post, this series is intended to be a short one. Hopefully, you will learn something useful through it and know how to answer your clients. Who ask for a mobile app without knowing exactly what they want or how much it costs.
What should I develop? Mobile Application or responsive websites?
Developing a website has many advantages over developing an app. Please keep reading even if you are not interested in the debate between web apps vs native apps. This applies to both types of developers – web developers and mobile developers.
This time we will focus on a few more things that are not directly related to developing applications. But still, need to be known before starting.
1) Mobile operating systems
There are dozens of mobile devices and their number grows every day. Obviously, you cannot develop apps that run on different platforms at once, so after choosing the initial platform (eg Android or Windows Phone), for each new project you should choose another one – at least initially. Not all developers use Java for all their projects; there are also C# specialists who prefer Windows Phone since its platform has a lot in common with WPF.
If you’re a C++ developer, for example, you can use Qt and develop apps that run on both Android and Windows Phone devices. In general, when it comes to the choice of the mobile operating system there are two factors: how much is your experience with its development environment and what device do you have at hand – if it’s an Android phone, maybe the most understandable solution would be to start from this platform…
2) The hardware
It may seem obvious but still, I need to mention it. Mobile platforms offer API that allows accessing different types of hardware (eg GPS or camera). This API works only on devices that actually contain these components. For example, trying to get position coordinates using GPS API on my laptop is pointless; this thing works only on mobile devices. On the other hand, if your app needs to record audio files and save them locally (eg an application for creating notes with recording), my laptop is a perfectly fine device too – try it!
3) The security model
If you’re developing apps not intended for internal use only, at some point you will probably need to deal with user authentication and access permissions. Different platforms have different ways of handling such things: in most cases, there are certificates that allow signing applications and restricting their distribution. In addition, iOS has several levels of access to hardware components (eg microphone) and data stored on the device. Android allows installing custom certificates but its standard system dialogs provide users with limited and confusing information about their Mobile application permissions.
4) The users of your mobile application
Most developers do not take into account the factor that is often more important than the platform itself – the user. In most cases, when developing an app for a specific mobile platform you will be able to make assumptions regarding its target audience: someone with a relatively modern device and an active account in Google Play. Users from emerging markets usually have older devices and use low-cost solutions such as AirPush ads for monetization purposes, while iOS users are in most cases richer and safer in terms of malware. How much does it matter? For example, if I’m planning a project whose revenue stream depends on ads shown to a targeted audience, I would definitely choose the Android platform despite my knowledge of iOS development.
5) The tasks of your mobile application
While developing business software, you should consider the expected number of users, distribution methods, and other factors that may affect the final price of your product. If you’re planning to publish an application on Google Play Store or Mac App Store (both closed markets), it is worth thinking about how much will you gain with this decision – if Android Market is way more profitable than Mac App Store despite having significantly fewer applications available for download, it might be worth considering publishing two separate products instead. Again, this factor is important mostly when making monetary calculations – if your app can gain popularity without help from ads or paid downloads, the platform choice may not matter at all…
All these factors should be considered before deciding which platform to start with – I’ll be glad if this post helps you make this decision or at least saves you some time when searching for information. Of course, the abovementioned tips are far from being exhaustive; in fact, they barely scratch the surface of the mobile development world! Which is your favorite mobile dev platform and why?