Похожие презентации:
Цвет настроения Mobile Meetup #4. Gradle
1.
Цвет настроенияMobile Meetup #4
2.
Обо мнеЕнютин Вячеслав
Senior Mobile Developer (iOS, Android) опыт
разработки высоконагруженных
приложений более 5 лет. Разрабатывал
приложения для финтех, телемедицины и
др. отраслей
3. Чем доклад?
1. Опыт2. Боль
3. И применение
4.
Для чего мы используем Gradle?• Инспектор зависимости
• Инструмент для Автоматической подписи
• Для быстрого переключения debug/release
• Для различных Flavors
• Для более тонкой настройки проекта
5.
6. Как все работает?
7. Сборка ресурсов
Main8. Фича №1 Управление ресурсами
App FeatureApp
Network
9. Модульная архитектура?
10.
11. Представим
App Feature50 layout 150 drawable (xml)
12.
App Feature50 layout 150 drawable (xml)
activity_main_screen.xml
main_screen_content.xml
fargment_*********.xml
adapter_**********.xml
13.
App Feature50 layout 150 drawable (xml)
activity_main_screen.xml
main_screen_content.xml
fargment_*********.xml
adapter_**********.xml
14. Решение
15. Решение
• Разделение ресурсов• Свободная иерархия
• Поддержка Flavors
16. Что для этого потребуется?
17. Фича №2 Производительность
18. Сколько занимает сборка проекта (clean-build)
• До 1 минуты• От 1 до 5 минут
• От 5 до 10 минут
• Более 10 минут
19. Новое в gradle
compileimplements VS api
20.
api project(:’ app’)api project(:’ Network’)
App Feature
App
Network
21.
api project(:’ app’)api project(:’ Network’)
App Feature будет знать
О библиотеке Network!
App Feature
App
Network
22.
App FeatureApp
Измененяем слово
Network
23.
App FeatureRecompile
App
Измененяем слово
Network
24.
App FeatureRecompile
App
Измененяем слово
Network
25.
implementsApp Feature
Recompile
App
Измененяем слово
Network
26. Сколько занимает ваш Build
./gradlew clean assembleDebug --scan27.
Сборка NOT INCREMENTAL1 минута 54 секунд
Сборка INCREMENTAL
27 секунд
28. Как добавить?
В файлgradle.properties
Добавляем:
org.gradle.parallel=true
29.
Фича №3Используй голову
30. Что может замедлять сборку?
• Dagger 2• Butter Knife
• Data Binding
• Room
• Retrofit
31. Что может замедлять сборку?
• Dagger 2• Butter Knife
• Data Binding
• Room
• Retrofit
32. Annotation processing IS NOT INCREMETAL
33. Dagger android
Не используйте это!Субкомпоненты Dagger инициализируются внутри
родительского компонента
34. Основные проблемы
• Annotations processing ВСЮДУ• Плохо выстроенная взаимосвязь модулей
• Data Binding и Dagger генерации в Application
Модуле
• «Жирные» core и модули приложения