Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: Научного журнала «Студенческий» № 12(308)

Рубрика журнала: Информационные технологии

Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5, скачать журнал часть 6, скачать журнал часть 7

Библиографическое описание:
Кудекова Д. СРАВНИТЕЛЬНЫЙ АНАЛИЗ АРХИТЕКТУРНЫХ ПОДХОДОВ В РАЗРАБОТКЕ ANDROID-ПРИЛОЖЕНИЙ // Студенческий: электрон. научн. журн. 2025. № 12(308). URL: https://sibac.info/journal/student/308/365902 (дата обращения: 05.05.2025).

СРАВНИТЕЛЬНЫЙ АНАЛИЗ АРХИТЕКТУРНЫХ ПОДХОДОВ В РАЗРАБОТКЕ ANDROID-ПРИЛОЖЕНИЙ

Кудекова Дияра

студент, 4 курса «Телематика», Казахстанско-Немецкий Университет (DKU)

Казахстан, г. Алматы

Савельева Елена Анатольевна

научный руководитель,

канд. тех. наук, доц., Казахстанско-Немецкий Университет (DKU)

Казахстан, г. Алматы

COMPARATIVE ANALYSIS OF ARCHITECTURAL APPROACHES IN ANDROID APPLICATION DEVELOPMENT

 

Diyara Kudekova

student, 4th year of the program "Telematics", Kazakh-German University (DKU)

Kazakhstan, Almaty

Elena Savelyeva

scientific supervisor, PhD, associate professor, Kazakh-German University (DKU)

Kazakhstan, Almaty

 

АННОТАЦИЯ

В данной статье рассматриваются различные архитектурные подходы, применяемые в разработке Android-приложений, включая MVC, MVP, MVVM, VIPER и Clean Architecture. Проведен анализ их ключевых характеристик, таких как удобство сопровождения, тестируемость, гибкость и повторное использование кода. Особое внимание уделено сочетанию MVVM с Clean Architecture как наиболее сбалансированному решению, обеспечивающему четкое разделение логики, снижение связанности компонентов и упрощение тестирования. Однако подчеркивается, что выбор архитектуры должен основываться на специфике проекта и его функциональных требованиях, так как универсального решения, подходящего для всех случаев, не существует.

ABSTRACT

This article discusses various architectural approaches used in Android application development, including MVC, MVP, MVVM, VIPER, and Clean Architecture. Their key characteristics, such as maintainability, testability, flexibility, and code reuse, are analyzed. Particular attention is paid to the combination of MVVM with Clean Architecture as the most balanced solution, providing a clear separation of logic, reducing component coupling, and simplifying testing. However, it is emphasized that the choice of architecture should be based on the specifics of the project and its functional requirements, since there is no universal solution suitable for all cases.

 

Ключевые слова: архитектура программного обеспечения, мобильная разработка, Android-приложения, MVC, MVP, MVVM, VIPER, Clean Architecture, сравнительный анализ архитектур, программирование Android, разработка мобильных приложений.

Keywords: software architecture, mobile development, Android applications, MVC, MVP, MVVM, VIPER, Clean Architecture, comparative analysis of architectures, Android programming, mobile application development.

 

ВВЕДЕНИЕ

Мобильные приложения становятся неотъемлемой частью современной жизни, а их востребованность продолжает расти, особенно в экосистемах Android и IOS. С увеличением популярности мобильных решений возрастает и значение архитектурных принципов программного обеспечения, поскольку они играют ключевую роль в процессе разработки. Понимание факторов, способствующих быстрому распространению архитектурных подходов в мобильной среде, а также изучение их концепций и преимуществ, позволяет оптимизировать создание программных продуктов и повысить их качество.

Программная архитектура выступает в качестве основы для организации системы, определяя ее структуру и принципы функционирования. Она позволяет разрабатывать гибкие, масштабируемые приложения и повторно использовать модули в разных проектах, снижая затраты на разработку. Структура архитектуры включает в себя программные компоненты и связи между ними. Ошибки в архитектурных решениях могут привести к серьезным проблемам на этапе сопровождения продукта, поскольку внесение изменений в неподходящую архитектуру требует значительных временных и финансовых затрат.

Выбор архитектурного шаблона в мобильной разработке зависит от особенностей конкретного проекта, так как не существует универсального подхода для всех приложений. Разные модули внутри одной системы могут опираться на различные архитектурные концепции. Однако разработчики стремятся использовать проверенные архитектурные решения, среди которых наиболее распространены MVC, MVP, MVVM, VIPER и Clean Architecture. Эти шаблоны позволяют систематизировать код, снизить его сложность, улучшить тестируемость и упростить процесс внесения изменений.

В рамках данного исследования будет рассмотрена применимость этих архитектурных паттернов в разработке Android-приложений. Основное внимание будет уделено их влиянию на ключевые характеристики программного обеспечения, такие как удобство тестирования, степень модульности и простота сопровождения.

