'
Научный журнал «Вестник науки»

Режим работы с 09:00 по 23:00

zhurnal@vestnik-nauki.com

Информационное письмо

  1. Главная
  2. Архив
  3. Вестник науки №4 (73) том 3
  4. Научная статья № 62

Просмотры  67 просмотров

Дындин А.В., Новиков П.С.

  


ИССЛЕДОВАНИЕ ПРИМЕНЕНИЯ KOTLIN MULTIPLATFORM И JETPACK COMPOSE MULTIPLATFORM В МОБИЛЬНОЙ РАЗРАБОТКЕ *

  


Аннотация:
в данной статье проводится исследование применения Kotlin Multiplatform и Jetpack Compose Multiplatform в мобильной разработке. Рассматривается возможность использования единой кодовой базы для создания кроссплатформенных приложений, что позволяет разработчикам унифицировать процессы разработки и поддержки программного обеспечения на различных платформах, включая Android и iOS. Статья описывает основные концепции, преимущества и технические аспекты Kotlin Multiplatform и Compose Multiplatform, предоставляя анализ их функциональности через механизмы такие как "expect/actual" и Dependency Injection. Также приводятся примеры кода, что подчеркивает упрощение процесса создания UI. В заключение описываются текущие тренды и потенциальное будущее мультиплатформенных технологий в индустрии программного обеспечения.   

Ключевые слова:
кроссплатформенная разработка, мультиплатформенные приложения, производительность приложений, унификация кодовой базы   


