challenges of mobile app development
Tips and Tricks

7 challenges of mobile app development

80 percent of Dutch people aged eighteen to eighty own a smartphone. 61 percent of households own a tablet and even one in five households owns several. On average, smartphone owners use 27 apps per month. This is apparent from figures from Telecompaper and Nielsen, among other things.

Numbers that don’t lie. Mobile devices are therefore playing an increasingly important role in our lives and the demand for mobile applications is growing. This brings whole new challenges in the field of software development. In this contribution, I discuss seven.


1. Online & offline scenarios

Users of a mobile device do not always have access to a network or connection to the internet. When you build an application, it is a good idea to look at how the application behaves when there is no internet connection, when there is a connection and when the device is connected to the GSM network. Ideally, an app itself will also detect whether the device is connected to a GSM or Wi-Fi network, so that the user is alerted to possible extra costs, for example. You could then offer an option not to retrieve data if a device is, for example, connected to a mobile phone network or unsecured Wi-Fi network. Make your mobile app with Digital marketing company 


 2. Local storage

When you develop an application, you have to consider which information you store locally and which on the server. You probably want to store the information locally for offline support and a better performance of an app. But when the data contains sensitive information, you prefer to store the data on the server. If you have information on the client, and you send it to the server, it is possible that a client has modified the information. The data is then no longer owned by the server and that makes security difficult. The sensitivity of data is therefore definitely something you have to take into account when it comes to the location where you store data. You also have to look carefully at how you build up the cache. If it is up to date, it is better to get your information directly from the server. Or is it about performance? and the availability of information is first checked in cache before the server is consulted. You may need different caching strategies for different types of data.


 3. Publication

When developing an application, think carefully about who the application is intended for and how you offer the app to the end user. Is it paid or is it free? If you are building an application for companies, you have to ask yourself whether you want to offer the app in the general app store or in, for example, the managed enterprise store of a company and what requirements these stores have. And if you move away from the concept natively, you can bind the rollout of applications via html or manifest files to an intranet environment or to a website. So you have to make choices about how the user finds the application, how publicly or publicly you want to offer the application and what the consequences are of those choices.


 4. Security

Security is of course always an important aspect in software development. With mobile apps , the software often communicates with software located on the server. Usually communication takes place via the internet. Make sure that when you retrieve and write data, this is done via secure protocols, for example with https. When you work with this, the certificate on the server environment must be treated as a trusted certificate on your client. The client and the server then communicate over a secure https connection. Of course there are more security aspects that you have to take into account. But communication with the server poses one of the biggest challenges as far as I’m concerned.


 5. Energy saving

A mobile device works with a battery. On various platforms you have the option of running an application in the background, but this takes a lot of energy. If you develop a good mobile app, you ensure that you deal efficiently and optimally with memory management, drawing routines, the structure of the screen and the storage and retrieval of data. You also let the application disappear neatly in the background when it is not in use. It is wise to measure an application on performance and resource usage before distribution. An application that continuously drains the battery of the device will be immediately removed by the user.


 6. Backend software

Another important challenge is the central access to your data. It is an application that works together in a landscape with several applications. You often need a connection to a backend where the data is stored and to whom you talk. But that backend is not always there and has to be built. You can then use a database, build it yourself or use an existing platform. In the case of Android, iOS and Windows, you have to ask yourself how the backend handles push notifications. For example, the cloud environments and Microsoft’s Azure have functionality to send cross platform push notifications. Building an application is actually only half the job. The other half concerns programming the backend.




7. Screen Size


The devices on which an application runs often have very different dimensions. This varies from 1.5 inch (smartwatch) to 12 inch (A3 size tablet). When developing an app, you need to know which device and screen size you want to support and how to deal with differences therein. In addition, you have to deal with devices that can be tilted and the screen has to move with it. In an extreme case, you may be writing completely different interfaces for different screens. To solve this, Android has introduced Fragments. iOS has Storyboard for this, with which you can create different storyboards for different devices with different form factors.