Цвет настроения Mobile Meetup #4. Gradle презентация

Содержание

Слайд 2

Обо мне

Енютин Вячеслав
Senior Mobile Developer (iOS, Android) опыт разработки высоконагруженных приложений более 5

лет. Разрабатывал приложения для финтех, телемедицины и др. отраслей

Обо мне Енютин Вячеслав Senior Mobile Developer (iOS, Android) опыт разработки высоконагруженных приложений

Слайд 3

Чем доклад?

Опыт
Боль
И применение

Чем доклад? Опыт Боль И применение

Слайд 4

Для чего мы используем Gradle?

Инспектор зависимости
Инструмент для Автоматической подписи
Для быстрого переключения debug/release
Для различных

Flavors
Для более тонкой настройки проекта

Для чего мы используем Gradle? Инспектор зависимости Инструмент для Автоматической подписи Для быстрого

Слайд 5

Запуск тестов

Запуск тестов

Слайд 6

Как все работает?

Как все работает?

Слайд 7

Сборка ресурсов

Main

Paid

Free

debug

release

paidDebug

freeDebug

paidRelease

FreeRelease

Сборка ресурсов Main Paid Free debug release paidDebug freeDebug paidRelease FreeRelease

Слайд 8

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

App Feature

App

Network

Фича №1 Управление ресурсами App Feature App Network

Слайд 9

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

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

Слайд 10

No.

No.

Слайд 11

Представим

App Feature
50 layout 150 drawable (xml)

Представим 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

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

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

Слайд 14

Решение

Решение

Слайд 15

Решение

Разделение ресурсов
Свободная иерархия
Поддержка Flavors

Решение Разделение ресурсов Свободная иерархия Поддержка Flavors

Слайд 16

Что для этого потребуется?

Что для этого потребуется?

Слайд 17

Фича №2 Производительность

Фича №2 Производительность

Слайд 18

Сколько занимает сборка проекта (clean-build)

До 1 минуты
От 1 до 5 минут
От 5 до

10 минут
Более 10 минут

Сколько занимает сборка проекта (clean-build) До 1 минуты От 1 до 5 минут

Слайд 19

Новое в gradle

compile

implements VS api

Новое в gradle compile implements VS api

Слайд 20

App Feature

App

Network

api project(:’ app’)

api project(:’ Network’)

App Feature App Network api project(:’ app’) api project(:’ Network’)

Слайд 21

App Feature

App

Network

api project(:’ app’)

api project(:’ Network’)

App Feature будет знать
О библиотеке Network!

App Feature App Network api project(:’ app’) api project(:’ Network’) App Feature будет

Слайд 22

App Feature

App

Network

Измененяем слово

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

Слайд 23

App Feature

App

Network

Измененяем слово

Recompile

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

Слайд 24

App Feature

App

Network

Измененяем слово

Recompile

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

Слайд 25

App Feature

App

Network

Измененяем слово

Recompile

implements

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

Слайд 26

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

./gradlew clean assembleDebug --scan

Сколько занимает ваш Build ./gradlew clean assembleDebug --scan

Слайд 27

Сборка NOT INCREMENTAL

Сборка INCREMENTAL

27 секунд

1 минута 54 секунд

Сборка NOT INCREMENTAL Сборка INCREMENTAL 27 секунд 1 минута 54 секунд

Слайд 28

Как добавить?

В файл
gradle.properties
Добавляем:
org.gradle.parallel=true

Как добавить? В файл gradle.properties Добавляем: org.gradle.parallel=true

Слайд 29

Фича №3 Используй голову

Фича №3 Используй голову

Слайд 30

Что может замедлять сборку?

Dagger 2
Butter Knife
Data Binding
Room
Retrofit

Что может замедлять сборку? Dagger 2 Butter Knife Data Binding Room Retrofit

Слайд 31

Что может замедлять сборку?

Dagger 2
Butter Knife
Data Binding
Room
Retrofit

CODE GENARATION

Что может замедлять сборку? Dagger 2 Butter Knife Data Binding Room Retrofit CODE GENARATION

Слайд 32

Annotation processing IS NOT INCREMETAL

Annotation processing IS NOT INCREMETAL

Слайд 33

Dagger android

Не используйте это!

Субкомпоненты Dagger инициализируются внутри родительского компонента

Dagger android Не используйте это! Субкомпоненты Dagger инициализируются внутри родительского компонента

Слайд 34

Основные проблемы

Annotations processing ВСЮДУ
Плохо выстроенная взаимосвязь модулей
Data Binding и Dagger генерации в Application

Модуле
«Жирные» core и модули приложения

Основные проблемы Annotations processing ВСЮДУ Плохо выстроенная взаимосвязь модулей Data Binding и Dagger

Слайд 35

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

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

Слайд 36

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

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

Имя файла: Цвет-настроения-Mobile-Meetup-#4.-Gradle.pptx
Количество просмотров: 100
Количество скачиваний: 0