Чем доклад?
Как все работает?
Сборка ресурсов
Фича №1 Управление ресурсами
Модульная архитектура?
Представим
Решение
Решение
Что для этого потребуется?
Фича №2 Производительность
Сколько занимает сборка проекта (clean-build)
Новое в gradle
Сколько занимает ваш Build
Как добавить?
Что может замедлять сборку?
Что может замедлять сборку?
Annotation processing IS NOT INCREMETAL
Dagger android
Основные проблемы
Спасибо за внимание!
Спасибо за внимание!
Спасибо за внимание!
4.34M
Категория: ПрограммированиеПрограммирование

Цвет настроения 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. Сборка ресурсов

Main

8. Фича №1 Управление ресурсами

App Feature
App
Network

9. Модульная архитектура?

10.

11. Представим

App Feature
50 layout 150 drawable (xml)

12.

App Feature
50 layout 150 drawable (xml)
activity_main_screen.xml
main_screen_content.xml
fargment_*********.xml
adapter_**********.xml

13.

App Feature
50 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

compile
implements 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 Feature
App
Измененяем слово
Network

23.

App Feature
Recompile
App
Измененяем слово
Network

24.

App Feature
Recompile
App
Измененяем слово
Network

25.

implements
App Feature
Recompile
App
Измененяем слово
Network

26. Сколько занимает ваш Build

./gradlew clean assembleDebug --scan

27.

Сборка NOT INCREMENTAL
1 минута 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 и модули приложения

35. Спасибо за внимание!

36. Спасибо за внимание!

37. Спасибо за внимание!

English     Русский Правила