Декларативний підхід при створенні мультиплатформних додатків
DOI:
https://doi.org/10.33216/1998-7927-2022-275-5-10-15Ключові слова:
MVIKotlin, Decompose, Android, Kotlin, Store, Common, Jetpack Compose, Kotlin MultiplatformАнотація
У роботі надано аналіз сучасних аналогів розробки крос-платформних та мультиплатформних додатків, досліджено інструменти розробки Kotlin Multiplatform та Jetpack Compose. Описано бізнес-логіку та методику створення інтерфейсу користувача під декілька платформ, що сприяє зменшенню вартості продукту та прискорення його розробки. Представлено методику розробки мультиплатформного додатку для операційних систем Android, Windows, Linux та macOS,який дозволяє створювати фонові хвилі у звуковому форматі. Дослідженопринципи декларативного програмування та фреймворки для мультиплатформної розробки. Для програмної реалізації окремих нативних додатків, обрано нативні рішення. Такому рішенню сприяє використовування фреймворків Kotlin Multiplatform, що дозволяє створювати універсальний код логіки додатку, у поєднанні з UI фреймворком Compose Multiplatform. Їх застосування дає можливість написання єдиного коду логіки та інтерфейсу додатку для декількох платформ одночасно, що допомагає економити час і уникати значної кількості помилок. Запропоновано методику розробки архітектури компонентів Android-додатку. Модульна структура архітектури проєкту поділена на дві частини: на common модуль, який містить у собі основну логіку додатку, а також платформні реалізації компонентів, та платформні модулі, що виконують ініціалізацію та запуск додатку на певній платформі. Описано контракт бізнес-логіки компонентів, що реалізується у інтерфейсах Store. Показано формування формату мелодії додатку з трьох класів: Song, Track та Chord.. Для відтворення звуків створено спеціальну утиліту. Вона виконує завантаження звуків з ресурсів додатку та відтворює з наданням необхідного музичного тону. Звуки зберігаються в ресурсах спільного модуля у вигляді MP3 файлів. Для налагодження доступу до репозиторіїв з компонентів бізнес-логіки додатку, використовується впровадження залежностей. Логіка впровадження залежностей описується у файлах-модулях Koin. Запропоновано методику, що узагальнює методологію розробки мультиплатформних додатків на мові програмування Kotlin та використання декларативного підходу для розробки інтерфейсів користувача під декілька платформ.
Посилання
1. Xamarin documentation. URL: https://docs.microsoft. com/en-us/xamarin/ (дата звернення: 25.12.2022).
2. React Native. URL: https://reactnative.dev/ (дата звер-нення: 25.12.2022).
3. Flutter. URL: https://flutter.dev/ (дата звернення: 25.12.2021).
4. Как Kotlin Multiplatform помогает сократить время ра-зработки приложений. URL: https://habr.com/uа/ post/ 525888/ (дата звернення: 25.12.2022).
5. Почему мы выбрали Kotlin одним из целевых языков компании. Часть 2: Kotlin Multiplatform. URL: https://habr.com/ru/company/domclick/blog/499820/ (дата звернення: 25.12.2022).
6. Declarative Programming: Is It A Real Thing?. URL: https://www.toptal.com/software/declarative-programming (дата звернення: 25.12.2022).
7. Understanding Jetpack Compose – part 1 of 2. URL: https://medium.com/androiddevelopers/understanding-jetpack-compose-part-1-of-2-ca316fe39050 (дата звер-нення: 25.12.2022).
8. Kotlin Programming Language. URL: https://kotlinlang.org (дата звернення: 25.12.2022).
9. Козуб, Г., Козуб Ю., Могильний Г., Жуков А. «Розро-бка мобільного Аndroid-додатку з застосуванням принципів Сlean Аrchitecture». Вісник Східноукраїнсь-кого національного університету імені Володимира Даля, вип. 5 (269), Вересень 2021, с. 5–10, doi:10.33216/1998-7927-2021-269-5-5-10.
10. Android MVI-Reactive Architecture Pattern. URL: https://abhiappmobiledeveloper.medium.com/android-mvi-reactive-architecture-pattern-74e5f1300a87 (дата звернення: 25.12.2022).
11. MVIKotlin Overview. URL: https://arkivanov.github.io/ MVIKotlin/ (дата звернення: 25.12.2022).
12. Жуков А. В., Козуб Г.О. Застосування фреймворку Jetpack Compose у багатомодульному Android-додатку. Вітчизняна наука на зламі епох: проблеми та перспе-ктиви розвитку : Зб. наук. праць. Переяслав, 2021. Вип. 67. С.109–111.