АРХИТЕКТУРНЫЕ РЕШЕНИЯ В МОБИЛЬНОЙ РАЗРАБОТКЕ

Различные архитектурные шаблоны предлагают свои способы организации кода, что влияет на его тестируемость, уровень связанности компонентов и простоту модификации.

Одним из традиционных решений является MVC (Model-View-Controller), который благодаря своей простоте широко применяется в небольших проектах. Однако при увеличении сложности приложения тесная связь между компонентами может затруднять поддержку и масштабируемость. В качестве альтернативы используются MVP (Model-View-Presenter) и MVVM (Model-View-ViewModel), которые позволяют четко разделять бизнес-логику и интерфейс, упрощая тестирование и делая систему более устойчивой к изменениям.

Для создания сложных и масштабируемых приложений разработчики прибегают к архитектурам VIPER и Clean Architecture. Они обеспечивают высокую модульность и четкую организацию взаимодействия между компонентами, что делает код легко поддерживаемым и расширяемым. Важно учитывать, что каждая архитектура имеет свои особенности, и их выбор должен основываться на потребностях конкретного проекта.

Кроме архитектурных решений, необходимо учитывать влияние операционной системы и платформенных особенностей. Android, основанный на модифицированном ядре Linux, предоставляет широкие возможности для разработки, но в то же время накладывает определенные ограничения. Например, платформа использует виртуальную машину Dalvik (а в современных версиях — ART), что влияет на производительность и управление памятью. Также существует проблема фрагментации версий Android, когда разные устройства работают на различных версиях ОС, что усложняет поддержку приложений.

Таким образом, выбор архитектурного подхода в мобильной разработке определяется множеством факторов: особенностями проекта, требованиями к тестируемости, гибкостью кода и возможностями платформы. В последующих разделах будут рассмотрены наиболее распространенные архитектурные шаблоны и их влияние на разработку мобильных приложений.

МЕТОДОЛОГИЯ

Каждая архитектурная модель предлагает свое видение организации взаимодействия между компонентами приложения.

Один из классических подходов — архитектура Model-View-Controller (MVC), которая разделяет систему на три основных уровня: модель(Model), отвечающую за данные и бизнес-логику, представление(View), занимающееся пользовательским интерфейсом, и контроллер(Controller), координирующий взаимодействие между ними. Такой подход широко применяется благодаря своей простоте и понятной структуре, что делает его удобным для небольших проектов. Однако при увеличении сложности приложения MVC может привести к сильной связанности компонентов, особенно в среде Android, где активити и фрагменты часто выполняют сразу несколько функций. Из-за этого масштабируемость системы может быть затруднена, а внесение изменений становится сложнее.

В качестве решения этих проблем была предложена архитектура Model-View-Presenter (MVP), которая по-прежнему использует разделение на модель и представление, но вводит дополнительный слой — представитель(Presenter). Он берет на себя управление логикой интерфейса, позволяя представлению взаимодействовать с пользователем, а модели — обрабатывать данные. Такое распределение ролей делает код более удобным для тестирования, так как логика работы UI становится независимой от платформенных компонентов Android. Однако с ростом функциональности представитель может разрастаться, что усложняет поддержку и организацию кода.

Другой популярный подход — Model-View-ViewModel (MVVM), который был разработан для еще более четкого разделения пользовательского интерфейса и бизнес-логики. В этой архитектуре модель отвечает за обработку данных, представление — за их отображение, а модель представления(ViewModel) связывает их между собой, позволяя управлять данными без прямого взаимодействия между моделью и представлением. Одним из ключевых преимуществ MVVM является его удобство в тестировании и сниженная зависимость интерфейса от логики приложения, что особенно полезно в больших проектах. Однако, как и в случае MVP, увеличение функциональности может привести к разрастанию ViewModel, усложняя ее сопровождение.

Для построения сложных систем, требующих высокой модульности, применяется Clean Architecture. Этот подход строится вокруг строгого разделения кода на несколько уровней, где внутренние бизнес-правила отделены от деталей реализации, таких как базы данных и пользовательский интерфейс. В основе этой архитектуры лежат сущности, которые содержат ключевые бизнес-правила, сценарии использования, описывающие взаимодействие пользователя с системой, а также адаптеры, преобразующие данные между разными уровнями. Clean Architecture делает код гибким и устойчивым к изменениям, но ее внедрение требует больших временных затрат и более сложного проектирования.

Еще один архитектурный шаблон, ориентированный на построение модульных систем, — VIPER (View-Interactor-Presenter-Entity-Router). Этот подход представляет собой расширенную версию MVP, где каждый модуль приложения разделяется на пять уровней, выполняющих четко определенные задачи. Представление отвечает за отображение данных, интерактор(Interactor) содержит бизнес-логику, представитель управляет взаимодействием между компонентами, сущность(Entity) представляет модели данных, а роутер(Router) контролирует навигацию между экранами. Подобная организация делает код удобным для сопровождения и тестирования, но требует написания большого количества вспомогательных классов, что увеличивает время разработки.

