Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Мобильность на Колёсах
Об инструментах и полезных вещах
Роман Ли
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"

Module

apply 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

More Related Content

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