Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Автоматизация при разработке мобильных приложений

912 views

Published on

Доклад Михаила Кучеренка на конференции Application Developer Days-4. г.Минск 13 декабря 2013

Published in: Education
  • Be the first to comment

  • Be the first to like this

Автоматизация при разработке мобильных приложений

  1. 1. Автоматизация при разработке мобильных приложений Кучерѐнок Михаил / R-Style / Минск
  2. 2. Картинка для привлечения внимания
  3. 3. Часть I – Философская
  4. 4. Что такое автоматизация? Visiting the guy that wrote the build scripts
  5. 5. Когда нужна автоматизация? Снова забыли увеличить версию кода в манифесте? Забрали исходники не с той ветки? Не поменяли тестовый url на боевой?
  6. 6. Когда нужна автоматизация? Не отключили debug mode? Подписали не тем ключом? Забыли убрать «костыль» в коде?
  7. 7. Когда нужна автоматизация? Забыли включить аналитику/крэшлитику в билде? Опять надо заливать билд на 12+ устройств? … Много их
  8. 8. “ Из всех возможных неприятностей произойдёт именно та, ущерб от которой больше Закон Мерфи … как результат - на проекте X наступит полный Y. ”
  9. 9. Пользователи могут быть удивлены свежим обновлением
  10. 10. Ошибаются все
  11. 11. Часть II – техническая
  12. 12. CI для web разработки git clone versioning Dev build Dev unit test repository Jenkins deploy Dev QA QA Test QA QA
  13. 13. CI для мобильной разработки git clone versioning Dev build Dev unit test repository Jenkins install Dev ? QA/Dev J J J J QA/Dev QA/Dev QA/Dev
  14. 14. Ингредиенты  1. Один ленивый талантливый инженер  2. Jenkins  3. Push нотификации – Parse.com (либо GCM + свой сервер)  4. Android устройства с root правами  5. Agent.apk
  15. 15. curl post (channel=“project_x”) parse.com adb connect %device_ip% adb -s %device_ip%:5555 uninstall %package% adb -s %device_ip%:5555 install …buildWithParameters?device_ip=%wlan_ip% %artifact.apk% adb -s %device_ip%:5555 shell am start -n %package%/.MainActivity shell su setprop service.adb.tcp.port 5555 stop adbd start adbd curl -X POST -H "X-Parse-Application-Id: YOUR_APP_ID" -H "XParse-REST-API-Key: YOUR_REST_API_KEY" -H "Content-Type: application/json" -d "{"where": {"channels":"jenkins_ci_rstyle"},"data":{"action":"co m.rstyle.Agent_J.WAKE_UP" }}" https://api.parse.com/1/push -k
  16. 16. Спасибо за внимание!

×