Mobile app development

from Wikipedia, the free encyclopedia

Mobile app development is the process by which a mobile app for mobile devices , such as tablets or smartphones , is developed.

When developing app software developers must consider a large number of screen sizes , hardware specifications, and configurations. There is also an almost unmanageable number of technologies, programming languages ​​and frameworks. Making the right choice is critical to the success of a project. Performance is an important factor. The problem is often underestimated. The development of mobile apps is a growth market. Mobile apps already accounted for more than half of the internet traffic in 2019. By 2022, sales in the app stores are expected to rise to $ 157 billion. That's $ 26 per device.

Demarcation

Mobile app development is differentiated from software development for desktop computers or embedded systems in the literature. With technical progress, these boundaries are becoming increasingly blurred.

  1. Battery operation : In contrast to desktop devices, mobile devices often only have one battery as an energy source and mobile operating systems (Android, iOS etc.) are optimized for minimal energy consumption. Third-party apps should also be "gentle" with the limited energy supply.
  2. Sensors : In contrast to 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.
  3. Connectivity : In contrast to desktop devices, mobile devices often have a large number of connection options , such as GSM, 3G, LTE, WLAN, Bluetooth, NFC. Because the mobile devices are not tied to a specific location, there are major challenges for the software, as connections can be interrupted or overlaid at any time (even unintentionally).
  4. Security : The high level of connectivity also results in special requirements for the security of mobile apps, as a large number of "break-in scenarios" are conceivable.
  5. App stores : While "embedded systems" mostly run exclusively with factory software, a large number of apps (programs, applications) can be installed and removed by the user on mobile operating systems.
  6. User interaction : Mobile apps are mostly operated with gesture control, in contrast to classic desktop devices, which are mostly operated with keyboard and keyboard. When developing the app, the small screen size of mobile devices must be taken into account and the operation must be adapted accordingly to the input and output options.

process

The development of mobile apps is based on the following process:

  1. analysis
    • Project scope: define target group , project goals, interim and final results.
    • Project roadmap : place project goals, milestones and results in the schedule.
    • Use case : define functional requirements and user interactions.
    • Project architecture: structuring the systems involved - applications , servers , databases - and their relationships with one another
  2. UX design
    • Wireframes : organize the 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.
  3. UI design
  4. Software development

technology

Native app

Native apps are usually understood to be apps that were created with the tools and programming languages ​​recommended and supported by the manufacturers of the respective platforms. Due to the direct support of the development tools by the manufacturer, 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 relationship between 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. The XCode programming environment is recommended for iOS and the Swift and Objective-C programming languages ​​are supported.

Hybrid app

Hybrid apps use hybrid frameworks and are primarily used for smaller app projects without complex technological requirements. A hybrid app only needs to be developed once and is then immediately available for both operating systems or platforms, i.e. Android and iOS . If the mobile app is further developed, 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, Airbnb has replaced this with a native app .

Web app

When accessed via the web browser, web apps look like mobile websites . In terms of their functions, however, they are more similar to a native app than a website. Web apps are only developed once and can be used in all operating systems. Progressive Web Apps (PWA) deliver an even better user experience . PWAs are freely available on the Internet. They can be installed like apps, but do not have to be distributed via the app stores. They also work offline. They are often used in addition to the website and the mobile app.

literature

  • Florian Siebler-Guth: The Process of Mobile Development Projects: Patterns of Agile Methods. Springer Vieweg, Wiesbaden 2019, ISBN 978-3-658-26730-8 .
  • Tejinder Randhawa: Mobile Applications: Design, Development and Optimization. Springer International Publishing, 2019, ISBN 978-3-030-02389-8 .

Individual evidence

  1. Half of all Internet traffic comes from apps - and 64 other app statistics | Kroker's Look @ IT. Retrieved on August 6, 2020 (German).
  2. ^ Anthony Wasserman: Software engineering issues for mobile application development . Proceedings of the FSE / SDP Workshop on the Future of Software Engineering Research, 2010, p. 397-400 , doi : 10.1145 / 1882362.1882443 .
  3. M. Nagappan and E. Shihab: Future Trends in Software Engineering Research for Mobile Apps . International Conference on Software Analysis, Evolution, and Reengineering (SANER), 2016, p. 21–32 , doi : 10.1109 / SANER.2016.88 .
  4. V. Giedrimas and S. Omanovic: The impact of mobile architectures on component-based software engineering . Workshop on Advances in Information, Electronic and Electrical Engineering (AIEEE), 2015, p. 1-6 , doi : 10.1109 / AIEEE.2015.7367317 .
  5. Ghita Mostefaoui and Tariq, Faisal: Mobile Apps Engineering: Design, Development, Security, and Testing . 1st edition. Chapman and Hall / CRC Press, 2018, ISBN 1-138-05435-6 .
  6. The secret of successful apps: UX design. In: Ackee Blog. August 23, 2019, accessed on August 6, 2020 (German).
  7. Android developer. Accessed August 31, 2020 .
  8. Apple Developer Documentation. Accessed August 31, 2020 .
  9. Application Fundamentals. Accessed August 31, 2020 .
  10. Android NDK. Accessed August 31, 2020 .
  11. Adam Sinicki: Developing for Android vs developing for iOS - in five rounds. June 9, 2016, accessed August 31, 2020 .
  12. Gabriel Peal: sunsetting React Native. June 21, 2018, accessed on August 6, 2020 .