24. Программистов отключили от Docker Hub [Электронный ресурс] URL: https://www.kommersant.ru/doc/6731248 (дата обращения: 08.10.2024).
25. Репозитории, реестры, хостинги - Cloud.ru Container Apps - 2024 [Электронный ресурс]. URL: https://x-kit.ru/hranenie-i-upravlenie-dannymi/repositories-registries-hosting/cloud-container-apps (дата обращения: 09.10.2024).
26. Репозитории, реестры, хостинги - VK Cloud Containers - 2024 [Электронный ресурс]. URL: https://x-kit.ru/hranenie-i-upravlenie-dannymi/repositories-registries-hosting/vk-cloud-containers (дата обращения: 09.10.2024).
27. Сбербанк заработает на облаках [Электронный ресурс] URL: https://www.vedomosti.ru/finance/articles/2018/04/02/755542-sberbank-zarabotaet-na-oblakah (дата обращения: 08.10.2024).
28. Современная безопасность контейнерных приложений - 2024 [Электронный ресурс]. URL: https://habr.com/ru/companies/oleg-bunin/articles/786930 (дата обращения: 11.10.2024).
29. Спиридонов С.Б., Булатова И.Г., Постников В.М. Анализ подходов к выбору весовых коэффициентов критериев методом парного сравнения критериев // Интернет-журнал «НАУКОВЕДЕНИЕ». 2017. Т. 9, № 6. [Электронный ресурс] URL: https://naukovedenie.ru/PDF/16TVN617.pdf (дата обращения: 14.10.2024).
30. Упрощаем мониторинг и управление контейнерами Docker при помощи инструментов CLI - 2022 [Электронный ресурс]. URL: https://habr.com/ru/companies/first/articles/658951 (дата обращения: 13.10.2024).
Потемкин Александр Станиславович, магистрант, [email protected], Россия, Москва, Российский технологический университет МИРЭА,
Узоров Кирилл Александрович, магистрант, [email protected], Россия, Москва, Российский технологический университет МИРЭА,
Петросян Лусинэ Эдуардовна, канд. эконом. наук, доцент, mail@mfmgutu. ru, Россия, Москва, Российский технологический университет МИРЭА
ANALYSIS OF RUSSIAN PLATFORMS FOR STORING AND MANAGING DOCKER IMAGES A.S. Potemkin, K.A. Uzorov, L.E. Petrosyan
This article provides an overview of Russian systems-analogues ofDockerHub, for storing and processing Docker images. Popular modern developments in this area are shown. A comparative analysis of Russian platforms for storing and working with Docker images was made and a forecast of the growth or decrease in the number of users of each of them was made, in the event of the cessation of Docker Hub
Key word: Docker images, containerization systems, software, Russian analogues, clusters.
Potemkin Alexander Stanislavovich, undergraduate, alex.potjomkin@gmail. com, Russia, Moscow, Russian Technological University MIREA,
Uzorov Kirill Alexandrovich, undergraduate, uzorov. kirill@mail. ru, Russia, Moscow, Russian Technological University of MIREA,
Petrosyan Lusine Eduardovna, candidate of economics sciences, docent, [email protected], Russia, Moscow, Russian University of Technology MIREA
УДК 004
DOI: 10.24412/2071-6168-2024-10-708-709
АНАЛИЗ ПЕРСПЕКТИВ KOTLIN MULTIPLATFORM ДЛЯ КРОССПЛАТ ФОРМЕННОЙ МОБИЛЬНОЙ
РАЗРАБОТКИ
М.А. Раджапов, К.Д. Чемухин, Л.Э. Петросян
Цель статьи заключается в анализе перспектив использования технологии кроссплатформенной разработки KMM от JetBrains в контексте мобильной разработки. Были выявлены преимущества и недостатки KMM. Был выполнен анализ исследований среди разработчиков, использовавших KMM с 2021 до 2024 гг. Приведён результат анализа количества проектов в GitHub, написанных на разных кроссплатформенных технологиях. По результатам анализа KMM активно увеличивается в количестве новых проектов.
Ключевые слова: Kotlin Multiplatform, мобильная разработка, Android, IOS, Kotlin, кроссплатформенная разработка.
В настоящее время мобильная разработка включает в себя разработку приложений не только для смартфонов, но и для носимой электроники, смарт-телевизоров, электронных книг, современных автомобилей и т.д. Вместе с ростом числа мобильных устройств растёт и число пользователей [1]. Это накладывает особые требования к разработке мобильных приложений. Пользователи должны получать единообразный пользовательский опыт (UX) при взаимодействии с приложением вне зависимости от платформы и при этом приложения должны работать исправно на разных платформах.
Кроссплатформенный подход к разработке приложений позволяет создавать единую кодовую базу для приложений, которые могут работать под управлением различных операционных систем (Android, IOS, Windows) [2]. Среди популярных технологий, позволяющих реализовать такие технологии, есть React Native, Flutter и Kotlin Multiplatform [3]. Основными функциями таких технологий являются: абстрагирование от платформенной специфики, унификация интерфейсов программирования приложений (API), обеспечение совместимости с различными операционными системами (ОС) и их версиями.
Kotlin Multiplatform (KMM) является довольно молодой технологией, в сравнении с другими кроссплат-форменными технологиями, как React Native и Flutter. KMM впервые был анонсирован в 2017 году на конференции KotlinConf 2017 под названием Kotlin Multiplatform Project [4]. Команда разработчиков JetBrains в 2020 году с выходом альфа-версии поменяла название продукта на Kotlin Multiplatform Mobile и сфокусировалась на улучшении наиболее часто используемой функции - написании совместного кода для двух самых популярных ОС в мобильных устройствах - Android и IOS. В 2023 году название поменялось на Kotlin Multiplatform [5]. С мая 2024 года компания Google, владелец операционной системы Android, объявила об официальной поддержке KMM для кроссплатфор-менной разработки [6].
Основная часть. Компании, разрабатывающие программное обеспечение, для успешного запуска и удержания пользователей должны учитывать сильные стороны у конкурентов и предлагать для своих пользователей такой же уровень качества или лучше. С активным импортозамещением программ в российском рынке это является актуальным. Для компаний-разработчиков отечественных программ, от которых могут зависеть жизни и здоровье людей, как, например для ИТ-решений в гражданской авиации, особенно важно уделить внимание на их стабильность [7]. Кроссплатформенные разработка позволяет объединить разработку для нескольких платформ в одну кодовую базу.
В табл. 1 представлены преимущества и недостатки KMM в сравнении с его конкурентами [8].
Таблица 1
Преимущества и недостатки KMM_
№ п/п Преимущества Недостатки
1 Поддержка языка разработки Kotlin. Так как KMM поддерживает язык программирования Kotlin - основной язык разработки для Android-разработчиков, то для них не надо изучать новый язык. Новая технология. КММ вышла совсем недавно, поэтому библиотек, особенно кроссплатформенных, на данной технологии ещё мало, но уже есть такие основные библиотеки, как Ю;ог, ЗрЬБе^М/Яеа^ и т.д.
2 Нативный UI для каждой платформы. Для отрисовки элементов пользовательского интерфейса Kotlin Multiplatform использует декларативный фреймворк Compose Multiplatform. Это позволяет сделать UI приложений на KMM более естественными и приятными для пользователей, чем «рисование» единого UI для всех платформ (например, как во Flutter). Большая кодовая база приложений. Использование нативного Ш для каждой платформы требует примерно в два раза больше кода для пользовательского интерфейса, чем у конкурентов.
В 2021 году команда JetBrains, создатель KMM, провела серию опросов среди разработчиков. Первый опрос посвящён выяснению для каких платформ разработчики используют технологию КММ [9]. На рис. 1 представлена круговая диаграмма, построенная на результатах этого опроса.
Согласно опросу 56,7% разработчиков используют KMM для кроссплатформенной мобильной разработки (Android и IOS), 8,9% разработчиков используют в backend и web сфере, 6,6% используют для кроссплатформенной и web разработки, 4,1% - для кроссплатформенной и backend-разработки, 4,4% - только для разработки десктопных приложений. Кроссплатформенные приложения и приложения для носимых устройств разрабатывают только 2.5% разработчиков. 12.1% используют KMM для всех доступных платформ. Оставшиеся 4.7% разрабатывают для платформ, не перечисленных в опросе. [9]
Среди всех платформ в 2021 году разработка для Android и IOS являлась самым популярным вариантом использования KMM.
Рис. 1. Диаграмма использования КММ по платформам. Источник: составлено авторами на основе опроса
от JetBrains [9]
На рис. 2 представлена столбчатая диаграмма, построенная на результатах следующего опроса от Jet-Brains, который показывает какая доля из общей кодовой базы проектов была написана с использованием KMM. Согласно нему, большинство разработчиков переиспользуют 50-70% кодовой базы проекта с помощью KMM. Также из данного опроса следует вывод, что почти половина (47,5%) разработчиков имеют на своих проектах более половины кодовой базы на KMM, что свидетельствует о гибкости и совместимости KMM с другими технологиями. [9]
30,7%
21,7%
18,7%
lili.
<10% 10-30% 30-50% 50-70% 70-90% >90% Доля KM.VI в проекте
Рис. 2. Диаграмма использования общего кода на КММ. Источник: составлено авторами на основе опроса
от JetBrains [9]
Быстрое внедрение новой технологии позволяет сократить время разработки и быстрее выпустить продукт на рынок. На рис. 3 представлена диаграмма, отображающие результаты другого опроса от JetBrains, показывающего время, которое затратили разработчики на миграцию своих проектов на KMM. Согласно опросу, для 21,6% опрошенных миграция заняла менее 1 месяца, для 33,6% - от 1 до 3 месяцев, для 31,9% - от 3 до 6 месяцев, для 11,2% - от 6 до 12 месяцев и для 1,7% внедрение заняло более года. [9]
Для 85.3% опрошенных миграция проектов заняла не более 6 месяцев. Относительно быстрое внедрение говорит о его простоте и удобстве использования.
40,0% 35,0% * 30,0% 1 25,0%
I, 20,0%
с
% 15,0% ч
Щ 10,0% 5,0% 0,0%
Брсми миграции
35,0% 30,0% 3 25,0%
X
г
= 20,0% I 15,0%
к
Д ю.0%
5,0%
0,0%
менее I месяца 1-3 месяца 3-6 месяцев 6-12 мееяцев более года
Рис. 3. Диаграмма времени миграции на KMM. Источник: составлено авторами на основе опроса
от JetBrains [9]
В 2024 году компанией Snapp Mobile, специализирующейся на разработке программного обеспечения для мобильных устройств, была проведена собственная серия опросов среди разработчиков [10]. В них участвовали 319 разработчиков со всего мира.
Результат первого опроса, посвященный платформам, для которых разрабатывается код с использованием KMM, представлен на рис. 4. Для IOS разрабатывают 32% опрошенных, для Android - 34%, JVM - 15%, JavaScript -7%, Native - 6%, Web - 6%.
66% опрошенных используют KMM для разработки под IOS и Android. Кроссплатформенная мобильная разработка остаётся главной областью применения KMM.
Несмотря на активное развитие, у технологии есть ряд недостатков. Об этом свидетельствует следующий опрос [10], где показано с какими трудностями сталкивались разработчики во время работы с KMM. Результат данного опроса представлен на диаграмме, представленной на рис. 5. На первых местах находятся проблемы интеграции и сложность отладки - по 21%. Далее идут проблемы с малым количеством документации и ограниченной поддержкой сторонних библиотек - по 19%. Скорость сборки является проблемой для 16% разработчиков. 4% опрошенных разработчиков сталкивались с, проблемами тестирования приложений, сложностями конфигурации проекта и сложностями сборки проекта.
JVM
15,0%
Рис. 4. Диаграмма использование КММ по платформам. Источник: составлено авторами на основе опроса
от Snapp Mobile [10]
Проблемы интеграции Сложность дебаггинга Ограниченная поддержка сторонних библиотек Малое количество документации Скорость сбор к [f Другое
21% 21%
¡9% 19%
16%
0%
4% 5%
10% 15%
ДО'Ш ! > ¡ 1111 > i i К- Н IП. L \
20%
25%
Рис. 5. Диаграмма проблем при работе с КММ. Источник: составлено авторами на основе опроса
от Snapp Mobile [10]
Следующий опрос от Snapp Mobile посвящён ожидаемым улучшениям KMM, который представлен на диаграмме, представленной на рис. 6 [10]. Разработчики в будущих релизах ожидают улучшения инструментов разработки - 27%, улучшения совместимости между платформами (Android, IOS, Web) - 25%, улучшения документации и обучающих пособий - 22%, улучшения производительности - 18%, а также улучшенную совместимость со Swift и другими системами - 8%.
Улучшенная ir нетруден тал ьная поддержка
Улучшенная совместимость с конкретными платформами
Больше документации и учебных пособий Улучшенная произвол и тел мтость Другое
27%
0%
25%
22%
5%
18%
10% 15% 20%
До, [и опрошенных
25%
30%
Рис 6. Диаграмма ожидаемых улучшений КММ. Источник: составлено авторами на основе опроса
от Snapp Mobile [10]
Следующий опрос Snapp Mobile посвящён участию разработчиков в улучшении KMM [10]. На рис. 7 представлена круговая диаграмма, посвящённая данному опросу. Согласно нему, 51% разработчиков вносят вклад в open-source проекты и участвуют в сообществе KMM, тем самым улучшая платформу. Вовлечённость разработчиков и их заинтересованность в улучшении KMM способствует к более стабильной, удобной и функциональной платформе.
Рис. 7. Диаграмма участия разработчиков в развитии KMM. Источник: составлено авторами
на основе опроса от Snapp Mobile [10]
В табл. 2 приведен ряд крупных международных и российских компаний, использующих KMM. [11]
Таблица 2
Компании, использующие KMM_
№ п/п Наименование компаний Описание
1 Forbes Финансово-экономический журнал, использует для своих мобильных приложений KMM, переиспользуя более 80% внутреннего кода между Android и IOS.
2 McDonald's Сеть ресторанов быстрого питания. Использует KMM для своего глобального мобильного приложения.
3 Netflix Технологическая компания, снимает оригинальный развлекательный контент и имеет стриминговый сервис фильмов и сериалов, использует KMM для своего приложения Prodicle.
4 Philips Использует KMM для своей мобильной платформы HealthSuite
5 Autodesk Разработчик программных продуктов для архитекторов, инженеров и конструкторов.
6 VMware Разработчик программного обеспечения для виртуализации.
7 Memrise Учебная платформа.
8 Яндекс Крупная российская IT компания. Использует KMM на множестве своих проектов, например, в «Яндекс Картах»
9 Лемана ПРО (Леруа Мерлен) Сеть строительных магазинов. Использует KMM для своего мобильного приложения на российском рынке.
Яндекс, которая является крупнейшей компанией на российском рынке в сегменте информационных технологий, начала использовать KMM с 2021 года с разработки единой кодовой базы для функции показа информации о концертах, выставках и других событий в приложении Яндекс.Карты [12]. Лемана ПРО с 2021 года мигрировала своё мобильное приложение с нативной разработки на технологию KMM [13].
Благодаря преимуществам KMM, наблюдается тенденция, что все больше и больше компаний пробуют использовать его на своих проектах.
В табл. 3 представлен результат анализа количества новых проектов на платформе GitHub, написанных на React Native, Flutter и KMM за период с 2021 по 2024 годы.
Таблица 3
Количество новых кроссплатформенных проектов
Технологии кроссплатформенной разработки ^ 2021 2022 2023 2024
React Native 45900 43500 54600 57500
Flutter 95600 82800 77300 69500
KMM 549 688 1800 2000
Видно, что лидерами являются Flutter и React Native, но также заметно, насколько стремительно увеличивается популярность KMM. С каждым годом всё больше и больше людей пробуют его в своих проектах.
Выводы. Подводя итоги, можно увидеть, что KMM в кроссплатформенной мобильной разработке активно развивается и улучшается. Всё больше и больше компаний пробуют использовать его в своих проектах и также быстро растёт его использование в проектах с открытым исходным кодом. Лёгкость и быстрота перехода с нативной Android разработки и активное развитие KMM делают его хорошим решением для современной кроссплатформенной мобильной разработки. Участие разработчиков, с другой стороны, в сообществе вносит свой вклад на развитие и улучшение платформы, а также по результатам анализа KMM, можно сделать вывод, что количество новых проектов стремительно увеличивается в количестве новых проектов.
Однако, несмотря на все преимущества, KMM не лишён недостатков. Среди них преобладают сложности отладки, сложности интеграции и малое количество документации. Тем не менее, технология явно имеет все перспективы выбиться в лидеры в кроссплатформенной мобильной разработке.
Список литературы
1. Петросян Л.Э., Гусев К.В. Разработка мобильных приложений на языке Kotlin: учебное пособие для вузов. СПб: Лань, 2024. 104 с.
2. Гудимов А.Г. Обзор возможностей кроссплатформенной разработки приложений // Развитие современной науки и образования: актуальные вопросы, достижения и инновации. Пенза: МЦНС, 2022. С. 36-38.
3. Адещенко К.Р. Инструменты кроссплатформенной разработки: сравнительный анализ // Актуальные исследования. 2024. №12 (194). С. 41-49.
4. Update on the Name of Kotlin Multiplatform // JetBrains Blog [Электроный ресурс] URL: https://blog.ietbrains. com/kotlin/2023/07/update-on-the-name-of-kotlin-multiplatform (дата обращения: 28.10.2024).
5. Kotlin Multiplatform Mobile (KMM) превращается в Kotlin Multiplatform (KMP) // Apptractor [Электроный ресурс] URL: https://apptractor.ru/info/news/kotlin-multiplatform-mobile-kmm-prevraschaetsya-v-kotlin-multiplatform-kmp.html (дата обращения: 05.11.2024).
6. Android Support for Kotlin Multiplatform (KMP) to Share Business Logic Across Mobile, Web, Server, and Desktop // Android Developers Blog [Электроный ресурс] URL: https://android-developers.googleblog.com/2024/05/android-support-for-kotlin-multiplatform-to-share-business-logic-across-mobile-web-server-desktop.html (дата обращения: 05.11.2024).
7. Раджапов М.А., Сысолятина П.А., Гукасян Г.К. Анализ отечественных ИТ-решений в гражданской авиации // X всероссийская научно-техническая конференция «Фундаментальные и прикладные аспекты компьютерных технологий и информационной безопасности». Таганрог: 2023. С. 253-255.
8. The State of Kotlin Multiplatform // Habr [Электроный ресурс] URL: https://habr.com/ru/companies/usetech/articles/747926 (дата обращения: 30.09.2024).
9. Results of the Kotlin Multiplatform Survey Q1-Q2 2021 // JetBrains [Электроный ресурс] URL: https://blog.jetbrains.com/kotlin/2021/10/multiplatform-survey-q1-q2-2021 (дата обращения: 30.09.2024).
10. Introducing the Kotlin Multiplatform Developer Survey 2024 by Snapp Mobile // Snappmobile [Электроный ресурс] URL: https://www.snappmobile.io/kmp (дата обращения: 30.09.2024).
11. Case studies // JetBrains [Электроный ресурс] URL: https://www.jetbrains.com/help/kotlin-multiplatform-dev/case-studies.html (дата обращения: 30.09.2024).
12. Готовим Большую Фичу™ на Kotlin Multiplatform. Доклад Яндекса // Habr [Электроный ресурс] URL: https://habr.com/ru/companies/yandex/articles/542454 (дата обращения: 05.11.2024).
13. КММ на практике или выбор кроссплатформенного фреймворка для «Леруа Мерлен» // Apptractor [Электроный ресурс] URL: https://apptractor.ru/info/articles/kmm-na-praktike.html (дата обращения: 05.11.2024).
Раджапов Мирзиёд Адхам угли, студент, radzapovm9@gmail. com, Россия, Москва, Российский технологический университет МИРЭА,
Чемухин Константин Дмитриевич, студент, [email protected], Россия, Москва, Российский технологический университет МИРЭА,
Петросян Лусинэ Эдуардовна, канд. экон. наук, доцент, Petrosyan@mirea. ru, Россия, Москва, Российский технологический университет МИРЭА
ANALYZING THE PROSPECTS OF KOTLIN MULTIPLATFORM FOR CROSSPLATFORM MOBILE DEVELOPMENT
M.A. Radjapov, K.D. Chemukhin, L.E.P etrosyan
The purpose of the article is to analyze the prospects of using KMM cross-platform development technology from JetBrains in the context of mobile development. The advantages and disadvantages of KMM were identified. The research among developers who used KMM from 2021 to 2024 was analyzed. The result of analyzing the number of projects in GitHub written on different cross-platform technologies was presented. According to the results of the analysis, KMM is actively increasing in the number of new projects.
Key words: Kotlin Multiplatform, mobile development, Android, IOS, Kotlin, cross-platform development.
Radjapov Mirziyod Adkham ugli, student, radzapovm9@gmail. com, Russia, Moscow, Russian Technological University MIREA,
Chemukhin Konstantin Dmitrievich, student, [email protected], Russia, Moscow, Russian Technological University MIREA,
Petrosyan Lusine Eduardovna, candidate of economical sciences, docent, [email protected], Russia, Moscow, Russian Technological University MIREA