The proliferation of mobile technologies crosses that of web technologies; it is increasingly complex to make a choice for the development of your application. In this article, we will try to provide some answers concerning the choice of technologies for the development of a mobile application.
Mobile Development Platforms: State of Play
The first question to ask when you want to develop a mobile application is that of the target platform. Indeed, there are many operating systems. Here is a quick inventory of the forces involved.
The Apple environment alone accounts for 20% of the market share. The advantage of this platform is that it is very integrated and the homogeneity of the OS versions is very good. The biggest negative is the prohibitive price of the terminals, as well as the closure of the OS, which imposes very precise lines of development and frames the possibilities of the applications (one cannot do all that one wants).
An Important Point to Note: The Potential Purchase of Apple Users
In many cases, Apple users are considered a richer audience than average and, in fact, more likely to make mobile purchases. If your app is for the general public and is funded by purchases (either in-app purchases or directly from the price of the app), with equivalent applications, iOS users are much better payers.
Most of the time, when the application development budget is limited, customers ask us, “Which OS do I have to go to?” Our answer is often the following: iOS, because the business model is more viable! With only 20% market share for the OS, it is common to see that the revenue generated by their applications accounts for no less than 80% of the total revenue. Once again, we find the famous rule of 20/80.
With a score of more than 80% market share, Android represents by far the most open platform, despite a significant heterogeneity of OS versions. If you want to reach a maximum of users, Android is the platform dream.
Among the positive points of the platform, we can mention
- A very large opening of the platform.
- Terminals at affordable prices.
- Development facilities and application deployments.
Where to Go?
Another solution for choosing your technology is to ask yourself the following questions:
Choose Your Audience (B2C/B2B)
This question is not the least, since the choice of technologies for B2B is not at all the same as for B2C. In the first case, you have the hands-on devices (fleet logic), while in the case of B2C, mobile development must reach 100% of users, which is much more complicated (especially on Android).
Choose Your Platform – Take Maintenance Into Account
Another question to integrate from the beginning of the reflections: the application maintenance. Can the choice of technologies have an impact on maintenance? Well, yes!
Already, because the choice of native development will force you to evolve two applications at a time, it’s double the work, and unified development solutions pose other problems in terms of maintainability over time. Whichever choice you offer your provider, it is therefore appropriate to ask the question of the durability and costs.
There is no good or bad choice in itself, but choices involve many repercussions.
Mobile Development Technologies
Here is a quick overview of development solutions.
Native Development – Swift/Java/C# (Universal)
Developing natively is often the only possible solution because it allows the best performance and being able to take full advantage of the functionalities of the terminals. In addition, this makes it possible to be certain of the compatibility of your developments in the future. Indeed, whether Apple or Google, they still provide very good backward compatibility with their versions of their OS. Thus, a development made in Swift 2 will globally be relatively easy to migrate to Swift 3, etc.
Why is it important? One mobile app development company in California stated in their blog that the mobile development cycle is often very short, and you have to be able to release versions of applications frequently. In addition, Android and Apple release a major version of their OS each year. It is therefore necessary to be able to act quickly when a new version releases, and, starting in pure native, you are sure to arrive there easily.
The main flaw of this solution is that you need to develop two versions of the application- one for Android in Java and the other for iOS in Swift (more or less double the price). To this, we must add twice the price for each evolution.
You will never be stuck, but freedom comes at a relatively high price.
Hybrid Development – Ionic/Cordova
In addition, the maintenance is made more complex because it is necessary to follow, in addition to the upgrades of the OS, the framework version updates, and you are never immune from the framework disappearing!
The Future? – Progressive Web Apps
Recently, a third way has arisen, pushed by the giant Google: the progressive web app. This solution makes it possible to create a website that is transformed into a perfectly functional application on both OS. This solution, although recent, is surely the future of mobile development but its support is still partial in iOS, which still raises many concerns when it is adopted.
Project Management for Mobile Application Development
Obligation to have server and customer teams:
Rare are applications that do not need a server to work. It is, therefore, necessary to prepare two distinct teams to carry out both developments.
Few screens in the application, few developers: keep only the best!
A mobile application is often simpler than a typical web application since it usually contains far fewer screens. You must take this fact into account and limit the number of developers who intervene on the project by keeping only the best. We must avoid at all costs bringing in and out developers as you would on a conventional project.
Prepare from Day 1 (Apple/Android certificate).
Deploying applications on the blinds is often the obstacle course, so complex, and sometimes ubiquitous, get to validate your apps in the blinds. For this, it is imperative to prepare this from Day 1 of the project to not find your head in the water a few days of production.
Provide a fleet of terminals for testing.
We can never say it enough, but tests are the most important! Provide at least as much time for testing as for development! Especially on Android, where you will have a lot of devices to test.
Mobile Application Maintenance
Here is a list of points of vigilance regarding the maintenance of mobile applications:
The update is forced by the platforms.
You do not have the hands on the OS of the mobile terminals. You must therefore anticipate them if you wish to succeed. Nothing is worse than a user with his brand new terminal and your application crashes lamentably.
Users are used to regular updates.
In the mobile field, users are used to seeing their feedback taken into account quickly. It is therefore necessary to size your teams to be able to quickly make updates.
Error management is not easy.
Unlike the historical world of the company, you will not have access to the device presenting the error. You will be deprived when you see a negative comment on the store. It is therefore necessary to anticipate this problem and prepare frameworks to make you understand the errors with as much detail as possible.
The notation of your application in the store.
People are ruthless on the blinds and notes are often there to punish apps that are not up to standard. It is therefore important to protect yourself and to be able to communicate with your users to maintain a good quality relationship.
To make a point, here are our recommendations, from our experience:
- Native development is the best performing, the best maintained but also the most expensive.
- Attention, you are no longer completely master of the distribution of the app: it must therefore anticipate!
- Do not neglect the management of notifications: when, what and who?
- Do not use too complex design.
- Always stay in the philosophy of the platforms.
- The progressive Web App are the future but, like any future, it is still uncertain!