Быстрая эволюция мобильных технологий и возрастающий спрос на универсальные программные решения породили необходимость в разработке фреймворков и платформ, которые могли бы одновременно обслуживать несколько систем. Kotlin Multiplatform (KMP) и Jetpack Compose Multiplatform выступают ключевыми технологиями в этом направлении, предлагая уникальную возможность разработки кросс-платформенных приложений с использованием единой кодовой базы. Это не только сокращает время и ресурсы, затрачиваемые на разработку и поддержку приложений, но и улучшает консистенцию и качество продуктов. Цель исследования – анализ применения Kotlin Multiplatform и Jetpack Compose Multiplatform для мобильной разработки. Особое внимание уделяется их способности упростить создание мультиплатформенных приложений, обеспечивая высокую производительность и оптимальное взаимодействие с пользователем на различных устройствах. Исследование направлено на выявление основных преимуществ, технических аспектов и потенциальных ограничений данных технологий, а также их влияние на современные подходы в разработке программного обеспечения. Это исследование предоставит ценные инсайты разработчикам, стремящимся оптимизировать процессы создания программных продуктов и улучшить их качество с помощью мультиплатформенных технологий.Актуальность. В последние годы мультиплатформенная разработка набирает популярность, что способствовано стремлению к экономии ресурсов и ускорению процесса вывода продуктов на рынок. Значительный вклад в эту область вносят компании Google и JetBrains через разработку фреймворков, таких как Flutter, Jetpack Compose и Kotlin Multiplatform, которые упрощают создание приложений, используя единую кодовую базу для всех платформ.Google с Jetpack Compose Multiplatform и JetBrains с Kotlin Multiplatform предоставляют инструменты для унификации кода и интерфейсов, сокращая время разработки и повышая качество продуктов. Jetpack Compose облегчает разработку UI, предлагая декларативный способ описания интерфейсов, который компилируется в нативный код. Kotlin Multiplatform позволяет использовать общую бизнес-логику на различных платформах, сокращая количество ошибок и дублирования кода.Такие технологии значительно влияют на индустрию, делая мультиплатформенную разработку не только экономически выгодной, но и технологически продвинутой, что подтверждает важность их дальнейшего изучения и развития.Kotlin Multiplatform. Kotlin Multiplatform (KMP) представляет собой мощный инструмент для разработки мультиплатформенных приложений, позволяющий разработчикам использовать один и тот же код на различных платформах, включая Android, iOS, Web и Desktop. Основная идея KMP заключается в том, что он позволяет писать общую логику на Kotlin, которая компилируется в нативный код для каждой платформы, обеспечивая высокую производительность и интеграцию с платформо-специфическими функциями, что является значительным преимуществом перед другими кроссплатформенными инструментами, которые могут сталкиваться с ограничениями производительности и доступности функций.Использование KMP значительно упрощает процесс портирования кода с Android на другие платформы. Благодаря возможности разделять общую логику и платформо-специфический код, разработчики могут легко адаптировать свои приложения под нужные платформы без необходимости переписывания кода с нуля. Это облегчает поддержку и развитие приложений, сокращает время на разработку и тестирование.В проектах используются такие модули как:commonMain – управляет бизнес-логикой и UI компонентами, которые могут быть переиспользованы на любой платформеandroidMain, iosMain и подобные – платформо-специфичные модули, которые адаптируют логику и интерфейсы к особенностям и требованиям конкретных платформ, используя нативное API и библиотеки для оптимальной производительности и интеграции.Один из ключевых моментов при использовании KMP – это возможность абстрагирования платформо-специфического кода через механизмы expect и actual. Эти механизмы позволяют разработчикам объявлять ожидаемые (expected) интерфейсы или функции, которые должны быть реализованы для каждой целевой платформы (actual). Использование Dependency Injection (DI) может помочь управлять этими зависимостями эффективно, адаптируя код под конкретную платформу без изменения бизнес-логики.Dependency Injection (DI) — это программный паттерн проектирования, используемый для управления зависимостями между компонентами в приложениях. Основная идея DI заключается в том, чтобы уменьшить связность между компонентами приложения, что облегчает управление зависимостями и усиливает модульность системы.Основные компонентыexpect declaration - определяет общий интерфейс или функцию, которая будет специализирована для каждой платформы.actual implementation - специфичные реализации для каждой платформы, соответствующие объявленным expect.Сначала определим expect класс, который объявляет функцию загрузки данных.Рис. 1. Объявление класса запроса в сеть на KMP.Затем предоставим платформо-специфические реализации этой функции для Android и iOS.Рис. 2. Реализация сетевого запроса на платформах Android и iOS с использованием KMP.Теперь интегрируем эти реализации с системой DI для управления зависимостями, используя Kodein DI.Рис. 3. Использование Kodein DI для создания сетевого клиента.В этом примере NetworkClient определяется как expect класс с методом get, что позволяет абстрагировать детали реализации сетевых запросов на уровне платформы. Реализации для Android и iOS указываются как actual, с использованием платформо-специфических API.DI обеспечивает возможность внедрения зависимостей в компоненты приложения во время выполнения, что позволяет легко подменять реализации в зависимости от платформы, что особенно актуально при использовании KMP, так как разные платформы могут требовать разных реализаций для одних и тех же задач, например, обработки HTTP-запросов или работы с базой данных.Этот подход позволяет сохранять код чистым и модульным, а также упрощает тестирование и поддержку приложения, разделяя бизнес-логику и платформо-специфическую реализацию.Jetpack Compose Multiplatform. Compose Multiplatform, разработанный как расширение популярного фреймворка Jetpack Compose от Google, предоставляет разработчикам инструменты для создания декларативных UI, которые могут компилироваться и работать на нескольких платформах, включая Android, iOS, Web и Desktop. Это решение позволяет использовать единую кодовую базу для всех платформ, значительно сокращая объем работы по поддержке различных систем.В сравнении с другими UI фреймворками, такими как Flutter или React Native, Compose Multiplatform выделяется тем, что позволяет разработчикам использовать полный стек технологий Kotlin, обеспечивая бесшовную интеграцию с существующими проектами Kotlin и Jetpack Compose на Android.Compose Multiplatform значительно упрощает процесс создания кроссплатформенных пользовательских интерфейсов благодаря единому языку программирования (Kotlin) и единообразию API по всем платформам. Разработчики могут создавать компоненты интерфейса один раз и использовать их на любой платформе без необходимости адаптации под спецификации каждой из них.Для демонстрации использования Compose Multiplatform в сочетании с реализованным сетевым клиентом на Kotlin Multiplatform создадим Composable функцию, которая будет использоваться для отображения данных на экране.Помеченные @Composable аннотацией функции могут вызывать другие Composable функции, образуя иерархическое дерево UI компонентов, что улучшает модульность и повторное использование кода. Этот подход упрощает разработку интерфейса, делая его более интуитивно понятным и легко адаптируемым под динамичные данные, а также позволяет интерфейсу автоматически обновляться при изменениях состояний, позволяя приложению работать оптимальнее и эффективнее.Рис. 4. Реализация пользовательского интерфейса с использованием Jetpack Compose.На Android, MainActivity должна использовать функцию MainScreen() для отображения пользовательского интерфейса.Рис. 5. Отображение пользовательского интерфейса на Android.Для iOS, подход будет аналогичен, используя SwiftUI или другой метод для интеграции Kotlin Multiplatform и Compose Multiplatform.Рис. 6. Отображение пользовательского интерфейса на iOS.В этом примере был показан процесс интеграции мультиплатформенного сетевого запроса с пользовательским интерфейсом, созданным с помощью Compose Multiplatform. Используя Kodein DI для управления зависимостями и NetworkClient для выполнения HTTP-запросов, данная реализация демонстрирует гибкость и мощь KMP в создании кроссплатформенных приложений с реактивными пользовательскими интерфейсами.Скорость разработки. При создании концепта приложения разработчики старались максимально эффективно использовать KMP и Jetpack Compose Multiplatform для минимизации количества платформозависимого кода, после чего вывели данную диаграмму, показывающую процент затраченных усилий при использовании нативной разработки под Android и iOS в сравнении с применением вышеописанных технологий.Рис. 7. Уровень усилий, необходимых в различных сценариях, с использованием KMP, Jetpack Compose и без них.Выводы из данного раздела подчеркивают, что KMP с использованием Jetpack Compose Multiplatform предлагает разработчикам гибкое и мощное средство для создания надежных мультиплатформенных приложений, существенно упрощая процесс разработки и обеспечивая высокое качество конечного продукта благодаря возможности использования нативного кода и глубокой интеграции с платформами.Заключение. В ходе исследования было подтверждено, что Kotlin Multiplatform и Compose Multiplatform играют важную роль в современной разработке программного обеспечения. Эти технологии предоставляют разработчикам мощные инструменты для создания мультиплатформенных приложений, позволяя использовать единую кодовую базу для Android, iOS, Web и других платформ. Особенно выделяется возможность Compose Multiplatform упрощать разработку пользовательских интерфейсов, делая их визуально согласованными и функционально идентичными на различных устройствах.Текущие тренды показывают, что рынок все более и более склоняется к использованию мультиплатформенных решений, поскольку они обеспечивают значительное сокращение времени и ресурсов, необходимых для разработки и поддержки приложений. Kotlin Multiplatform и Compose Multiplatform выступают в этом контексте не только как инструменты для повышения эффективности, но и как средства для достижения большей гибкости в процессе разработки.Потенциальное влияние на индустрию разработки программного обеспечения огромно. Улучшение производительности и удобства разработки приложений, которые легко масштабируются и адаптируются к различным платформам и устройствам, может радикально изменить подходы к проектированию и разработке в IT-секторе. Со временем это приведет к более быстрому внедрению новых приложений на рынок, улучшению качества продуктов и, как следствие, к повышению удовлетворенности пользователей.В заключение, Kotlin Multiplatform и Compose Multiplatform представляют собой ключевые элементы современной разработки приложений, способствующие эволюции мультиплатформенных решений. Их роль и значение будут только расти по мере того, как всё больше компаний и разработчиков будут стремиться к оптимизации своих рабочих процессов и созданию высококачественных, универсальных приложений.   


