#Dagger #Modularization #Architecture
"Using Dagger in a multi-module project" by Marcos Holgado
Последний тренд в архитектуре Android приложений - это модуляризация (разбиение на Gradle модули). Ее преимущества:
👉 изоляцию функционала друг от друга
👉 более высокая скорость инкрементальной сборки проекта
👉 возможность поддержки Instant Apps и Dynamic Features
👉 меньше конфликтов при работе нескольких разработчиков над проектом.
Преимущества этого подхода прекрасны, но проблема в том, что интеграция подхода в проект непроста, особенно если в уже существующий.
Одна из трудных задач при миграции в многомодульный проект - это разделение графа зависимостей Dagger. В статье вы найдете путеводитель, как пройти путь от одного модуля в множество и нигде не заплутать.
Хорошее видео о модуляризация вашего приложения от Денис Неклюдов — "Как не состариться во время сборки: Kapt и другие приключения"
"Using Dagger in a multi-module project" by Marcos Holgado
Последний тренд в архитектуре Android приложений - это модуляризация (разбиение на Gradle модули). Ее преимущества:
👉 изоляцию функционала друг от друга
👉 более высокая скорость инкрементальной сборки проекта
👉 возможность поддержки Instant Apps и Dynamic Features
👉 меньше конфликтов при работе нескольких разработчиков над проектом.
Преимущества этого подхода прекрасны, но проблема в том, что интеграция подхода в проект непроста, особенно если в уже существующий.
Одна из трудных задач при миграции в многомодульный проект - это разделение графа зависимостей Dagger. В статье вы найдете путеводитель, как пройти путь от одного модуля в множество и нигде не заплутать.
Хорошее видео о модуляризация вашего приложения от Денис Неклюдов — "Как не состариться во время сборки: Kapt и другие приключения"
Medium
Using Dagger in a multi-module project
Struggling to use dagger in a multi-module project? This article should help you a lot so you don’t waste the time I wasted a year ago.
#Dagger #Modularization #DynamicFeature
Dependency injection in a multi module project от Bew Weiss
Еще одна история о том как происходила модуляризация приложения на примере Plaid.
Dependency injection in a multi module project от Bew Weiss
Еще одна история о том как происходила модуляризация приложения на примере Plaid.
Medium
Dependency injection in a multi module project
How we introduced a DI framework into Plaid and what we learned
#Architecture #DynamicFeature #Modularization
Patterns for accessing code from Dynamic Feature Modules
Модуляризация и динамическая доставка модулей - это самый трендовые направления в архитектуре Android направлений. Проблема динамических модулей в том, что код основного приложения не знает о коде в динамическом модуле.
Решение проблемы в лоб - использование рефлексии. Но это решение влияет на производительность, особенно на старых устройствах. Какие решения можно использовать помимо рефлексии:
👉 ServiceLoader
👉 Интеграция с Dagger 2 или Koin 2
👉 Выделение интерфейса для взаимодействия c динамическим модулем из основного путем создания общего модуля. В основной модуль будет подключаться как
В статье рассматривается как реализовать эти подходы (все кроме последнего) и даются советы по модуляризации вашего приложения.
Patterns for accessing code from Dynamic Feature Modules
Модуляризация и динамическая доставка модулей - это самый трендовые направления в архитектуре Android направлений. Проблема динамических модулей в том, что код основного приложения не знает о коде в динамическом модуле.
Решение проблемы в лоб - использование рефлексии. Но это решение влияет на производительность, особенно на старых устройствах. Какие решения можно использовать помимо рефлексии:
👉 ServiceLoader
👉 Интеграция с Dagger 2 или Koin 2
👉 Выделение интерфейса для взаимодействия c динамическим модулем из основного путем создания общего модуля. В основной модуль будет подключаться как
compileOnly
зависимость, а в динамический - implementation
. В статье рассматривается как реализовать эти подходы (все кроме последнего) и даются советы по модуляризации вашего приложения.
Medium
Patterns for accessing code from Dynamic Feature Modules
In this post I am going to show you how to solve a common problem that arises when using dynamic feature modules in your project…
#Architecture #Modularization
Глубокое погружение в модуляризацию
Android проекты активно растут в своих размерах, мы используем все больше технологий, затягиваем новые библиотеки, стараемся следовать лучшим практикам и реализовать
Что все это было качественно реализовано и вы могли эффективно масштабироваться, рекомендуется использовать многомодульную архитектуру.
Jeroen Mols сделал серию статей на тему многомодульности. В них вы можете найти ответы на свои вопросы и увидеть реальные примеры:
1️⃣ Why you should care?
2️⃣ A successful architecture
3️⃣ Real-life example
4️⃣ How to approach
5️⃣ Lessons learned
Глубокое погружение в модуляризацию
Android проекты активно растут в своих размерах, мы используем все больше технологий, затягиваем новые библиотеки, стараемся следовать лучшим практикам и реализовать
Clean Architecture
. Что все это было качественно реализовано и вы могли эффективно масштабироваться, рекомендуется использовать многомодульную архитектуру.
Jeroen Mols сделал серию статей на тему многомодульности. В них вы можете найти ответы на свои вопросы и увидеть реальные примеры:
1️⃣ Why you should care?
2️⃣ A successful architecture
3️⃣ Real-life example
4️⃣ How to approach
5️⃣ Lessons learned
#Modularization #Architecture
Inverting the Dependency — Independent Features in Android Applications
Подход к разбиению приложения на модули по принципу "Feature-спутник". Архитектура строилась чтобы удовлетворять требованиям:
1️⃣ Feature может не добавляться в
2️⃣ Feature может быть загружена во время работы приложения
3️⃣ Может быть несколько
Как это реализовывали и что из этого получилось вы можете узнать из статьи
Inverting the Dependency — Independent Features in Android Applications
Подход к разбиению приложения на модули по принципу "Feature-спутник". Архитектура строилась чтобы удовлетворять требованиям:
1️⃣ Feature может не добавляться в
buildVariant
2️⃣ Feature может быть загружена во время работы приложения
3️⃣ Может быть несколько
feature
, реализующих один и тот же функционалКак это реализовывали и что из этого получилось вы можете узнать из статьи
Medium
Inverting the Dependency — Independent Features in Android Applications
Working in a cross-functional team on an Android application imposes certain requirements on the code-base. The less structured the…
#Architecture #Modularization #ArchitectureComponents
Modularization by Feature and Layer with Android Architecture Components
Команда Android в последние 2 года активно стала решать трудности, связанные с разработкой эффективной архитектуры для Android приложений. Результат этого - Android Architecture Components.
Трендом текущей Android разработки является модуляризация. Она дает плюсы в архитектуре, более высокую скорость сборки проектов и возможность использовать Dynamic Features.
Как позволяет это реализовать текущий стек Architecture Components вы найдете в статье
Modularization by Feature and Layer with Android Architecture Components
Команда Android в последние 2 года активно стала решать трудности, связанные с разработкой эффективной архитектуры для Android приложений. Результат этого - Android Architecture Components.
Трендом текущей Android разработки является модуляризация. Она дает плюсы в архитектуре, более высокую скорость сборки проектов и возможность использовать Dynamic Features.
Как позволяет это реализовать текущий стек Architecture Components вы найдете в статье
Medium
Modularization by Feature and Layer with Android Architecture Components
Hello! In this story I want to have a quick look at modular android development in conjunction with android architecture components.
#Architecture #Modularization
Дзен изолированных компонентов в Android-архитектуре
Продолжение серии статей (раз и два) от Badoo об MVI в их приложении. В третей части вы найдете разбор рекомендаций:
👉 Нe останавливайтесь на слабой связности компонентов
👉 Компоненты в виде чёрных ящиков
👉 Переходим к однонаправленности
👉 Соединяйте входные и выходные данные разных компонентов
👉 и прочие интересные вопросы
Дзен изолированных компонентов в Android-архитектуре
Продолжение серии статей (раз и два) от Badoo об MVI в их приложении. В третей части вы найдете разбор рекомендаций:
👉 Нe останавливайтесь на слабой связности компонентов
👉 Компоненты в виде чёрных ящиков
👉 Переходим к однонаправленности
👉 Соединяйте входные и выходные данные разных компонентов
👉 и прочие интересные вопросы
Хабр
Дзен изолированных компонентов в Android-архитектуре
Несколько лет назад мы в Badoo начали использовать MVI-подход к Android-разработке. Он был призван упростить сложную кодовую базу и избежать проблемы некоррект...
#DependencyInjection #Koin #Modularization
Setting Up Android Modules with Koin
Dependency Injection - стандарт для современных приложений и как самое популярное решение для этого Dagger 2 на Android. С некотор пор я предпочитаю Koin, так как она более простая и pure Kotlin 😍.
Пригоден ли Koin для модуляризации проект? Сможет ли он поддерживать Dynamic Features? В статье рассматривается как это сделать
Setting Up Android Modules with Koin
Dependency Injection - стандарт для современных приложений и как самое популярное решение для этого Dagger 2 на Android. С некотор пор я предпочитаю Koin, так как она более простая и pure Kotlin 😍.
Пригоден ли Koin для модуляризации проект? Сможет ли он поддерживать Dynamic Features? В статье рассматривается как это сделать
Medium
Setting Up Android Modules with Koin
Experimenting with Koin on a multi-module Android project
#DependencyInjection #Modularization
Setting Up Android Modules With Kodein
Руководство как осуществлять модуляризацию при использовании Kodein
Setting Up Android Modules With Kodein
Руководство как осуществлять модуляризацию при использовании Kodein
Medium
Setting Up Android Modules With Kodein
Comparison with Koin and Dagger 2
#ArchitectureComponents #Architecture #Modularization
Android Components Architecture in a Modular Word
Хорошая статья в которой происходит разбор модуляризации Android приложения:
👉 Принципы осуществления модуляризации
👉 Модули и их роли
👉 Множество других полезный статей и примеров
👉 Проблемы со сторонними библиотеками
👉 Собственный пример
Android Components Architecture in a Modular Word
Хорошая статья в которой происходит разбор модуляризации Android приложения:
👉 Принципы осуществления модуляризации
👉 Модули и их роли
👉 Множество других полезный статей и примеров
👉 Проблемы со сторонними библиотеками
👉 Собственный пример
Medium
📚 Android Components Architecture in a Modular Word
Over years Android architecture evolved to support production-quality apps on any scale focused on helping developers to design robust…
#Git #Tests #Modularization
Selectively running Android modularized unit tests on your CI server
Рецепт как запускать тесты только в тех модулях, в которых произошли изменения в вашем ПР. Это позволит уменьшить количество применяемых тестов и быстрее проверять ПР.
Selectively running Android modularized unit tests on your CI server
Рецепт как запускать тесты только в тех модулях, в которых произошли изменения в вашем ПР. Это позволит уменьшить количество применяемых тестов и быстрее проверять ПР.
#Gradle #Performance #Modularization
O(1) Android build time at Tiki
Разработчики подходят с разных сторон в попытке оптимизировать Gradle сборку и сделать работу быстрее. В Tiki сделал довольно интересно решение - подключение только одного feature модуля с которым сейчас работает разработчик, что позволил сократить время разработки.
Как это реализовать и каким образом должны подключаться модули вы можете найти в статье.
O(1) Android build time at Tiki
Разработчики подходят с разных сторон в попытке оптимизировать Gradle сборку и сделать работу быстрее. В Tiki сделал довольно интересно решение - подключение только одного feature модуля с которым сейчас работает разработчик, что позволил сократить время разработки.
Как это реализовать и каким образом должны подключаться модули вы можете найти в статье.
Tiki Engineering
O(1) Android build time at Tiki - Tiki Engineering
The problem Build time has always been a big issue for Android developers. In order […]
#Dagger #Modularization
Using Dagger in multi-module apps
Официальное руководство по использованию Dagger в многомодульных проектах. Руководство также покрывает использование Dynamic Feature. Ну и как же без лучших практик.
Using Dagger in multi-module apps
Официальное руководство по использованию Dagger в многомодульных проектах. Руководство также покрывает использование Dynamic Feature. Ну и как же без лучших практик.
Android Developers
Using Dagger in multi-module apps | Android Developers
Иерархия модулей: как выстроить связи между модулями в Android
Разработчик HH делится процессом разбиения на модули в их приложениях, какие типы модулей выделили, как настраивать между ними связи и пример разделения большой фичи на несколько модулей.
#architecture #modularization
Разработчик HH делится процессом разбиения на модули в их приложениях, какие типы модулей выделили, как настраивать между ними связи и пример разделения большой фичи на несколько модулей.
#architecture #modularization
👍50👎21🤯15🤔2❤1
📺 By layer or feature? Why not both?! Guide to Android app modularization (5 мин)
Прекрасное короткое видео, которое показывает разные подходы к модуляризации, как лучше организовывать связи и какие характеристики модульной архитектуры надо учитывать
#architecture #modularization #androiddevsummit
Прекрасное короткое видео, которое показывает разные подходы к модуляризации, как лучше организовывать связи и какие характеристики модульной архитектуры надо учитывать
#architecture #modularization #androiddevsummit
👍20🤯4😁2🔥1