Why is the issue of mobile app performance pushed aside by their creators? Why is the short path most frequently chosen with regard to developing a mobile application? Why does this path lead to enormous costs and, in consequence, hinder the software development process?
The topic might seem very extensive. It’s probably difficult to master it and pinpoint the most important aspects while planning mobile application programming processes. Over the last few years, I’ve worked on both large and small start-up projects. As a programmer with several years of experience under my belt, I would like to discuss a few problems related to the effectiveness of mobile applications and propose some solutions.
Mobile App Performance
Let’s assume that an application is a black box. For now, let’s ignore the question of its category (games, business, education, lifestyle), as it’s not really important at this point. Moreover, let’s assume our application is written natively for a given mobile platform (e.g. iOS – Swift, Objective-C, Android – Java, Kotlin) with the use of the best software practices and project templates. I believe that if you’re considering software efficiency it’s pointless to go into the details of cross-platform solutions as e.g. Xamarin or hybrid ones using HTML5. That’s even if, in the case of simple software, we can assume that the efficiency of a solution based on Xamarin will be comparative to the native language.
I’m aware of the fact that I won’t be able to discuss all aspects of efficiency of mobile applications and factors shaping it. However, I’d like to focus on the most important ones.
The first and probably the most frequently forgotten factor concerns the devices themselves. Depending on the platform and version of available software, it’s useful to put together a list of devices on which the software will ultimately be installed.
Those devices not only determine the user interface, but mainly how particular software layers will operate on older mobile devices. These can include devices with worse units (weaker processor, less RAM). You should also consider the availability of the devices, especially those older ones. Most frequently, programmers use simulators, additionally one or two mobile devices. This should be a warning signal for testers to start their tests with the oldest devices. Negligence can lead to expensive rewriting of functionalities which operate incorrectly on particular devices due to efficiency reasons. In any case, this doesn’t justify the programmers, who often copy the wrong project templates out of laziness, and start the applications only on the newest devices – ones that deal with processing complicated operations without any problems. In such cases, we usually learn about efficiency-related inconveniencies from the final user.