Mobile app development is the process or process by which a mobile app is developed for mobile devices, such as tablets or smartphones. As is generally the case with software development, a large number of different devices must be taken into account when creating mobile apps. Mobile app development is a growth market and mobile apps generated more than half of the world’s internet traffic in 2019. By 2022, sales in the app stores are expected to rise to 157 billion dollars. That equates to about $26 per device.
Mobile app development is distinguished differently from software development for desktop computers or embedded systems in the literature. With technical progress, these boundaries are becoming increasingly blurred.
- Battery operation: Unlike desktop devices, mobile devices often have only one battery as a power source and mobile operating systems (Android, iOS, etc.) are optimized for minimal energy consumption. Third-party apps should also be “gentle” with a limited energy supply.
- Sensors:, Unlike desktop devices, mobile devices often have a large number of different sensors that can interact directly with an app. Well-known sensors are GPS, compass, accelerometer or inclinometer.
- Connectivity: Unlike desktop devices, mobile devices often have large number of connection options, such as GSM, UMTS, LTE, WLAN, Bluetooth, NFC. Because the mobile devices are not location-bound, there are major challenges for the software, as connections can be broken off or superimposed at any time (even unintentionally).
- Security: The high level of connectivity also results in special requirements for the security of mobile apps, as a large number of “burglary scenarios” are conceivable.
- App Stores: While “embedded systems” usually run exclusively with factory software, on mobile operating systems a variety of apps (programs, applications) can be installed and removed by the user.
- User interaction: Mobile apps are usually operated with gesture control, in contrast to classic desktop devices, which are usually operated with a keyboard and keyboard. When developing apps, consideration must be given to the small screen size of mobile devices and the operation must be adapted accordingly to the input and output options.
While in 2011 there was no separate course of study for app developers, mobile app development is now offered as a course of study or course of study. Even on job portals, the profession of the mobile app developer is distinguished from general software development.
Development Process of Mobile App
Mobile app development is essentially the same as developing software in general. Depending on the process model, the sequence and weighting of the following processes can be different: planning, analysis, design, programming, validation and verification.
A possible process could look like this:
- Project scope: Define target group, project goals, intermediate and final results.
- Project Roadmap: Schedule project goals, milestones, and results.
- Use Case: Define functional requirements and user interactions.
- Project architecture: Structuring of the systems involved – applications, servers, databases – and their relationships with each other
- Wireframes: Organize content and functionality of the app pages in a basic structure.
- Clickable prototype: create a clickable app prototype based on the wireframes. Use this for user acceptance tests.
- Minimum Viable Product (MVP): Publish and test a minimally functional product.
- Frameworks: Depending on the use case, choose a framework or program the app natively. Use the predefined programming languages of the app stores.
- Programming languages: Program Android apps in Kotlin (formerly: Java) and iOS apps in Swift (formerly: Objective-C).
- Agile Development: Agile mobile app development. Eliminate inconsistencies in the UX design and add more functions.
- Tests: Test and improve the app after each development step (milestone).
Native apps are usually apps created using the tools and programming languages recommended and supported by the vendors of the respective platforms. Due to the direct support of the development tools by the manufacturers, native apps are usually the first to have access to new functions (e.g. new sensors, special camera functions, etc.) of the respective platform. Furthermore, native apps have a well-balanced ratio of resource consumption and speed. For Android, the programming environment Android Studio is recommended and the programming languages Kotlin, Java, as well as C and C++, are supported. For iOS, the XCode programming environment is recommended and the Swift and Objective-C programming languages are supported.
Hybrid apps use hybrid frameworks and are primarily used for smaller app projects without complex technological requirements. A hybrid app only has to be developed once and is then available for both operating systems or platforms, i.e. Android and iOS. If the mobile app is further developed, then the limitations of the framework often come to the fore and the price advantage disappears. Airbnb’s app was originally based on the React Native framework. In the meantime, However, Airbnb has replaced this with a native app.
From a technical point of view, web apps correspond to mobile websites that are accessed via a web browser but are more similar in their operation to a native app than to a website. Web apps are developed only once and can be used with any operating system. Progressive Web Apps (PWA) allow advanced offline functions and deliver an even better user experience. PWA also work offline and are often used in addition to a website and a mobile app.