FEATURES OF MULTIPLATFORM APPLICATION DEVELOPMENT ON KOTLIN - KOZUB, Yurii; KOZUB, Halyna (Herald of Khmelnytskyi National University. Technical sciences, 2023)
A study of the methodology of developing multi-platform applications using the Kotlin programming language was conducted. The method of developing a multi-platform application for Windows, Android, macOS and Linux operating systems is presented, which allows you to create musical melodies in a new format. The principles of declarative programming and frameworks for multi-platform development are studied. For the software implementation of individual native applications, native solutions have been chosen. This solution is facilitated by the use of Kotlin Multiplatform and Compose Multiplatform frameworks. Kotlin Multiplatform allows you to create a universal logic code of a multiplatform application, in combination with the Compose Multiplatform UI framework. Using such a combination makes it possible to write a single logic code and application interface for several platforms at the same time, which helps to save time and avoid a significant number of errors. The MVI architectural pattern is described, which best fits the declarative style of the Compose Multiplatform framework. The Dependency Injection design pattern is considered, as well as other tools for designing multiplatform applications, such as: the Kotlin Coroutines library to support asynchrony and parallel computing in Kotlin, the Gradle Kotlin DSL project assembly system, the Decompose library, and the MVIKotlin framework. A methodology for developing the architecture of Android application components is proposed. The modular structure of the project architecture is divided into two parts: the common module, which contains the main logic of the application, as well as platform implementations of components, and platform modules that perform initialization and launch of the application on a certain platform. Dependency implementation is used to establish access to repositories from application business logic components. The logic of implementing dependencies is described in Koin module files. A methodology is proposed that summarizes the methodology of developing multi-platform applications in the Kotlin programming language for developing user interfaces for several platforms.