Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать,...

42
Процесс сборки мобильного приложения Кирилл Харьков

Transcript of Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать,...

Page 1: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Процесс сборки мобильного приложения

Кирилл Харьков

Page 2: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

• Собрать• Проверить• Задеплоить

Задачи

Page 3: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

• Собрать• Проверить• Задеплоить

Задачи

Page 4: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Сборка

Page 5: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Сборка

Page 6: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Сборка

Page 7: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Сборка

• 3 продукта• A, B, C

Page 8: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Сборка

• 3 продукта• A, B, C

• 8 вариантов• Debug• Alpha/Branch• Beta/Corp Beta• Release• Unit\Ui Test

Page 9: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Сборка

• 3 продукта• A, B, C

• 8 вариантов• Debug• Alpha/Branch• Beta/Corp Beta• Release• Unit\Ui Test

3 * 8 = 24

Page 10: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Сборка

productFlavors {A{

...}B{

...}C{

...}

}

Page 11: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Сборка

buildTypes {release {

…}debug {

…}alpha {

…}

}

Page 12: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Сборка

productFlavors {A{

...android.buildTypes {

...alpha {

…hockeyApp {

[appId: 'b45-------1b', note: project.issues, releaseType: '2']}

}}

}}

Page 13: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Сборка

Ресурсы

Page 14: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Сборка

Ресурсы• Общие для всех продуктов (A, B, C)

Page 15: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Сборка

Ресурсы• Общие для всех продуктов (A, B, C)• Отдельные для каждого продукта

Page 16: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Сборка

Ресурсы• Общие для всех продуктов (A, B, C)• Отдельные для каждого продукта• Общие ресурсы для группы продуктов (B, C)

Page 17: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Сборка

Папки ресурсов• res – общие для A, B, C• res_bc – общие для B, C• res_a, res_b, res_c - частные

Page 18: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Сборка

Ресурсы продуктов• A = res + res_a• B = res + res_bc + res_b• C = res + res_bc + res_c

Page 19: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Сборка

• Ресурсы• Исходники• Манифесты• Assets• Тесты

Page 20: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

• Собрать• Проверить• Задеплоить

Задачи

Page 21: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

• Собрать• Проверить• Задеплоить

Задачи

Page 22: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Тестирование

• Статический анализ

Page 23: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Тестирование

• Статический анализ• Встроенные правила

Page 24: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Тестирование

• Статический анализ• Встроенные правила• Корпоративные правила

Page 25: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Тестирование

• Статический анализ

Page 26: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Тестирование

• Статический анализ• Unit tests

Page 27: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Тестирование

@AcquireCookie@LargeTestpublic void testDeleteNonExistingFolder() {

DeleteFolder delete = runDeleteFolder(999);assertERROR_FOLDER_NOT_EXIST(delete);

}

Page 28: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Тестирование

@AcquireCookie@LargeTestpublic void testDeleteNonExistingFolder() {

DeleteFolder delete = runDeleteFolder(999);assertERROR_FOLDER_NOT_EXIST(delete);

}@MockMethod(response = RESPONSE_NOT_EXISTS)public void testDeleteNonExistingFolderMock() {

testDeleteNonExistingFolder();}

Page 29: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Тестирование

• Статический анализ• Unit tests

Page 30: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Тестирование

• Статический анализ• Unit tests• Ui tests

Page 31: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Тестирование

• Новый функционал

Page 32: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Тестирование

• Новый функционал• Баг

Page 33: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Тестирование

• Новый функционал• Баг• Сценарии, затрагивающие сторонние сервисы

Page 34: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Тестирование

• Ui Test Framework• Ui Automator• Robotium/Espresso• Appium• …

Page 35: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Тестирование

/*** Synchronously wait for the application to be idle. Can not be called* from the main application thread -- use {@link #start} to execute* instrumentation in its own thread.*/public void waitForIdleSync() {

validateNotAppThread();Idler idler = new Idler(null);mMessageQueue.addIdleHandler(idler);mThread.getHandler().post(new EmptyRunnable());idler.waitForIdle();

}

Page 36: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

Тестирование

• Ui Test Framework• Ui Automator• Robotium/Espresso• Appium• …

Test Support Library

Page 37: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

• Собрать• Проверить• Задеплоить

Задачи

Page 38: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

• Собрать• Проверить• Задеплоить

Задачи

Page 39: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

• Разные каналы (Alpha, Beta, …)

Деплой

Page 40: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

• Разные каналы (Alpha, Beta, …)• Площадки (форумы, соц. сети, маркеты)

Деплой

Page 41: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

• Разные каналы (Alpha, Beta, …)• Площадки (форумы, соц. сети, маркеты)

Деплой

Page 42: Droidcon Moscow 2015. Настоящий Build должен делать 3 вещи собрать, проверить, задеплоить. Кирилл Харьков - Mail.Ru

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

Кирилл Харьков

+7 926 052 23 17

[email protected]

[email protected]