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

What's hot

Верстка и другие развлечения, Seconf
Верстка и другие развлечения, SeconfВерстка и другие развлечения, Seconf
Верстка и другие развлечения, Seconf
Yuriy Artyukh
 
My talk on Docker, Youcon 2015
My talk on Docker, Youcon 2015My talk on Docker, Youcon 2015
My talk on Docker, Youcon 2015
Alex Chistyakov
 
Current State of Server Side JavaScript
Current State of Server Side JavaScriptCurrent State of Server Side JavaScript
Current State of Server Side JavaScript
Oleg Podsechin
 
непрерывная интеграция шаг к непрерывному деплою родионов игорь
непрерывная интеграция   шаг к непрерывному деплою родионов игорьнепрерывная интеграция   шаг к непрерывному деплою родионов игорь
непрерывная интеграция шаг к непрерывному деплою родионов игорь
drupalconf
 
Введение в Akka
Введение в AkkaВведение в Akka
Введение в Akka
Zheka Kozlov
 
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
CodeFest
 
Обзор средств автоматизации
Обзор средств автоматизацииОбзор средств автоматизации
Обзор средств автоматизации
OpenStackRU
 
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
it-people
 
Docker & Puppet: как их скрестить и надо ли вам это?
Docker & Puppet: как их скрестить и надо ли вам это?Docker & Puppet: как их скрестить и надо ли вам это?
Docker & Puppet: как их скрестить и надо ли вам это?
Anton Turetsky
 
Vagrant: плагины и гастрономический фестиваль
Vagrant: плагины и гастрономический фестивальVagrant: плагины и гастрономический фестиваль
Vagrant: плагины и гастрономический фестиваль
Nikita Borzykh
 

What's hot (20)

Верстка и другие развлечения, Seconf
Верстка и другие развлечения, SeconfВерстка и другие развлечения, Seconf
Верстка и другие развлечения, Seconf
 
Крыша 2.0
Крыша 2.0Крыша 2.0
Крыша 2.0
 
My talk on Docker, Youcon 2015
My talk on Docker, Youcon 2015My talk on Docker, Youcon 2015
My talk on Docker, Youcon 2015
 
Current State of Server Side JavaScript
Current State of Server Side JavaScriptCurrent State of Server Side JavaScript
Current State of Server Side JavaScript
 
Using Ansible
Using AnsibleUsing Ansible
Using Ansible
 
непрерывная интеграция шаг к непрерывному деплою родионов игорь
непрерывная интеграция   шаг к непрерывному деплою родионов игорьнепрерывная интеграция   шаг к непрерывному деплою родионов игорь
непрерывная интеграция шаг к непрерывному деплою родионов игорь
 
Производительность WebGL-приложений / Дмитренко Кирилл (Яндекс)
Производительность WebGL-приложений / Дмитренко Кирилл (Яндекс)Производительность WebGL-приложений / Дмитренко Кирилл (Яндекс)
Производительность WebGL-приложений / Дмитренко Кирилл (Яндекс)
 
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
 
Windows DevOps with Ansible
Windows DevOps with AnsibleWindows DevOps with Ansible
Windows DevOps with Ansible
 
Введение в Akka
Введение в AkkaВведение в Akka
Введение в Akka
 
GDGNSK Работа с геоданными в Go
GDGNSK Работа с геоданными в GoGDGNSK Работа с геоданными в Go
GDGNSK Работа с геоданными в Go
 
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
 
Обзор средств автоматизации
Обзор средств автоматизацииОбзор средств автоматизации
Обзор средств автоматизации
 
Networks for beginners
Networks for beginnersNetworks for beginners
Networks for beginners
 
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
 
Migrate!
Migrate!Migrate!
Migrate!
 
Docker & Puppet: как их скрестить и надо ли вам это?
Docker & Puppet: как их скрестить и надо ли вам это?Docker & Puppet: как их скрестить и надо ли вам это?
Docker & Puppet: как их скрестить и надо ли вам это?
 
Interactive Lab: Разработка Flash игр на Unity3D
Interactive Lab: Разработка Flash игр на Unity3DInteractive Lab: Разработка Flash игр на Unity3D
Interactive Lab: Разработка Flash игр на Unity3D
 
