The Architecture of the Mobile Application for Android with the Use of the MVVM Pattern and the HILT, LiveData, Room, Retrofit and Kotlin Coroutines Libraries

Abstract:

The creators of the Android operating system - Google - during periodic presentations present a number of libraries, components and mechanisms that software authors can use when developing applications for Android OS. From the very beginning of the Android system, developers had at their disposal the basic components of the application. They include: Activity, Intent, Broadcast Intent Receiver, Service and Content Provider. They are described in more detail in [2]. Not all components are required for the application to run, but some of them will be used at least once. When designing and creating an application, one should bear in mind many aspects that permeate the entire production process, including fragmentation of available devices and their heterogeneity on the market, complexity and variety of APIs and components, effective management of physical resources of devices, multithreading and synchronization. In addition to the above, an important issue are also the functional requirements for applications that are required to perform tasks intended for web applications. An analysis in [3] shows that there were 204 billion downloads of mobile applications in 2019, compared with 178 billion in 2018. It is estimated that the number of downloads of applications by 2022 will be 260 million [3]. With all of the above factors in mind, developing the right architecture for your mobile application is critical to your success. By identifying all prior components at the development stage, it is easier to scale, test, develop, maintain, and understand and reuse your application's source code. When asked about the appropriate architecture for an Android OS application, the creators of the development toolkit answer that there is no single way to write an application that will be best for each scenario [1].