TGViewer
Android Mobile | YeaHub Android Mobile | YeaHub @yeahub_android_mobile · 430 subscribers
Post #474 257
Чистая архитектура экрана 🤩

Архитектура — это набор правил и подходов, которые определяют, как строить приложения. Хорошая архитектура позволяет бизнесу сократить расходы на разработку, поддержку и исправление продукта.

Разделение на слои

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

Структура слоёв в Android-приложении

В контексте Android-приложений распространённая архитектура основывается на трёх слоях:

1. Presentation (Представление): отвечает за пользовательский интерфейс и взаимодействие с пользователем.
2. Domain (Доменная логика): управляет бизнес-логикой и функциональностью системы.
3. Data (Данные): обеспечивает доступ к внешним системам и хранение данных.


Аналогия с автомобилем 🛞

Для лучшего понимания, рассмотрим пример с автомобилем:

- Presentation — руль, педали и приборная панель, которые позволяют водителю взаимодействовать с автомобилем.
- Domain — двигатель, трансмиссия, коробка передач и колёса, которые обеспечивают движение и функциональность автомобиля.
- Data — системы подачи воздуха и топлива, необходимые для работы двигателя.

Взаимозависимость слоёв

В Android-архитектуре:

- Presentation слой зависит от Domain слоя, так как пользовательский интерфейс должен вызывать бизнес-логику для выполнения действий.
- Data слой также зависит от Domain слоя, предоставляя ему доступ к данным и внешним системам.

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

Принцип инверсии зависимостей (D из SOLID)

Для реализации такого подхода используется принцип инверсии зависимостей (Dependency Inversion Principle). Это позволяет нам снижать связность между компонентами, что, упрощает тестирование и поддержку кода.

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

На скрине приложил базу, которая основана на всей информации из поста 👨‍💻

🚀 Пост Guru Android: @kishmyak
More from @yeahub_android_mobile
  1. Oct 7, 2026#Собес #viewholder #recycling #oncreateviewholder 🤔 Как RecyclerView рендерит элементы? �…
  2. Oct 5, 2026#Собес #service_main_thread #background #anr 🤔 В каком потоке по умолчанию работает Servi…
  3. Oct 2, 2026#tool #графы 📚 Терялся в собственном коде? Встречай Gitvizz, инструмент, который мгновенн…
  4. Oct 1, 2026#Собес #UNIQUE_constraint #database_index #SQL 🤔 Использует ли UNIQUE constraint индексы?…
  5. Sep 30, 2026#Собес #android #di #coroutines 🤔 Как правильно передавать Dispatcher в классы: через DI…
  6. Sep 28, 2026#Собес #threading #atomic #volatile 🤔 Чем Atomic переменные отличаются от volatile? 💬 Кр…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →