Чистая архитектура в Android

В период роста технологий очень важно правильно выбрать архитектуру, если вы хотите создать фантастическую программу, вот почему это так важно. Если вы заинтересованы в создании приложений для Android с помощью чистой архитектуры, то вы попали в нужное место. Здесь мы не просто предоставляем вам руководство по MVVM (Model View-View model), но мы будем использовать MVVM для его подключения через чистую архитектуру. В этой статье мы рассмотрим, как использовать этот дизайн для создания несвязанного, протестированного и поддерживаемого кода. Прежде чем мы перейдем к нашему основному обсуждению, давайте сначала разберемся с MVVM.

МВВМ

Model-View-ViewModel (MVVM) — это структура разработки программного обеспечения, которая отделяет программную логику от элементов управления пользовательского интерфейса. Он был представлен двумя известными архитекторами Microsoft Кеном Купером и Джоном Госсманом в 2005 году. Кроме того, MVVM также известен как model-view-binder . Как и многие другие шаблоны проектирования, MVVM помогает в организации кода и разделении программ на модули, что упрощает и ускоряет разработку, обновление и повторное использование кода. Дизайн часто используется в Windows и программном обеспечении для презентаций веб-графики. Windows Presentation Foundation (WPF) работает на платформе Microsoft .NET и использует дизайн MVVM. MVVM также используется Silverlight, мультимедийным подключаемым модулем Microsoft WPF, сопоставимым с Интернетом.

Чистая архитектура в Android

Чистая архитектура — это метод разработки программного обеспечения, при котором вы должны быть в состоянии определить, что делает программа, просто взглянув на ее исходный код. Язык программирования, аппаратные и программные библиотеки, необходимые для достижения цели программы, должны стать устаревшими. Как и другие философии разработки программного обеспечения, чистая архитектура направлена на обеспечение экономически эффективного процесса разработки качественного кода, который работает лучше, его легче изменять и который имеет меньше зависимостей. Роберт С. Мартин создал чистую архитектуру и продвигал ее в своем блоге Uncle Bob в 2011 году.

Ну, вы, должно быть, задаетесь вопросом, почему архитектура необходима? Копаем внутрь. Целью всех архитектур является управление сложностью вашего приложения. В небольшом проекте вам, возможно, не нужно об этом беспокоиться, но это может спасти жизнь в более крупных проектах. Думаю, вы уже видели эту картинку.

Чистая архитектура в Android

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

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

Возможно, сейчас самое время понять, почему MVVM с чистой архитектурой?

MVVM с чистой архитектурой

Ваше представление, то есть (активность и фрагменты), отделено от вашей бизнес-логики с помощью MVVM. Для небольших проектов достаточно MVVM, но по мере роста вашей кодовой базы ваши ViewModels начинают раздуваться. Разделить обязанности становится сложно. В таких случаях MVVM с чистой архитектурой является подходящим выбором. Это делает шаг вперед в разделении обязанностей вашей кодовой базы. Логика действий, которые могут быть выполнены в вашем приложении, абстрагирована. Теперь чистую архитектуру также можно комбинировать с архитектурой Model-View-Presenter (MVP). Итак, мы выбираем MVVM, а не MVP, потому что в Android Architecture Components уже есть встроенный класс ViewModel — фреймворк MVVM не нужен!

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

Преимущество чистой архитектуры

  • Код легче тестировать, чем со стандартным MVVM;
  • Идеально выверенное разделение (самое значительное преимущество);
  • Удобная структура пакета;
  • Легко поддерживать проект в рабочем состоянии;
  • Ваша команда сможет внедрять новые функции еще быстрее.

Недостатки чистой архитектуры

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

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

Теперь давайте проверим слои, участвующие в этом процессе.

Сочетание MVVM с чистой архитектурой

Ниже мы показываем вам графическое представление MVVM с чистой архитектурой.

Сочетание MVVM с чистой архитектурой
Hужно запомнить:
  • Только внешние уровни могут полагаться на внутренние уровни для связи;
  • Количество слоев полностью зависит от вас: сделайте так, чтобы оно соответствовало вашим требованиям;
  • В узких кругах все становится более абстрактным.

Слои MVVM

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

  • Представление: это уровень, который взаимодействует с пользовательским интерфейсом (UI);
  • Домен: здесь хранится бизнес-логика приложения;
  • Варианты использования: интеракторы — это другое их название;
  • Данные: все источники данных определяются в широком смысле;
  • Framework: реализует интерфейс с Android SDK, а также конкретные реализации уровня данных.

Когда использовать чистую архитектуру?

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

Источник