Vagrant: плагины и гастрономический фестиваль
Vagrant: плагины и гастрономический фестивальVagrant: плагины и гастрономический фестиваль
Vagrant: плагины и гастрономический фестиваль
 
Что такое современная Frontend разработка
Что такое современная Frontend разработкаЧто такое современная Frontend разработка
Что такое современная Frontend разработка
 

Viewers also liked

Ключ от всех дверей: чем опасен Великий Казахстанский Файерволл
Ключ от всех дверей: чем опасен Великий Казахстанский ФайерволлКлюч от всех дверей: чем опасен Великий Казахстанский Файерволл
Ключ от всех дверей: чем опасен Великий Казахстанский Файерволл
ITCrowd Almaty
 
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проектаКолёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
ITCrowd Almaty
 
Ростислав Фридман: “Kubernetes как средство управления микросервисами"
Ростислав Фридман: “Kubernetes как средство управления микросервисами"Ростислав Фридман: “Kubernetes как средство управления микросервисами"
Ростислав Фридман: “Kubernetes как средство управления микросервисами"
Provectus
 
Станислав Иващенок: "Serverless в dev ops на примере сервисов amazon"
Станислав Иващенок: "Serverless в dev ops на примере сервисов amazon"Станислав Иващенок: "Serverless в dev ops на примере сервисов amazon"
Станислав Иващенок: "Serverless в dev ops на примере сервисов amazon"
Provectus
 

Viewers also liked (16)

Ключ от всех дверей: чем опасен Великий Казахстанский Файерволл
Ключ от всех дверей: чем опасен Великий Казахстанский ФайерволлКлюч от всех дверей: чем опасен Великий Казахстанский Файерволл
Ключ от всех дверей: чем опасен Великий Казахстанский Файерволл
 
Docker с чем едят и для чего используют
Docker с чем едят и для чего используютDocker с чем едят и для чего используют
Docker с чем едят и для чего используют
 
Разработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервисаРазработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервиса
 
На плаву!
На плаву!На плаву!
На плаву!
 
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проектаКолёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
 
Web Performance в Казнете
Web Performance в КазнетеWeb Performance в Казнете
Web Performance в Казнете
 
Обучение фронтенд разработке
Обучение фронтенд разработкеОбучение фронтенд разработке
Обучение фронтенд разработке
 
React + Flux
React + FluxReact + Flux
React + Flux
 
Бэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработки
Бэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработкиБэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработки
Бэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработки
 
Вредные советы для разработчиков
Вредные советы для разработчиковВредные советы для разработчиков
Вредные советы для разработчиков
 
Чем бесят программисты
Чем бесят программистыЧем бесят программисты
Чем бесят программисты
 
ITCrowd 2 - Разработка крупного проекта в команде
ITCrowd 2 - Разработка крупного проекта в командеITCrowd 2 - Разработка крупного проекта в команде
ITCrowd 2 - Разработка крупного проекта в команде
 
Александр Трищенко: Phalcon framework
Александр Трищенко: Phalcon frameworkАлександр Трищенко: Phalcon framework
Александр Трищенко: Phalcon framework
 
Ростислав Фридман: “Kubernetes как средство управления микросервисами"
Ростислав Фридман: “Kubernetes как средство управления микросервисами"Ростислав Фридман: “Kubernetes как средство управления микросервисами"
Ростислав Фридман: “Kubernetes как средство управления микросервисами"
 
2017-03-11 01 Игорь Родионов. Docker swarm vs Kubernetes
2017-03-11 01 Игорь Родионов. Docker swarm vs Kubernetes2017-03-11 01 Игорь Родионов. Docker swarm vs Kubernetes
2017-03-11 01 Игорь Родионов. Docker swarm vs Kubernetes
 
Станислав Иващенок: "Serverless в dev ops на примере сервисов amazon"
Станислав Иващенок: "Serverless в dev ops на примере сервисов amazon"Станислав Иващенок: "Serverless в dev ops на примере сервисов amazon"
Станислав Иващенок: "Serverless в dev ops на примере сервисов amazon"
 

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

И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел Тайкало
Stanfy
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на Java
Alex Chistyakov
 

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

Практика разработки веб-серверов на Rust
Практика разработки веб-серверов на RustПрактика разработки веб-серверов на Rust
Практика разработки веб-серверов на Rust
 
