Many companies have picked up on the digital developments brought about by open platform technology and the move from desktop computers to mobile systems (Abrahamsson, 2005) as it has been estimated that currently over half of the world’s population own a smart mobile phone (We Are Social, 2017).
This has influenced them to upgrade their marketing techniques so that it develops in tandem with the shift towards the utilisation of mobile apps in order to ensure that their customers are receiving the best of their services. Not only will this opportunity amount to an increase in productivity, but it will also ensure that customers are able to transact business more efficiently (Enterprise Apps Today, 2013).
(Figure 1. Image courtesy of Statista – Bar graph showing the most popular apps in the world and how many times they were downloaded in May 2016.)
However, with the process of mobile application development comes a number of complications which hinder the progress significantly (Joorabchi et al, 2013). In this post, I will address some of the main complications that arise and how they affect the development process. However, before any of this is discussed, it must first be established what a mobile application actually is and ways it may be developed.
What is a mobile app and how does it differ from a web app?
Mobile apps are identified as native apps which are programs that can be used on handheld devices such as smart phones and tablets. They are different to mobile web apps which run within the internet browser of the device. Instead, these native apps operate independently and can be stored directly on a user’s device (Contentious.com, 2011). Another major difference that must be emphasised is in the word ‘native’ which suggests that these apps would only operate on specific mobile technology such as iOS (Contentious.com, 2011). Both web apps and native apps have various advantages and disadvantages as shown in Figure 2.
(Figure 2. Infographic courtesy of Signal, listing the pros and cons of native apps and web apps.)
How to approach the building of a mobile app that requires coding
Although it is possible to create simple apps without coding, it is necessary when aiming to create more complex mobile apps with a diverse range of features that coding be used (Sitepoint, 2015). There are a number of different methods used to make these apps, however these can vary depending on the device and platform. iOS and Android have been proven by studies to be the most popular platform that developers aim to build their apps for as shown in Figure 3 (Flora et al, 2014).
(Figure 3. Image courtesy of the International Journal of Modern Education and Computer Science – Graph listing the most popular platforms for app development.)
The software that is used to make a native iOS app is Xcode (Smashing Magazine, 2013) which is an ‘Integrated Development Environment’ or IDE used to code and develop applications specifically for Apple devices (Lynda, 2015). Whereas, the software used to make android apps are Android Studio and SDK tools (Smashing Magazine, 2014). The difference in software required is a result of issues such as CPU, storage capacity (Tun, 2014), screen size and resolution, as Apple devices are limited to fewer screen sizes than Android devices for example (Dehlinger et al, 2011).
A study conducted by Harleen K. Flora, Xiaofeng Wang, and Swati V. Chande analysed the overall process required for mobile app development, however they did not mention how it applies to each individual program or software that this process would apply to even though the study identified which platforms are most popular.
They created a survey regarding the significant practices required during the development process, which received over 130 responses, mainly by company development teams (Flora et al, 2014). The process which they formulated from the information they gathered included 4 phases: envision, solution, quality assurance and product release which include the necessary practices for the successful development of an app such as analysis, planning, technology selection, design testing and maintenance (Flora et al, 2014).
(Figure 4. Infographic courtesy of Verbat Technologies showing the development process of mobile applications.)
However, other studies have emphasised the importance of the selection of the appropriate technology as being an entirely separate process as it in itself involves several steps and decisions to reach the most suitable answer (Masi et al, 2012). Although because such studies were conducted before the investigation by Flora et al, it should be appreciated that the opinion on the technology selection may be outdated.
Complications that may arise during app development
When developing a fully functional mobile application that potentially appeals to a large number of customers, there are numerous obstacles that need to be overcome during the process of development. One of the biggest issues that need to be faced is the fact that native apps can only be used for the platform that they were originally built for, unlike web apps that are accessible across various platforms. This means that a series of the same native app must be developed which is specifically tailored to each type of device system the developer has in mind for the app (Dehlinger et al, 2011).
In the study conducted by Flora et al, 45% of the participants believed that much further analysis and effort is essential for apps that are aiming to be built for various platforms instead of just the one because of the ‘highly fragmented nature of hardware, software, tool and technology’ that is required to achieve this (Flora et al, 2014). This has led to many developers limiting themselves to only one platform which, although being easier for them, it has reduced the outreach of their app (Flora et al, 2014). This fragmentation has also made the testing process more difficult because many developers have to check their apps across different devices in the same platform as a result of the difference in screen resolutions for example, that means some of the features may not work efficiently (Joorabchi et al, 2013).
This issue of having to target only one platform may be worked around by using cross-platform development tools. However, these have cons of their own such as the framework not supporting all of the features of an operating system, so for example, every time Apple adds a new feature, the framework used to cross-platform will need to be constantly updated (Mashable, 2012).
(Figure 5. Image courtesy of Xamarin which is an example of a cross-platform development software.)
Another obstacle that must be overcome is the fact that mobile hardware is ever-changing which means that developers are required to learn new languages and APIs for each of the platforms they are targeting and if all of them are changing at the same time, this can be a rather challenging task (Joorabchi et al, 2013).
Uncertainty of requirements which arises when developers have often shown that they are unsure regarding the effort that is required for an app has also been a major setback. Because of this, a substantial amount of time is invested into research that is done to understand customers’ requirements which in turn increases their workload for the development of the app (Flora et al, 2014).
For a lot of businesses, the budget is an obvious restriction when developing an app and it often leads to the failure of the app in early stages of development. This is not only because it takes so long to get permission for the funding of the app, but also because companies often underestimate the scale and complexity of the processes required and if this is accompanied by a deadline, the developers usually have less time and a tight budget to work with which can be detrimental to the creation and success of the app (Flora et al, 2014).
In summary, the making of a mobile application is not a walk in the park. To create a successful app that would reach and satisfy a large number and wide variety of customers, a substantial amount of research, resources, time, effort, a significant amount of money, a dash of luck, and good old patience is required. Yes, there are many apps out there which are specifically designed to make other apps, but not as many people see success with this method because they require so little time and monetary investment. Although the development process seems tedious and extensive, and the complications that arise may be exasperating, it will be worth it if the right amount of effort is put into the app. It is because of this that many experts have explained that ‘if you want that app to succeed and not just exist, you have to treat it like a business investment’ (Brookschmidt, 2014).
References
Abrahamsson, P., “Mobile software development – the business opportunity of today” (2005) International Conference on Software Development.
Brookschmidt, K., (2014) Programming Windows Store Apps with HTML, CSS, and JavaScript, Microsoft Press.
Dehlinger, J., Dixon, J., “Mobile Application Software Engineering: Challenges and Research Directions” (2011).
Flora, H. K., Wang, X., Chande, S. V., “An Investigation into Mobile Application Development Processes: Challenges and Best Practices” (2014) International Journal of Modern Education and Computer Science, 6, 1-9.
Gahran, A., (2011) ‘What’s a Mobile App’ Contentious.com [online] Available at: http://www.contentious.com/2011/03/02/whats-a-mobile-app/ (Accessed: 4 April 2017).
Haynes, R., (2013) ‘Choosing the Right Technology for Your Mobile App Strategy’ Signal [online] Available at: http://signalinc.com/choosing-the-right-technology-for-your-mobile-app-strategy/ (Accessed: 4 April 2017).
Joorabchi, M. E., Mesbah, A., Kruchten, P., “Real Challenges in Mobile App Development” (2013) Empirical Software Engineering and Measurement.
Kemp, S., (2017) ‘Digital in 2017: Global Overview’ We Are Social [online] Available at: https://wearesocial.com/blog/2017/01/digital-in-2017-global-overview (Accessed: 4 April 2017).
Masi, E., Cantone, G., Mastrofini, M., Calavaro, G., Subiaco, P., “Mobile Apps Development: A Framework for Technology Decision Making” (2012) International Conference on Mobile Computing, Applications, and Services.
Perkins, T., (2015) ‘What is Xcode?’ Lynda [online] Available at: https://www.lynda.com/Mobile-Apps-tutorials/What-Xcode/435788/451558-4.html (Accessed: 4 April 2017).
Raj, J., (2015) ‘3 Options for Creating Mobile Apps Without Coding’ Sitepoint [online] Available at: https://www.sitepoint.com/3-options-for-creating-mobile-apps-without-coding/ (Accessed: 4 April 2017).
Richter, F., (2016) ‘The Most Popular Apps in the World’ Statista [online] Available at: https://www.statista.com/chart/5055/top-10-apps-in-the-world/ (Accessed: 4 April 2017).
Rubens, P., (2013) ‘3 Approaches to Building Mobile Apps: Which Is Best?’ Enterprise Apps Today [online] Available at: http://www.enterpriseappstoday.com/management-software/3-approaches-to-building-mobile-apps-which-is-best.html (Accessed: 4 April 2017).
Traeg, P., (2013) ‘Four Ways To Build A Mobile Application, Part 1: Native iOS’ Smashing Magazine [online] Available at: https://www.smashingmagazine.com/2013/11/four-ways-to-build-a-mobile-app-part1-native-ios/ (Accessed: 4 April 2017).
Traeg, P., (2014) ‘Four Ways To Build A Mobile Application, Part 2: Native Android’ Smashing Magazine [online] Available at: https://www.smashingmagazine.com/2014/01/four-ways-to-build-a-mobile-app-part2-native-android/ (Accessed: 4 April 2017).
Tun, P. M., “Choosing a Mobile Application Development Approach” (2014) ASEAN Journal of Management & Innovation Vol. 1 No. 1, 69 – 74.
Verbet Technologies (2016) ‘Verbat builds Mobile Application to meet your business requirements which are in-line with your business strategy and goals.’ [online] Available at: http://www.verbat.com/mobile-application-development-company-dubai-uae.htm (Accessed: 4 April 2017).
Warren, C., (2012) ‘The Pros and Cons of Cross-Platform App Design’ Mashable [online] Available at: http://mashable.com/2012/02/16/cross-platform-app-design-pros-cons/#bJoQIufmyGqi (Accessed: 4 April 2017).
Xaramin (2016) ‘Build a Native Android UI & iOS UI with Xamarin.Forms’ [online] Available at: https://www.xamarin.com/forms (Accessed: 4 April 2017).
Usually I never comment on blogs but your article is so convincing that I never stop myself to say something about it. Really helpful.