Over the last ten years or so, mobile devices technology has changed significantly, with these devices and operating systems becoming more sophisticated. These developments have led to a huge variety of mobile applications designed for mobile operating systems. These mobile applications are typically harder to design and build because of several factors such as screen size and limited processing power and so forth. Therefore, it is important to clearly identify the characteristics of mobile application development and the issues and challenges related to it, as well as, the key features that characterize a great mobile application which make them valuable and useful. This paper has reviewed existing literature of the challenge and best practices of mobile application development. This study contributes towards a great understanding of the characteristics of mobile application development process, examines real challenges faced and explores the best practices that can be effectively applied to improve the development of mobile application.
It has been observed, over the last decade, that mobile telecommunication industry is one of the fastest growing digital sectors which proved to be highly competitive, uncertain and dynamic environment . This field has become very attractive for software organizations since it turned out to generate significant revenues .
Besides its expansion, it has also brought up a number of issues and gained concern in the software industry and research community. For instance, the development process of mobile application is quite different from traditional software since the end-users expect same features similar to their desktop computer applications with additional mobile exclusive functionalities .
Moreover, in order to build a good mobile application, it is essential to comprehend the key features that characterize a good mobile application which, if practically applied, make them valuable and useful. Therefore, the objective of our study was to gain a better understanding of the mobile application development characteristics and the different challenges and issues connected to it. For this reason, the current review study aims at answering the following two questions: (1) What are the challenges and issues that are confronted through the development process of mobile application? And (2) What are the best practices which generally embraced to soften the challenges of mobile application development process?
This paper is an endeavor to review the published literature on the challenge and best practices which can be realized during the development of mobile application. The review study contributes towards a better understanding of the characteristics of mobile application development process, examines real challenges faced and explores the best practices that can be effectively applied to improve the development of mobile application.
The paper is organized as follows. Section 2 provides an overview of software engineering for mobile application development. Section 3 describes the general development process of mobile application. Section 4 identifies the characteristics of mobile applications. Section 5 classifies and identifies the issues and challenges of the mobile application development process followed by mobile developers. Then, Section 6 specifies mobile application development best practices. Finally, Section 7 concludes the paper and outlines future work.
2. SOFTWARE ENGINEERING FOR MOBILE APPLICATION DEVELOPMENT
In the last years, the mobile industry has witnessed rapid growth, and the potential number of various mobile applications is almost unlimited. With this increasing of fame and demand for mobile applications, the number of development projects for mobile application has been significantly increased . As a consequence of this, the quality and quantity of mobile applications have introduced new concerns in software engineering industry. Mobile application development is the process of developing applications for small, low-power handheld devices such as cell phones .
This application can be either factory pre-installed applications or downloadable from application stores (App-stores) or mobile software distribution platforms . Currently, numerous applications are accessible in the app stores to aid for a life based on mobile, or mLife which includes; mHealth, mEnvironment, mEducation, mTourism, mGovernment, mEntertainment, etc. Mobile applications can be categorized into  :
Native Applications: These applications are implemented for a certain platform using Software Development Kits (SDKs) and tools provided by platform owner, and this may limit the number of mobile devices running the app but it can benefit from all platform features offered for developers.
Hybrid Applications: These applications combine the advantages of both native and web applications.
3. MOBILE APPLICATION DEVELOPMENT PROCESS
Mobile application development is a special case of the software development as the developers need to consider different aspects such as: short development lifecycle, the capabilities of mobile device, mobility, visibility, the specifications of mobile device such as screen sizes, user interface (UI) design and navigation of the application, security and user privacy, and necessity for application marketing to gain more popularity .
In general, mobile application development lifecycle comprises of the following: (1) Analysis of the application idea, (2) User interface design, (3) Application development by utilizing the tools and programming languages for the target platform, (4) Testing the application on various devices, (5) Publishing the application on the target platform store, and finally (6) Application maintenance in which any new updates for the application are released in successive versions of this app for the target platform store .