Little Service in 2h
Little Service in 2hLittle Service in 2h
Little Service in 2h
 
Gitlab devconf
Gitlab devconfGitlab devconf
Gitlab devconf
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows Docker
 
Devconf 2011 - PHP - Как разрабатывается фреймворк Yii
Devconf 2011 - PHP - Как разрабатывается фреймворк YiiDevconf 2011 - PHP - Как разрабатывается фреймворк Yii
Devconf 2011 - PHP - Как разрабатывается фреймворк Yii
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"
 
SECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON'2016. Чубарь Алексей, Мобильные грабли UnitySECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON'2016. Чубарь Алексей, Мобильные грабли Unity
 
Масштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаМасштабируемая архитектура фронтенда
Масштабируемая архитектура фронтенда
 
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
 
YaC 2013 Notes
YaC 2013 NotesYaC 2013 Notes
YaC 2013 Notes
 
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел Тайкало
 
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на Java
 
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
 
Микросервисный фронтенд
Микросервисный фронтендМикросервисный фронтенд
Микросервисный фронтенд
 
"Инструментарий разработчика iOS: Xcode, AppCode и сторонние инструменты". Ма...
"Инструментарий разработчика iOS: Xcode, AppCode и сторонние инструменты". Ма..."Инструментарий разработчика iOS: Xcode, AppCode и сторонние инструменты". Ма...
"Инструментарий разработчика iOS: Xcode, AppCode и сторонние инструменты". Ма...
 
"Инструментарий разработчика iOS: Xcode, AppCode и сторонние инструменты". Ма...
"Инструментарий разработчика iOS: Xcode, AppCode и сторонние инструменты". Ма..."Инструментарий разработчика iOS: Xcode, AppCode и сторонние инструменты". Ма...
"Инструментарий разработчика iOS: Xcode, AppCode и сторонние инструменты". Ма...
 
В поисках CI
В поисках CIВ поисках CI
В поисках CI
 
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
 

More from ITCrowd Almaty

ITCrowd 2 - Обзор существующих стандартов разметки и продуктов на ее основе
ITCrowd 2 - Обзор существующих стандартов разметки и продуктов на ее основеITCrowd 2 - Обзор существующих стандартов разметки и продуктов на ее основе
ITCrowd 2 - Обзор существующих стандартов разметки и продуктов на ее основе
ITCrowd Almaty
 

More from ITCrowd Almaty (10)

Система управления конфигурациями Ansible
Система управления конфигурациями AnsibleСистема управления конфигурациями Ansible
Система управления конфигурациями Ansible
 
Система мониторинга Zabbix
Система мониторинга ZabbixСистема мониторинга Zabbix
Система мониторинга Zabbix
 
WatchKit 101
WatchKit 101WatchKit 101
WatchKit 101
 
AngularJS
AngularJSAngularJS
AngularJS
 
Designer ≠ дизайнер
Designer ≠ дизайнерDesigner ≠ дизайнер
Designer ≠ дизайнер
 
ITCrowd 2 - Обзор существующих стандартов разметки и продуктов на ее основе
ITCrowd 2 - Обзор существующих стандартов разметки и продуктов на ее основеITCrowd 2 - Обзор существующих стандартов разметки и продуктов на ее основе
ITCrowd 2 - Обзор существующих стандартов разметки и продуктов на ее основе
 
ITCrowd - Метапрограммирование
ITCrowd - МетапрограммированиеITCrowd - Метапрограммирование
ITCrowd - Метапрограммирование
 
ITCrowd - Потенциал казахоязычной аудитории РК
ITCrowd - Потенциал казахоязычной аудитории РКITCrowd - Потенциал казахоязычной аудитории РК
ITCrowd - Потенциал казахоязычной аудитории РК
 
ITCrowd - Почему и как я стал фрилансером?
ITCrowd - Почему и как я стал фрилансером?ITCrowd - Почему и как я стал фрилансером?
ITCrowd - Почему и как я стал фрилансером?
 
ITCrowd - Правильная структура лендинга
ITCrowd - Правильная структура лендингаITCrowd - Правильная структура лендинга
ITCrowd - Правильная структура лендинга
 

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