Мобильность на Колёсах: об инструментах и полезных...

Post on 16-Apr-2017

413 views 0 download

Transcript of Мобильность на Колёсах: об инструментах и полезных...

Мобильность на Колёсах

Об инструментах и полезных вещах

Роман Ли lee@kolesa.kz

16.04.16

Следующие ~20 минут

• Не о коде

Следующие ~20 минут

• Не о коде

• Инструменты

Следующие ~20 минут

• Не о коде

• Инструменты

• Прикольная штука -> Магия -> Инструмент

Следующие ~20 минут

• Не о коде

• Инструменты

• Прикольная штука -> Магия -> Инструмент

Следующие ~20 минут

• Не о коде

• Инструменты

• Прикольная штука -> Магия -> Инструмент

• Проблема -> Инструмент -> Profit

Проблемы:

• 3 проекта 1 api - переиспользование кода

• Всем нужен Build

• Большой проект - медленные сборки

Переиспользование кода

• Submodule

• Library

• Artifactory

Artifactory

Artifactory

• Локальный репозиторий для артефактов

• Локальный кэш jCenter, fabric …

• Дистрибутив Gradle Wrapper

• Хранение релизных сборок

• Версионность библиотеки

Profit

• Приватное хранение библиотеки

• Ускорение сборок в CI

• Доработка библиотеки, без ломания зависимости

Как настроить?

• https://www.jfrog.com/confluence/display/RTF/Installing+Artifactory

• https://www.jfrog.com/confluence/display/RTF/Gradle+Artifactory+Plugin

Как настроено

Project classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.0.1"

Moduleapply plugin: 'com.jfrog.artifactory'apply plugin: 'maven-publish'

Как настроено

./gradlew assembleRelease artifactoryPublish

Всем нужен Build

• Тестировщику нужен Build каждой ветки

• Менеджеру нужен рандомный Build

• Разработчикам сайтов нужен Build

• Перед релизом нужен Build

Continuous Integration (Bamboo)

• Сборка каждой ветки после Push

• Сборка release и debug окружения

• Релиз ключи на сервере (Ansible*)

• Простая процедура релиза

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

• Bamboo Loader

*http://blog.itcrowd.kz/otchiot-konfierientsiia-otkrytogho-formata-it-crowd-almaty-4

Profit

• Разработчики не собирают билды по 5 раз на дню

• Тестировщики не привязаны к IDE

• Автосборка всего и всегда

Как настроить?

• Bamboo - молиться админам

• Агент - http://tools.android.com/recent/updatingsdkfromcommand-line

• ./gradlew app:assembleRelease

• ./gradlew app:connectedDebugAndroidTest

Большой проект - медленные сборки 64K

• Proguard

• Multidex

• Flavor & Build variant

Flavor

• Разделение сборки на разработку и релиз

• Отдельные варианты сборки для подрядчиков

Profit

• Время сборки релиз варианта 3 минуты

• Сборка для разработчиков 7-10 секунд

• Смена окружения в 2 клика

• Сборка для подрядчиков в CI

Profit

0

45

90

135

180

Время сборки в секундах

Без Flavor С Flavor

Как настроено

• Flavors: Distribution и Develop

• Build Types: debug, release, debugRelease

• Android Test - Flavor

• Develop сборка не содержит crashlitycs, parse, multidex, аналитика.

Что дальше?

• Espresso

• Повторить успех с iOS

Спасибо всем кто не уснул

Вопросы?

Ли Роман lee@kolesa.kz

16.04.16