Before selecting the solutions most suited to the context of your mobile application as well as your situation, you must take into account many parameters, which we have listed for you:
Budget and available resource
Implementation deadlines (imposed deadlines)
The volume of expected users
Data security and legal constraints
Scalable maintenance (OS, Apis, private data, etc.)
The frequency of updates
The mobile BackOffice (CMS, marketing, monitoring, etc.)
Try to define each of these parameters as precisely as possible, as they will be the guideline for the technical choices and resources used for the development of your mobile application…
The architecture of the application project
We are entering the most “controversial” part of the reflection, because each developer and project manager will have a priori their own idea of the technical choices considered
The subject of technical mastery often appears, either for example because the mobile developer thinks better to manage his application project if he develops everything (absolutely everything!) Natively; or to the opposite extreme because the project manager from a “Web culture” will be reassured if the app uses “open” and “universal” HTML5 technologies, to easily manage development and the cross-platform aspect …
On the “front” part of the applications, that is to say the software that you download to your smartphone or tablet, different types of development are possible. Based on our years of experience and various projects in the mobile world, here are our different feedbacks on the issue, with each their advantages and limitations:
Then, you will have to choose how to build the “back” or “Mobile Backend ” part of your app, that is to say the “invisible” part which allows it to interact with other connected solutions. Here are different possibilities:
No backend: in this case all the code related to the mobile project is embedded in the application. The advantage is that the developer has no backend problem to manage… but the teams (marketing, production etc.) will not be able to manage the app in its operational phase either.
Other drawbacks, all of the code is in the app, which generates performance issues depending on the devices (especially with low-end Android), security issues (all infrastructure access codes are “hard” in the app, etc.), the need to republish apps for each small change to the code, and finally the difficulty of maintaining the same functional scope of apps on several mobile OS with several different development languages …
Partial backend: in this case, certain functionalities are managed with in-house solutions created ad hoc, or with third-party solutions such as Batch for notifications, Flurry for analysis, etc. The advantage, much better control of the app by the teams that will manage its operation.
However, they will also need to master several tools, and vary between these different platforms, which can waste a lot of time on a daily basis.
Full backend (or “360 °”): in this case it is possible to limit developments to the display of information on the app and allow the Mobile Backend to integrate as many software developments as possible. The advantage, UX optimization on apps that will have the same functional scope, ease of updating the code, better security of the business information system , better ability to manage scalability, and total control of the use of apps by management teams, etc. However, the integration of a mobile backend requires real thinking upstream of the project to fully benefit from its tools.
Your preferences between the technical choices on the “front” and “back” parts will define the architecture of your application project.
For example, it is possible to choose with a small budget to build limited POC apps to test Cordova, with partial backends (see notifications, analytics). But after validation, it will be necessary to “throw” this prototype and recode the entire app “clean”, for a real deployment in production … Or, on the contrary, you can develop the project straight away with a complete Mobile Backend which will offer great agility of evolution during the POC phase. You can then deploy your project in production without redeveloping it from scratch.
As a general rule, it is better to start right away on a V1 / MVP application with a full Mobile Backend with few features, and then add more as you go, rather than a “disposable app” under Cordova with more testable features. But which will have to be completely redeveloped for its entry into production. This will end up costing you more on the overall mavendigital Mobile App Development
Finally, let’s not forget that this arbitration on the architecture of an application will also depend on the resources available at the start of the project.
What resources to develop your app?
Internal Resources: team of developers, interns, etc. The specific nature of the mobile development tools and issues makes this option more complex to manage than with a Web project.
Outsourcing onshore (locally): Freelance freelancers, mobile agencies, “general” IT services companies, etc. This involves calling on external resources to supplement the know-how or the availability of internal resources.
Outsourcing offshore: nearshore (Eastern Europe, Ukraine, Maghreb, etc.) Same base as Onshore but with a notion of low cost in development costs. But this is often accompanied by altered quality.
But that’s rarely a point a website design Australia Company will tell you. But it can be detected by the price. High-end equipment and infrastructure are quite expensive. If the host can afford to charge you 5 euros / month for hosting, it’s a bit sketchy.