Полная версия статьи PDF

Номер журнала Вестник науки №4 (73) том 3

  


Ссылка для цитирования:

Дындин А.В., Новиков П.С. ИССЛЕДОВАНИЕ ПРИМЕНЕНИЯ KOTLIN MULTIPLATFORM И JETPACK COMPOSE MULTIPLATFORM В МОБИЛЬНОЙ РАЗРАБОТКЕ // Вестник науки №4 (73) том 3. С. 410 - 421. 2024 г. ISSN 2712-8849 // Электронный ресурс: https://www.вестник-науки.рф/article/13971 (дата обращения: 05.11.2024 г.)


Альтернативная ссылка латинскими символами: vestnik-nauki.com/article/13971



Нашли грубую ошибку (плагиат, фальсифицированные данные или иные нарушения научно-издательской этики) ?
- напишите письмо в редакцию журнала: zhurnal@vestnik-nauki.com


Вестник науки СМИ ЭЛ № ФС 77 - 84401 © 2024.    16+




* В выпусках журнала могут упоминаться организации (Meta, Facebook, Instagram) в отношении которых судом принято вступившее в законную силу решение о ликвидации или запрете деятельности по основаниям, предусмотренным Федеральным законом от 25 июля 2002 года № 114-ФЗ 'О противодействии экстремистской деятельности' (далее - Федеральный закон 'О противодействии экстремистской деятельности'), или об организации, включенной в опубликованный единый федеральный список организаций, в том числе иностранных и международных организаций, признанных в соответствии с законодательством Российской Федерации террористическими, без указания на то, что соответствующее общественное объединение или иная организация ликвидированы или их деятельность запрещена.