Таким образом, различные архитектурные подходы позволяют адаптировать процесс разработки к требованиям конкретного проекта. Если небольшие приложения могут эффективно использовать MVC, то более сложные проекты требуют структурных решений вроде MVP, MVVM, Clean Architecture или VIPER. Разработчики выбирают архитектуру, исходя из требований к тестируемости, модульности и удобства сопровождения, что делает этот выбор одним из ключевых этапов проектирования мобильных приложений.

ОБСУЖДЕНИЕ

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

Использование MVC в Android-приложениях может привести к тому, что activity и фрагменты начинают выполнять не только функции пользовательского интерфейса, но и часть логики, что усложняет поддержку и рефакторинг кода. По мере увеличения числа функций и усложнения логики приложения размер контроллера растет, что делает код менее управляемым и затрудняет внесение изменений.

MVP решает часть этих проблем, так как вводит дополнительный слой представителя, который берет на себя всю логику взаимодействия между моделью и представлением. Это делает код более структурированным и удобным для тестирования. Однако, если приложение становится более сложным, презентатор может разрастаться до огромного класса с множеством методов, что усложняет его поддержку и понимание.

В отличие от MVP, VIPER предлагает более четкое разделение логики, выделяя отдельные уровни для обработки данных, взаимодействия с пользователем и управления навигацией. Этот подход делает код более модульным и удобным для расширения, но в то же время увеличивает сложность разработки. Передача данных через презентаторы может привести к лишним зависимостям между компонентами, что нарушает принцип единой ответственности. Кроме того, освоение VIPER требует больше времени, так как эта архитектура предполагает работу с большим числом вспомогательных классов.

Использование MVVM упрощает связь между моделью и пользовательским интерфейсом, что делает код более чистым и удобным в сопровождении. Однако, если приложение становится крупным, модель представления может становиться перегруженной, что затрудняет её поддержку. В таких случаях сочетание MVVM с Clean Architecture позволяет четко распределить обязанности между компонентами, минимизируя логику в представлении и передавая большую часть вычислений модели. Такой подход объединяет гибкость MVP и преимущества привязки данных, что делает его особенно полезным для Android-разработки.

ЗАКЛЮЧЕНИЕ

Выбор архитектурного подхода играет ключевую роль в процессе разработки мобильных приложений. В ходе анализа были рассмотрены различные архитектурные модели с точки зрения их тестируемости, структурной связанности и удобства сопровождения. Каждая из них обладает своими сильными и слабыми сторонами, однако комбинация MVVM и Clean Architecture показала наилучшие результаты, поскольку сочетает в себе четкое разделение логики и гибкость, а также решает ограничения, присущие MVVM.

Тем не менее, нельзя утверждать, что MVVM в сочетании с Clean Architecture является универсальным решением для всех проектов. Каждый случай индивидуален, и выбор архитектуры должен основываться на специфике приложения, его функциональных требованиях и масштабируемости. Оптимальный подход определяется задачами, которые необходимо решить в рамках конкретного проекта.

 

Список литературы:

  1. Чубенко М.Г., Смирнова Ю.А. Анализ мобильных приложений и мобильного рынка // Вестник науки. 2020. №6 (27). URL: https://cyberleninka.ru/article/n/analiz-mobilnyh-prilozheniy-i-mobilnogo-rynka (дата обращения: 19.03.2025).
  2. Григорьев М.С. Технологии программирования мобильных приложений / М.С. Григорьев. – Екатеринбург: Уральский университет, 2023.
  3. Андреев В.П. Современные технологии мобильной разработки / В.П. Андреев. — Новосибирск: СибАК, 2024.
  4. Соколова В.В. Разработка мобильных приложений: учебное пособие / В.В. Соколова. – М.: Юрайт, 2022.
  5. Петров С.А. Мобильная разработка: основы создания приложений / С.А. Петров. – СПб.: Питер, 2023.
  6. Шкарин Е.А. Архитектура VIPER для разработки мобильных приложений // Научно-образовательный журнал для студентов и преподавателей «StudNet» №2/2022. URL: https://cyberleninka.ru/article/n/arhitektura-viper-dlya-razrabotki-mobilnyh-prilozheniy/viewer (дата обращения: 19.03.2025).
  7. Маринин А.К. Выбор архитектуры для мобильных приложений // Известия Кабардино-Балкарского научного центра РАН Том 26 №5 2024. URL: https://cyberleninka.ru/article/n/vybor-arhitektury-dlya-mobilnyh-prilozheniy (дата обращения: 19.03.2025).

Оставить комментарий