Набор базовых рекомендаций по каждому из трех слоев архитектуры
#android #architecture
https://medium.com/kayvan-kaseb/some-best-practices-for-android-app-architecture-8abb925ca78d
#android #architecture
https://medium.com/kayvan-kaseb/some-best-practices-for-android-app-architecture-8abb925ca78d
Размышления о том, что нужны разные классы для API, DB и UI данных.
#architecture #data #model
https://blog.danlew.net/2022/08/15/domain-specific-models/
#architecture #data #model
https://blog.danlew.net/2022/08/15/domain-specific-models/
Dan Lew Codes
Domain-Specific Models
For a long time at Trello Android, we used the same class for parsing API calls (via Gson), making DB transactions (via OrmLite), and displaying data in the UI.
Here’s a pseudo-code-y example of a board:
@DatabaseTable(tableName = "boards")
data class Board(…
Here’s a pseudo-code-y example of a board:
@DatabaseTable(tableName = "boards")
data class Board(…
Новый мануал по созданию приложения, которое умеет корректно работать offline.
Рассказывают не только про чтение данных, но и про запись, типы синхронизации и решение конфликтов.
#android #architecture
https://developer.android.com/topic/architecture/data-layer/offline-first
Рассказывают не только про чтение данных, но и про запись, типы синхронизации и решение конфликтов.
#android #architecture
https://developer.android.com/topic/architecture/data-layer/offline-first
Android Developers
Build an offline-first app | Android Developers
Статья для начинающих о том, что такое UseCase
#android #architecture #usecase
https://medium.com/@donturner/adding-a-domain-layer-bc5a708a96da
#android #architecture #usecase
https://medium.com/@donturner/adding-a-domain-layer-bc5a708a96da
Medium
Adding a domain layer
In this article, I’ll explain how we added a domain layer to the Now in Android app for improved readability, scalability and portability.
Видео для начинающих о том, как устроен простой data layer в приложении: репозиторий, сеть, БД, типы данных, тесты.
#android #architecture
https://www.youtube.com/watch?v=P125nWICYps
#android #architecture
https://www.youtube.com/watch?v=P125nWICYps
Принцип подстановки Барбары Лисков (L в SOLID)
#architecture #pattern #solid
https://habr.com/ru/articles/739734/
#architecture #pattern #solid
https://habr.com/ru/articles/739734/
Полезные советы по работе с репозиториями:
Rule 1 — Don’t use JSON/SQL model in the Repository methods
Rule 2 — Repository is not a group of backend endpoints
Rule 3 — Repository is not a database table
Rule 4 — Not every Repository needs a Data Source
#android #architecture #bestpractice
https://itnext.io/android-data-repository-a-simple-pattern-that-we-often-misunderstand-6a6fb13b5a81
Rule 1 — Don’t use JSON/SQL model in the Repository methods
Rule 2 — Repository is not a group of backend endpoints
Rule 3 — Repository is not a database table
Rule 4 — Not every Repository needs a Data Source
#android #architecture #bestpractice
https://itnext.io/android-data-repository-a-simple-pattern-that-we-often-misunderstand-6a6fb13b5a81
Medium
Android Data Repository — A simple pattern that we often misunderstand
Scaling Android Architecture #5
Пример создания простого приложения с использованием текущих трендов и рекомендаций.
#android #architecture
https://proandroiddev.com/a-flexible-modern-android-app-architecture-complete-step-by-step-d76901e29993
#android #architecture
https://proandroiddev.com/a-flexible-modern-android-app-architecture-complete-step-by-step-d76901e29993
Разделение презентационного слоя фичи на модули в Android приложении
#android #architecture
https://habr.com/ru/companies/alfa/articles/773958/
#android #architecture
https://habr.com/ru/companies/alfa/articles/773958/
Хабр
Разделение презентационного слоя фичи на модули в Android приложении
Привет, Хабр! Я, Алексей , ведущий разработчик в платформенной команде Альфа-Бизнес Мобайл. В этой статье речь пойдет про приложение Альфа-Бизнес и об одной из архитектурных проблем, с которой...
Вторая статья про UI слой - State Holders and Saving State
#android #ui #architecture
https://medium.com/bumble-tech/crash-course-on-the-android-ui-layer-part-2-2335171467e0
#android #ui #architecture
https://medium.com/bumble-tech/crash-course-on-the-android-ui-layer-part-2-2335171467e0
Medium
Crash Course on the Android UI Layer | Part 2
State Holders and Saving State
Статья о технической реализации UI событий в ViewModel
#android #viewmodel #architecture #event
https://proandroiddev.com/viewmodel-events-as-state-are-an-antipattern-35ff4fbc6fb6 (Оригинал)
https://shorturl.at/dghip (Перевод)
#android #viewmodel #architecture #event
https://proandroiddev.com/viewmodel-events-as-state-are-an-antipattern-35ff4fbc6fb6 (Оригинал)
https://shorturl.at/dghip (Перевод)
Medium
ViewModel: Events as State are an Antipattern
In this article Nikita explores how a popular notion about expressing events as states may be a misleading one.
Интересный способ избавиться от UseCase, которые просто прокидывают метод репозитория. Делаем такой UseCase интерфейсом и наследуем его в репозитории.
#android #kotlin #usecase #architecture
https://dladukedev.com/articles/042_avoid_useless_cases_part_2/
#android #kotlin #usecase #architecture
https://dladukedev.com/articles/042_avoid_useless_cases_part_2/
Рассуждения на тему, где и в какой момент лучше загружать данные: LaunchedEffect или ViewModel.init()
#android #kotlin #compose #architecture
https://proandroiddev.com/loading-initial-data-in-launchedeffect-vs-viewmodel-f1747c20ce62
#android #kotlin #compose #architecture
https://proandroiddev.com/loading-initial-data-in-launchedeffect-vs-viewmodel-f1747c20ce62
В огромном приложении Android с Clean Architecture много рутинной работы, связанной с отображением объектов между различными слоями. Хорошим решением будет автоматизация этого процесса.
В этой статье рассматривается опыт использования библиотеки MapStruct, которая помогает mapp-ить объекты.
Библиотека очень гибка в настройке. И позволяет минимизировать написание шаблонного кода.
#android #architecture #mapping
https://habr.com/ru/articles/839362/
В этой статье рассматривается опыт использования библиотеки MapStruct, которая помогает mapp-ить объекты.
Библиотека очень гибка в настройке. И позволяет минимизировать написание шаблонного кода.
#android #architecture #mapping
https://habr.com/ru/articles/839362/
Хабр
Mapping объектов с помощью MapStruct
В огромном приложении Android с Clean Architecture много рутинной работы, связанной с отображением объектов между различными слоями. Хорошим решением будет автоматизация этого процесса. В этой статье...
Вторая часть статьи про начальную загрузку данных в ViewModel. Отвечает на самые распространенные вопросы, возникшие после первой части.
1. What if you want to pass arguments when loading initial data
2. What if you want to refresh?
3. Why are ViewModel.init side-effects potentially problematic?
4. How to prevent re-emitting flow from WhileSubscribed(5_000)
#android #viewmodel #architecture #bestpractice
https://proandroiddev.com/loading-initial-data-part-2-clear-all-your-doubts-0f621bfd06a0
1. What if you want to pass arguments when loading initial data
2. What if you want to refresh?
3. Why are ViewModel.init side-effects potentially problematic?
4. How to prevent re-emitting flow from WhileSubscribed(5_000)
#android #viewmodel #architecture #bestpractice
https://proandroiddev.com/loading-initial-data-part-2-clear-all-your-doubts-0f621bfd06a0
Medium
Loading Initial Data on Android Part 2: Clear All Your Doubts
When a user enters a screen, the default data should be fetched by triggering the business logic, whether from the network or local…
Manuel Vivo рассказывает основы построения UI слоя приложения
#android #architecture #ui
https://www.droidcon.com/2023/11/15/peeling-back-the-layers-unmasking-the-ui-nknown/
#android #architecture #ui
https://www.droidcon.com/2023/11/15/peeling-back-the-layers-unmasking-the-ui-nknown/
droidcon
Peeling Back the Layers: Unmasking the UI-nknown!
How much do you know about the UI layer and its best practices? What's the preferred way to produce UiState? How to consume it? Should you use MVVM or MVI?
Если вы уже определенное время занимаетесь разработкой Android, вы, вероятно, слышали о UseCases. Их часто представляют как Святой Грааль Clean architecture. UseCases призваны отделить бизнес-логику от Presentation и Data слоев, сделав ваш код более модульным, переиспользуемым и тестируемым. Но вот в чем загвоздка: UseCases не всегда являются серебряной пулей. На самом деле, слепое их применение может привести к раздутому коду и ненужной сложности, чего как раз и пытается избежать Clean Architecture. В этой статье мы развенчаем миф о UseCases и обсудим, когда они необходимы, а когда - просто пустая трата времени. Если вы разработчик Android и задаетесь вопросом, приносите ли вы больше вреда, чем пользы, следуя этому шаблону, эта статья для вас.
#android #usecase #bestpractice #architecture
https://habr.com/ru/articles/845604/
#android #usecase #bestpractice #architecture
https://habr.com/ru/articles/845604/
Хабр
Проблема UseCase-ов: что нужно знать разработчикам Android
Введение Если вы уже определенное время занимаетесь разработкой Android, вы, вероятно, слышали о UseCases. Их часто представляют как Святой Грааль Clean architecture. UseCases призваны отделить...
Сегодня мы подробно разберём, как интегрировать механизм Dynamic Feature Delivery в современную архитектуру Android‑приложения с использованием корутин, а также протестируем загрузку и установку динамического модуля, использующего Flutter.
#android #architecture #dfd
https://habr.com/ru/companies/yandex/articles/845344/
#android #architecture #dfd
https://habr.com/ru/companies/yandex/articles/845344/
Хабр
Динамические модули в приложениях на Android: опыт использования Dynamic Feature Delivery
Размер приложения часто играет важную роль в восприятии его пользователями и принятии ими решения о скачивании. Исследования показывают, что чем меньше размер APK, тем выше вероятность...
Статья рассчитана на разработчиков, которые знакомы с базовыми концепциями Android-разработки, но хотят освоить более структурированные и поддерживаемые подходы к разработке. Мы создадим приложение Just Notes, которое позволит управлять заметками: добавлять, редактировать, удалять и просматривать их на главном экране.
В процессе мы будем следовать лучшим практикам, таким как разделение на слои data, domain, и presentation, и применение принципов SOLID. Мы рассмотрим основные этапы разработки, начиная от настройки проекта и добавления зависимостей, до реализации сложных сценариев использования, включая навигацию и управление состоянием с помощью ViewModel.
#android #architecture
https://habr.com/ru/articles/854450/
В процессе мы будем следовать лучшим практикам, таким как разделение на слои data, domain, и presentation, и применение принципов SOLID. Мы рассмотрим основные этапы разработки, начиная от настройки проекта и добавления зависимостей, до реализации сложных сценариев использования, включая навигацию и управление состоянием с помощью ViewModel.
#android #architecture
https://habr.com/ru/articles/854450/
Хабр
Как написать Android приложение, которое не будет стыдно положить в портфолио. Гайд для новичков в Android разработке
Введение В этом гайде мы напишем с вами Android-приложение с нуля, используя лучшие архитектурные подходы – Clean Architecture и MVVM с элементами MVI, они обеспечат поддерживаемость, тестируемость и...