แแฆแแกแแฆแแแแแ แแ แแแ แแแฃแแ แแ แแแฃแฅแขแแแแก แฃแแแขแแกแแแ แแฃแแแฃแ แแ แแ แแก แจแแแฃแจแแแแแฃแแ. แฌแแ แแแขแแแฃแแ แแฃแแแแก แแแแแแแแ แแแแก แแแ แแแแแ แจแแแซแแแแ แฌแแ แแแแแแแแแ แแงแแก แแแ แขแแแ แแแแแ แแแแก แกแแฎแแ.
แแแแแก แแแฌแแ แแก แจแแแแแ, แแฅแแแ แฃแแแ แแแ แฌแแฃแแแแ, แ แแ แแก:
- แแฃแจแแแแก
- แแก แแ แแ แฆแแแแก แแ แแคแแ แก, แแแ แจแแ แแก แแฅแแแแก แแแแแแแแก แแแฌแแ แแ แแแแก.
แแฃ แแ แแแ แแแ แแแ แแแแแแงแแคแแแแแฃแแแ, แแแจแแ แฌแแ แแแขแแแแก แแแแแ แแแแฎแแ แ. แแแแกแแแแแก, แ แแ แแก แแแ แแแแแ แแแ แขแแแแ แจแแแแแแฌแแแ แแ แแ แแแแแแฃแฎแแแแ แแแแแแแแแแ แแแแแแ, แฉแแแ แแแแแแแแฃแจแแแแ Continuous Integration.
CI แแ แแก แกแแแฃแจแแ แแ แแชแแกแ, แกแแแแช แแฅแแแ แแแ แแแแแแแ แแฅแแแแก แแแแก แแแแแแ แแ แแแฃแฅแขแแก แแแแจแ แ แแช แจแแแซแแแแ แฎแจแแ แแ. แแ แแฅแแแ แแ แ แแฎแแแแ แแแขแแแ แแ แแแแแ, แแ แแแแ แแฃแแแแแแ แแแแฌแแแแ, แ แแ แงแแแแแคแแ แ แแฃแจแแแแก. แแแแแแแแ แแฅแแแ แแญแแ แแแแแ แแแแ แ แแ แฎแจแแ แแ แจแแแแฌแแแแ, แฆแแ แก แแแขแแแแขแแแแชแแแแ แคแแฅแ แ. แแฅแแแ แจแแแแซแแแแ แจแแแแแฌแแแ แงแแแแแคแแ แ แฎแแแแ, แแแแ แแ แแ แฃแแแ แแ แแ แ แแขแแ.
- แซแแแ แคแแกแ แฎแแแฎแ. แแแแแกแแแแ แ แแ แแแ แแแแกแขแแก แแฃแจแแแแแก แแ แแ แกแแแแ แฃแคแ แ แซแแแ แแ, แแแแ แ แแแแแกแแแแ แ แกแแ แแแ แแก แแฃแจแแแแแก แแ แแ แกแแแแ.
- แฎแแแฎแ แจแแชแแแแแแก แฃแจแแแแก. แแแแขแแ, แจแแแซแแแแ แฌแแ แแแแจแแแก แกแแขแฃแแชแแแแ, แ แแแแกแแช แขแแกแขแแแ แฉแแขแแ แแ แแ แแกแฌแแ แคแแแแแแแ แแ แแ แแกแฌแแ แ แแแแแแแแ แจแแแแแแแแ แแงแ แขแแกแขแแ แแแแกแแแแก.
- แฎแแแฎแ แแแ แแแชแ. แแ แแแแแ แ, แ แแชแ แแแแแกแ แฃแแแ แแแแแแแแแก, แฉแแแแแ แแแ แ: โแ แ แแ แแก แจแแกแแแแฌแแแแแแ? แแ แ แกแขแ แแฅแแแ แแแแฌแแ แ - แงแแแแแคแแ แ แแฃแจแแแแก! แแ แแคแแฅแ แแ, แ แแ แแแแแแ แ แแฅแแแแแแแก แแแแฏแแ แแฅแแก แแกแแแ แแแ แแแ. แแแแ แแ แแฅแแแ แงแแแแแแแแก แฃแแแ แจแแแแแฌแแแ.
แ แแแแ แแแแฎแแ แชแแแแแ แแ แแแแแแแแ แแ แฃแฌแงแแแขแ แแแขแแแ แแชแแ Avito-แก แแแแแแฃแ แ แแแแแแแแแ แแแแก แแฃแแแจแ, แ แแแแ แแแแแแแแแแ แแกแแแ 0-แแแ 450-แแแ แแจแแแแแแแแ แแฆแแจแ แแ แ แแ แแแแกแขแ แฃแฅแชแแฃแแ แแแแฅแแแแแ แแฌแงแแแแ แแฆแแจแ 200 แกแแแแก, แแแแแแก แแแแแแแ แแแกแขแแ แแแ (
แกแแฃแแแขแ แแแคแฃแซแแแแฃแแแ Android แแ แซแแแแแแก แแแแแแแแแ, แแแแ แแ แแแแแแแแแแก แฃแแแขแแกแแแ แแแแแแงแแแแแ iOS-แแแช.
แแ แแฎแแ Avito Android-แแก แแฃแแแจแ แแ แแ แแแแแแแแ แแฃแจแแแแแ. แแแแแแ แขแแแแ, แแแก แแ แแคแแ แ แกแญแแ แแแแแแ แฃแฌแงแแแขแ แแแขแแแ แแชแแแกแแแ: แแ แแงแ แแแแแแกแแแ แแแขแแแ แแ แแแ.
แแแแ แแ แแแแแแแชแแ แแแแแแ แแ, แฃแคแ แ แแ แฃแคแ แ แแแขแ แแฎแแแ แแแแแแแแ แแแแแฉแแแ แแ แแฃแแแแช แจแแกแแแแแแกแแ แแแแแแ แแ. แ แแฆแแช แแแแแแขแจแ, แแ แแ แฃแคแ แ แคแแ แแแแฃแ แแ แจแแแฅแแแแก แแแแแก แแแขแแแ แแชแแแก แแ แแชแแกแ. แแแแแฌแงแแ Git flow-แแก แแแแแงแแแแแ.
Git flow-แแก แแแแชแแคแชแแ แแแ แแแ แแ แแก แชแแแแแแ: แแ แแแฅแขแก แแฅแแก แแ แแ แกแแแ แแ แแแแแแแแ แแแแก แคแแแแแแ, แแ แงแแแแแ แแฎแแแ แแแฎแแกแแแแแแแแกแแแแก, แแแแแแแแแ แแแ แฌแงแแแขแแ แชแแแแแฃแ แคแแแแแแก, แแฆแแแแ แแแแแแแฃแแแแแก, แแงแแแแแแ แแแก แแ แ แแแแกแแช แกแฃแ แ แแแแแแแแ แแแแแก แแแแ แแแแแแแ แแแแแแแแ แแแแก แคแแแแแแจแ, แฎแกแแแแ แแแงแแแแแก แแแแฎแแแแ. แชแแแแแก แแแกแแแแแ แแแแแ แแ แแแแแแแแแแก แแแแกแแฎแแแแแแแ, แฉแแแ แจแแแแแแฆแแ แแแแแก แแแแแฎแแแแ, แแแฃ แแแแแแแแแ แฃแแแ แจแแแแแฌแแแ แแ แแแแแแกแขแฃแ แแ แแ แแแแแแแแก แแแแ.
แแแแฌแแแแก
แจแแแ แแแแแแแแ แแแแแก แแแแแฎแแ แแแแแ แแ, แแแแ แแ แแ แ แกแแแแแ แแกแ. แแแแขแแ, แแแขแแแแขแฃแ แ แจแแแแฌแแแแแแ แแแแแแ แแแแ.
- แแแ แแแ แ แแแจแ แแแแแฌแแแแ ARK แจแแแ แแแ.
- แแแแ แ แฏแฃแแแขแแก แขแแกแขแแแ.
- แฉแแแ แแแแแแฎแแแแแ แแแแแก แแแคแแ แแแก, แ แแแแแ แฉแแแ แแแฌแแ แแแแแ แขแแกแขแแแก.
แแแแก แแแกแแแแแแ, แแฃ แ แแแแ แฃแแแ แแแแฎแแ แชแแแแแแก แแก แจแแแแฌแแแแแแ, แแแแแแฎแแแแ แแแแแแแแ แแแแก แแ แแชแแกแก Avito-แจแ.
แแก แจแแแซแแแแ แฌแแ แแแแแแแแแ แแงแแก แกแฅแแแแขแฃแ แแ แแกแ:
- แแแแแแแแแ แ แฌแแ แก แแแแก แแแแแก แแแแขแแแแ. แแแขแแแ แแชแแแก แจแแแแฌแแแแแก แแแจแแแแ แจแแแแซแแแแ แกแฌแแ แแ แแฅ - แแ commit hook-แแ, แแ แฃแแ แแแแ แแฌแแ แแแแ แจแแแแฌแแแแแแ แคแแแแ.
- แแแก แจแแแแแ, แ แแช แแแแแแแแแ แแ แแแแฌแแกแ แแแแ, แแก แฎแกแแแก pull แแแแฎแแแแแก. แแแแกแแแแแก, แ แแ แแแกแ แแแแ แจแแแแแแก แแแแแแแแแแแขแแก แคแแแแแแจแ, แแฃแชแแแแแแแแ แแแแแ แแก แแแแแก แแแแฎแแแแ แแ แจแแแแ แแแแก แกแแญแแ แ แ แแแแแแแแแก แแแกแขแฃแ แ. แแฅ แจแแแแซแแแแ แฉแแ แแแ แจแแแแฌแแแแแแ แแ build-แแแ: แกแแแแ แงแแแแ แแจแแแแแ แฌแแ แแแขแแแฃแแ แแ แแฅแแแแ, pull-แแก แแแแฎแแแแแก แแแแ แแแแแแแ แจแแฃแซแแแแแแแ.
- แแแก แจแแแแแ, แ แแช pull แแแแฎแแแแ แแแแ แแแแแแแแ แแ แแแแ แจแแแแก แแแแแแแแ แแแแจแ, แจแแแแซแแแแ แแแ แฉแแแ แแแกแแฎแแ แฎแแแแแ แแ แ: แแแแแแแแแ, แฆแแแแ, แ แแแแกแแช แงแแแแ แกแแ แแแ แ แแแแแกแฃแคแแแแ แแ แแแฃแจแแแ แแแแแแ แจแแแแฌแแแแ, แ แแแแแแแช แแกแฃแ แ.
แแ แแแแก แฃแงแแแ แแ แแแแขแแแแ แกแแแแแ แแแแก แแแจแแแแ. แ แแแแกแแช แแแแแแแแแ แก แแแแกแ แฃแแแแก แคแฃแแฅแชแแ, แแแก แกแฃแ แก แกแฌแ แแคแแ แแแแงแแแแก แแแ แแ แแแฎแกแแแก pull-แแก แแแแฎแแแแ. แแฃ แแ แแแแแแขแจแ แ แแแแแแแแ แฎแแแแ แซแแแแ แจแแแแฌแแแแ แแแแฌแงแแแ, แแก แแ แ แแฎแแแแ แแ แช แแฃ แแกแ แกแแกแแแแแแแแ, แแ แแแแ แแแแแแแก แแแแแแแแ แแแแก: แกแแแแ แแแแขแแแ แ แแฆแแชแแก แแแแฌแแแแก, แจแแฃแซแแแแแแแ แแแกแแ แแแ แแแแฃแ แแ แแฃแจแแแแ.
แฉแแแ แซแแแแแ แแแแแฌแแแแ แฉแแแแแแก แแแจแแแแ แฆแแแแ, แ แแแแแ แแแแ แ แแ แ แแ แกแแ แแแ แแแแ, แจแแแแซแแแแ แแแ แแ แแแ แจแแแ. แแแแ แแ, แกแแแฌแฃแฎแแ แแ, แ แแแแกแแช แคแฃแแฅแชแแแก แแแแ แจแแแแก แแแแแแแแ แแแแจแ, แแแแแแแแแ แก แแแชแแแแแแ แแแแแแแ แแแขแแแแชแแ แแฅแแก CI แแฆแแแฉแแแแแ แจแแชแแแแแแแก แแแแแกแฌแแ แแแแก แแแแแแ. แแแ แแแแฃแแแ แแแญแแ แแ แฉแแแก แแแแก แคแแฅแ แจแ, แ แแแแกแแช แแฃแงแฃแ แแแแ แแแแแก แแแฎแกแแแแแแจแ แแฆแแแฉแแแแ แงแแแแ แจแแชแแแแแก, แ แแ แแแ แแแแกแแ แแแแแแแแแแแ แแแแแแแกแฌแแ แแแแ, แ แแแแแ แแฎแแ แฏแแ แแจแ แแ แแก แแแแแ แ แแฎแแแ แแแแแแแแ, แ แแแแแก แจแแกแ แฃแแแแแช แแแแแ.
แแฃ แฉแแแแแ แแแแแแแก pull-แแก แแแแฎแแแแแก, แแแจแแ แแ แแก แกแแแแแ แแกแ แแแขแแแแชแแ, แ แแแแแ แกแแแแ builds แแ แแแฎแแแแ แแฌแแแแ, แแแแ แแ แจแแแแก แแแแแแแแ แแแแจแ, แ แแช แแแจแแแแก, แ แแ แแแแแแแแ แแ แจแแกแ แฃแแแแแ.
แจแแแแแแ, แฉแแแ แแแแ แฉแแแ แจแแแแแแ แกแขแ แแขแแแแ: แฉแแแ แแแฌแแ แแแแแ แจแแแแฌแแแแแแแก แแแฅแกแแแแแฃแ แแแแแแแฅแขแก แฆแแแแ แแ แแแฌแงแแแ แแแแแแ แงแแแแแแ แแ แแขแแแฃแแก แแ, แ แแช แแแแแแ แแ, แงแแแแแแ แกแฌแ แแคแก, แแฌแแแแก แแแแฎแแแแแ. แแแแ แแ แฉแแแ แแฅ แแ แแฉแแ แแแแแ - แแแ แแแแแฃแ แแ, แแแฎแแ แชแแแแแแ แจแแแแฌแแแแแแแก แกแแฉแฅแแ แแก แแแขแแแแแแชแแแก แแกแ, แ แแ แแกแแแ แฆแแแแก แ แแแแแแแแ แแแแแแแขแแแแ แแแแฎแแแแแก แจแแแแฌแแแแแแแ.
แแ แแ แแก, แฉแแแแ แงแแแแ แแแแกแขแ แฃแฅแชแแ แกแแแแแแ แกแฌแ แแคแแ แแแกแ แฃแแแ, แแแแขแแ แฉแแแ แฃแแ แแแแ แฉแแแ แแแ ARK build, Junit แขแแกแขแแแ แแ แแแแแก แแแคแแ แแแก แแแแแแแแแแ, แ แแแแ แช แแแแแแ แ pull-แแก แแแแฎแแแแแกแแแแก. แฉแแแ แฉแแแ แแแ, แแแคแแฅแ แแ แแ แฃแแ แ แแฅแแแ แแแแแก แแแคแแ แแแแ, แ แแแแแ แแแแแแแ, แ แแ แแก แแ แแแญแแ แแแแแแ.
แแ แ แแฆแ แแแแแญแแ แแ แซแแ แแแแแ CI-แแก แกแ แฃแแแ แแแงแแแแแแก (แจแแแแแแแจแ แแ แแแก แจแแคแแกแแแ แแ แแก แแแแฎแแแแแแแ, แกแแญแแ แ แแแกแจแขแแแแกแแแแก).
แแแแก แจแแแแแ แฉแแแ แแแแแฌแงแแ แจแแแแแแแ แคแแฅแ แ - แแแแแฌแแแแ แแ แกแฌแแ แแ? แกแฌแแ แแ แแแแ แแแแ แแฌแงแแแแแก pull-แแก แแแแฎแแแแแแก?
แฉแแแ แแแแแฌแงแแ แแจแแแแแแแแ แแ แคแแแแแแแก แแแแ commit-แแ, แกแแแแแแแช แแแแฎแกแแ pull-แแก แแแแฎแแแแ. แแแแ แแ แแ แแแแแแแฃแแแแแก แขแแกแขแแแแ แจแแแซแแแแ แแฎแแแแ แแฉแแแแแก, แ แแ แแแแ, แ แแแแแแช แแแแแแแแแ แแ แแแฌแแ แ, แแฃแจแแแแก. แแแแ แแ แแกแแแ แแ แแแขแแแชแแแแ, แ แแ แแแ แแ แแคแแ แ แแแแ แฆแแแ. แกแแแแแแแแแแจแ, แแฅแแแ แฃแแแ แจแแแแแฌแแแ แแแแแแแแ แแแแก แคแแแแแแแก แแแแแแแ แแแแ แแแกแจแ แคแฃแแฅแชแแแก แแแแ แแแแแแแแก แจแแแแแ.
แแแแกแแแแแก แฉแแแ แแแแฌแแ แแ แแแ แขแแแ bash แกแแ แแแขแ premerge.sh:
#!/usr/bin/env bash
set -e
git fetch origin develop
git merge origin/develop
แแฅ แงแแแแ แฃแแฎแแแกแ แชแแแแแแแ แแแแแแแแแ แแแแ แฃแแ แแแแ แแแแงแแแแแแแ แแ แแแแ แแแแแแแฃแแแ แแแแแแแแ แ แคแแแแแแจแ. แฉแแแ แแแแแแแขแแ premerge.sh แกแแ แแแขแ, แ แแแแ แช แแแ แแแแ แแแแแฏแ แงแแแแ build-แจแ แแ แแแแแฌแงแแ แแฃแกแขแแ แแแแก แจแแแแฌแแแแ, แ แแช แแแแแแ, แแแฃ แแแขแแแ แแชแแ.
แกแแแ แแฆแ แแแกแญแแ แแ แแ แแแแแแแก แแแแแแแแแชแแแก, แแแแแกแแแแแก แแแแแแก แแ แแ แกแแ แแแขแแก แแแฌแแ แแก.
แแแแแแแชแแ แแแแแแแแ แแ, แฃแคแ แ แแ แฃแคแ แ แแแขแ แแแแแแแแ แฉแแแแแแแ, แแฃแแแ แแแแแแ แแ แแ premerge.sh แฎแแแแแฎแแ แแแแฌแงแแแ แแแแ. Develop-แก แฐแฅแแแแ แแแแคแแแฅแขแฃแ แ แชแแแแแแแแแ, แ แแแแช แแแแ แฆแแแ แแจแแแแแแแแ.
แแแแแแแแ แแแแกแ, แแฃ แ แแแแ แฎแแแแ แแก:
แแ แ แแแแแแแแแ แ แแ แแแ แแฃแแแ แแฌแงแแแก แแฃแจแแแแแก A แแ B แคแฃแแฅแชแแแแแ. A แคแฃแแฅแชแแแก แจแแแฅแแแแแ แแฆแแแแฉแแแก แแแแแฃแงแแแแแแ แคแฃแแฅแชแแแก แแ แแแฅแขแจแ. answer()
แแ แแแ แแ แแแญแแแแ แแแแแฆแแแก. แแแแแแ แแฃแแแ, B แคแฃแแฅแชแแแก แจแแแฅแแแแแ แแ แคแฃแแฅแชแแแก แแฎแแ แแแ แก แแแแขแแแก แแแแแก แคแแแแแแจแ.
แแแแแแแแแ แแแ แแกแ แฃแแแแแ แกแแแฃแจแแแก แแ แฎแกแแแแ แแแแฎแแแแแก แแแแฎแแแแแก แแแแแ แแ แแก. builds แแแฌแงแแแฃแแแ, premerge.sh แแแแฌแแแแก แแ แแแ pull แแแแฎแแแแแก แฃแแฎแแแกแ แแแแแแแแ แแแแก แแแแแแแ แแแแแก แจแแกแแฎแแ - แงแแแแ แจแแแแฌแแแแ แแฌแแแแแ. แแแแก แจแแแแแ แแแแ แแแแแแแแ A แแแฎแแกแแแแแแแแก pull แแแแฎแแแแ, B แแแฎแแกแแแแแแแแก pull แแแแฎแแแแ... แแฃแ! แแแแแแแแแ แแ แจแแกแแแแแแแแ, แ แแแแแ แแแแแแแแ แแแแก แแแแ แจแแแชแแแก แแแ แก แแ แแ แกแแแฃแ แคแฃแแฅแชแแแแ.
แ แแแแกแแช แแก แแ แแแแ แแแก แแแแแแแแ แแแแก, แแก แแ แแก แแแแแแแแ แแแ แแแขแแกแขแ แแคแ. แแแแแ แแฃแแแ แแแ แแคแแ แก แจแแแแ แแแแแก แแ แจแแกแแแแฌแแแแแแ แฌแแ แแแแแแก.
แแกแ แแแฎแแ, แ แแ แงแแแแแแ แฎแจแแ แแ แแแฃแจแแแแแ แแแคแ แแกแขแ แฃแฅแขแฃแ แฃแ แแแแชแแแแแแ: แแแแแแขแแแ, แฅแกแแแ, แแแแแชแแแแ แแแแแแ. แแแฃ แแ แแแแฌแแ แ แแก แคแฃแแฅแชแแแแ แแ แแแแกแแแ, แ แแแแแแกแแช แกแฎแแ แแแแแแแแแ แแแ แแงแแแแแแ. แแแแก แแแแ แซแแแแแ แฎแจแแ แแ แแฎแแแแแแแ แแกแแแแก แกแแขแฃแแชแแแแจแ. แชแแขแ แฎแแแก แแก แกแฃแ แแแแช แแ แแฅแแแแ แฉแแแแแแแแแฃแแ.
แแแแแแแแ แแก แแ แแแแ แแแแแแ, แฉแแแ แแแแแฌแงแแ แแแ แแแแขแแแแก แจแแกแฌแแแแ, แแฃ แ แแแแ แแแแชแแแแ แแก.
แ แแแแ แแ แแแแ แฆแแแแก แแแแแแแแ แแแก
แแแ แแแแ แแแ แแแแขแ: แแฆแแแแแแแ แงแแแแ pull แแแแฎแแแแ แแแแแฎแแแแแก แแแแแแแแ แแแแกแแก. แแฃ แฉแแแแก แแแแแแแแจแ A แคแฃแแฅแชแแแ pull แแแแฎแแแแ แแแ แแแแแ, แ แแแแแแช แจแแแแก แแแแแแแแ แแแแจแ, B แแแฎแแกแแแแแแแแก pull แแแแฎแแแแ แฎแแแแฎแแ แแฅแแแแ แแจแแแแแฃแแ แแ, แจแแกแแแแแแกแแ, แจแแแแฌแแแแแแ แฉแแแจแแแแ แแแแแแแแชแแแก แจแแชแแแแแก แแแแ.
แแแแก แแแกแแแแแแ, แ แแแแแแ แฎแแแ แแแกแญแแ แแแแ แแแแก, แแแแแฎแแแแ แแแแแแแแ แแ แ PR-แแ. แฉแแแ แแฎแกแแแ แแ PR-แก: แแ แ แแจแแแแแ, แแ แ แแแจแแแแ แฉแแแแแ. แแแก แจแแแแแ, แ แแช แแแ แแแแ แแแแ แ แแแแ แแแแแแแแ แแแแแแแแ แแแแ, แแแแ แ แฃแแแ แแฆแแแแก. แกแแแ แแ แฏแแแจแ, แแ แ PR แแแแแฎแแแก แจแแแแฌแแแแแก แกแแ แกแแ แแแก: 2 + 1 = 3.
แแ แแแชแแแจแ, แแแ แแแ. แแแแ แแ แฉแแแ แแแแแแฎแแแแ แกแขแแขแแกแขแแแแก แแ แฉแแแแก แแฃแแแจแ แขแแแแฃแ แ แกแแขแฃแแชแแ แแงแ 10 แฆแแ แแแแ แ, แจแแแแแ แแ แจแแแแฌแแแแแแแก แ แแแแแแแแ แแ แแก แแ แแแ แแกแแก แฏแแแ: 10 + 9 +... + 1 = 55. แแแฃ, แแแแแฆแแ 10. PR-แแแ, แแฅแแแ แฃแแแ แแแแแแแแแแ 55-แฏแแ . แแ แแก แแ แแก แแแแแแฃแ แกแแขแฃแแชแแแจแ, แ แแแแกแแช แงแแแแ แจแแแแฌแแแแ แแแแแก แแแ แแแแแ, แ แแแแกแแช แแ แแแแ แฎแกแแแก แแแแแขแแแแ แแแแฎแแแแแก, แกแแแแ แแก แแแแฃแแ แแแแฃแจแแแแแฃแแแ.
แฌแแ แแแแแแแแแ แแฅแแแแ แแแแ, แ แแแแ แช แแแแแแแแแ แ, แ แแแแแแช แแแ แแแแแ แฃแแแ แแแแญแแ แแก แฆแแแแแก โแจแแ แฌแงแแโ, แ แแแแแ แแฃ แแแแแแแแ แแแแก แแแแแแแก, แแแจแแ แแแแแฌแแแ แแแแแแ, แกแแแแ แงแแแแ แแแแแแแแ แแแแแ แแแแแแแก... แแ แ, แแก แแ แแแฃแจแแแแแก. , แแก แกแแ แแแแฃแแแ แจแแแแแแแแก แแแแแแแแ แแแแก.
แแแแ แ แจแแกแแซแแ แแแ: แจแแแแ แแแแ แแแแฎแแแแแแ แแแแแก แแแแฎแแแแแก แจแแแแแ. แแแฃ, แแฅแแแ แฎแกแแแ pull-แแก แแแแฎแแแแแก, แแแ แแแแแ แกแแญแแ แ แ แแแแแแแแแก แแแฌแแแแแแแก แแแแแแแแแกแแแ, แแกแฌแแ แแแ แแแแก, แ แแช แกแแญแแ แแ แแ แจแแแแแ แแฌแงแแแ build-แแแก. แแฃ แแกแแแ แฌแแ แแแขแแแฃแแแ, pull แแแแฎแแแแ แแแแ แแแแแแแแ แแแแแแแแ แแแแ. แแ แจแแแแฎแแแแแจแ, แแแแแขแแแแแ แแแแแขแแแ แแแแแ แแ แแ แแก, แแแแ แแ แแแแแฎแแแฃแ แแแ แแแแจแแแแแแแแแ แจแแแแแแแแ. แ แแแแ แช แแแแแแแแแ แ, แ แแแแกแแช แแฎแกแแ pull แแแแฎแแแแแก, แแแจแแแแ แแแแแ แแแแฎแ, แแแฃแจแแแแแก แแฃ แแ แ. แแแแแแแแแ, แแฃ แขแแกแขแ แแแ แแแฎแแ แฎแแ, แแฅแแแ แฃแแแ แกแฌแ แแคแแ แแแแแแกแฌแแ แแ แแแ. แแแแแแแแแแฃแแ แแจแแแแแแก แจแแแแฎแแแแแจแ, แฃแแฃแแแแจแแ แ แแแแแแแก แแ, แจแแกแแแแแแกแแ, แแแแแ แแแแแแแแ แแแ. แแก แแ แช แฉแแแ แจแแแแแคแแ แ.
แจแแแแแแ, แแแ แฉแ แแฎแแแแ แแแกแแแ แแแ แแแแขแ - แแแแแกแแแแแ. แแแแแ แฉแแแแ แแแแ, แงแแแแ แฉแแแแ แฌแงแแ แ แแแแฎแแแ แกแแชแแแจแ Bitbucket แกแแ แแแ แแ. แจแแกแแแแแแกแแ, แฉแแแ แฃแแแ แจแแแแแแฃแจแแแแแแแ แแแแฃแแ Bitbucket-แแกแแแแก.
แแก แแแแแแแขแ แฃแแฃแแแแแแงแแคแก แแแแฎแแแแแก แจแแ แฌแงแแแก แแแฅแแแแแแก. แแแกแแฌแงแแกแ แกแขแแแแแ แขแฃแแแ: แแฎแกแแแแ PR, แแแแฅแแแแแ แงแแแแ แแกแแแแแแ, แแแกแ แฃแแแแฃแแแ แแแแแก แแแแฎแแแแ. แแแแ แแ แแแก แจแแแแแ, แ แแช แแแแแก แแแแฎแแแแ แแแกแ แฃแแแแแ แแ แแแแแแแแแ แ แแแแแฌแงแแแขแก แแแแฌแแแแฃแแแก โแจแแ แฌแงแแแแโ, แแแแแแแขแ แแแแฌแแแแก, แแฃ แ แแแแ แแแแแแแแ แแแแก แแแแแแแ แแแแแแ แแงแ แจแแแแฌแแแแฃแแ แจแแแแฌแแแแแแ. แแฃ แแแแแแแแแแแขแ แแแแแฎแแแ build-แแแแก แจแแแแแ, แแแแแแแขแ แแ แแแฃแจแแแแก แแกแแแ แแแแฎแแแแแก แแแแ แแแแแแแแก แแแแแแ แคแแแแแแจแ. แแก แฃแแ แแแแ แแแแแแฎแแแแก แจแแแแ แแแแ แฃแแฎแแแกแ แแแแแแแแ แแแแก แแแแกแขแ แฃแฅแชแแแแก.
แฉแแแแก แแแแแแแแจแ แฃแ แแแแ แแกแแฌแแแแแฆแแแแแ แชแแแแแแแแแแ, แแกแแแ แแแแแแแแแแ แฌแแ แฃแแแขแแแแแ แแฅแแแแ แแแแแแแแชแแแก แจแแชแแแแแก แแแแ. แจแแกแแแแแแกแแ, B แคแฃแแฅแชแแแก แจแแแฅแแแแแก แแแฃแฌแแแก แแแแแก แจแแกแฌแแ แแแ, แฉแแแแแแก แแแแแขแแแ แแแ, แจแแแแแ แแแแแแแขแ แแแขแแแแขแฃแ แแ แแแแแแงแแแแแก pull-แแก แแแแฎแแแแแก.
แแ แแแแฃแแแก แแแแแ แแแแแแ, แฉแแแ แกแแจแฃแแแแ 2,7 แแแแแฎแแแแแก แแแจแแแแแก แแแแแแแแแ แแแแ แแแแฎแแแแแก แแแแฎแแแแแ. แแแแฃแแแ แแงแ 3,6 แแแจแแแแ. แแก แจแแแแแคแแ แ.
แแฆแกแแแแจแแแแแ, แ แแ แแ แแแแแแแขแก แแฅแแก แแแแแ: แแก แแฎแแแแ แแ แแฎแแ แแแแแแฎแแแแก build-แก. แแแฃ, แฏแแ แแแแแ แแ แแก แแแขแแ แ แคแแแฏแแ แ, แ แแแแแก แแแจแแแแแแแแช แแแแคแแแฅแขแฃแ แ แชแแแแแแแแแ แจแแแซแแแแ แแแแแแแแ แแแก. แแแแ แแ แแแแก แแแแแแแแ แแแแแแแ แแ แฉแแแ แแแแแแแแแ แแก แแแ แแแแแ แแแฌแงแแแแก แ แแแแแแแแแกแ แแ แฌแแ แฃแแแขแแแแแแแก แแแแแแแแแก แจแแ แแก. แแ แฌแแแแฌแแแจแ แแฎแแแแ แแ แแฎแแ แแแแกแ แแแ, แแกแ แ แแ, แแแแแ, แฃแจแแแแแแ แแ แงแแคแแแ.
Bitbucket แแแแฃแแแก แแแ แแแแ แแแ แกแแแก แแแกแแฌแแ แแ แแ แ แแแแ แ แแแแแญแแ แแ.
แแฎแแแ แฉแแแแแ
แแแแกแแแแจแ แฉแแแแ แแฃแแแ แแแ แซแแแแแแ แแ แแแก. แแแแแขแแแฃแแแ แแฎแแแ แฉแแแแแ.
แฉแแแ แแคแแฅแ แแแแแ: แ แแขแแ แแแฃแจแแแ แจแแชแแแแแแ, แแฃ แแแแ แแแแแแแ แแชแแแแแ แจแแกแแซแแแแแแแ? แแ แแแแขแแ แแแแแฎแแ แชแแแแแก แกแขแแขแแแฃแ แ แแแแแก แแแแแแแ. แแแแแฌแงแแ lint-แแ, แ แแแแแแช แจแแแแก Android SDK-แจแ. แแแแ แแ แแ แแ แแก แแแ แกแแแ แแแ แแ แแชแแแ แแแขแแแแแก แแแแแ แแฃแจแแแแ แแ แฉแแแ แฃแแแ แแแฅแแแแ แแแขแแแแจแ แแแฌแแ แแแ แแแแแแแชแแแก 75%. แแแแขแแ, แฉแแจแแแแแฃแแ แแแ แแแ แแแแแแขแ lint Android Studio แแแแฌแแแแก.
แแแแกแแแแก แแแแ แ แแแ แงแแแแแแแ แแแแแแฌแแ: แแแแฆแแ Android Studio, แฉแแแแแแแ Docker-แจแ แแ แแแฃแจแแแ CI-แแ แแแ แขแฃแแแฃแ แ แแแแแขแแ แแ, แแกแ แ แแ แแคแแฅแ แแก, แ แแ แแฃแจแแแแก แแแแแแแ แแแแขแแแแ. แแแแ แแ แแแฃแจแแแ.
แแกแแแ แแ แแแ แแแแจแ แแแแแฌแงแแ แแแแ แ แฌแแ แ แแแกแขแ แฃแแแแขแฃแแ แขแแกแขแแแ แแ แแแแฎแแ แชแแแแแ แแแ แแแแก แขแแกแขแแ แแแ. แแก แฎแแแแ แแแจแแ, แ แแแแกแแช แแแแแ แแ แแแแ แกแแชแแแแแ แ แกแแ แแแจแแขแ แชแแแแแฃแแ แแชแแ แ แฎแแแแกแแแแก แแ แขแแกแขแ แจแแแแแแ แฎแแแแแแ แกแแ แแแจแแขแแก แแแแแฆแแแแกแแแ แแ แแแกแ แจแแแแ แแแ แกแขแแแแแ แขแฃแแแแ แแแ แแแแแ แแแฅแกแแ-แแแฅแกแแแแแ. แแฃ แแ แกแแแแแก แจแแฃแกแแแแแแแ, แแก แแแจแแแแก, แ แแ แแแแแแแแแ แกแแแฆแแช แแ แแกแฌแแ แแ แแ แ แแฆแแช แแ แแกแฌแแ แแ แกแขแแแจแ.
แแแแ แแ แแแกแขแ แฃแแแแขแฃแแ แขแแกแขแแแ แแ แกแแ แแแจแแขแแก แขแแกแขแแแ แฃแแแ แฉแแขแแ แแแก แแแฌแงแแแแแแแแแแ: แแแฃแแแขแแ แแแแ แแ แ แแแแฃแ แแแฌแงแแแแแแแแแแ. แแแแก แแแแแแแแกแฌแแแแแแ, แ แแ แแแแ แ แขแแกแขแแ แแ แฎแจแแ แแ แขแแ แแแแ, แแแแแ แคแแ แแแ แกแแญแแ แ. แกแแแฃแแแ แ แคแแ แแแก แแแฌแงแแแ แซแแแแแ แจแ แแแแขแแแแแแ, แแแแขแแ แแแแแแแ แแแ แแแ แแแแขแ - Firebase Test Lab.
Firebase แขแแกแขแแก แแแแแ แแขแแ แแ
แแก แจแแแ แฉแ แแแแขแแ, แ แแ Firebase แแ แแก Google-แแก แแ แแแฃแฅแขแ, แ แแช แแแแก แแแจแแแแก, แ แแ แแก แกแแแแแแ แฃแแแ แแงแแก แแ แแแแแแแแ แกแแแแ แแฃแแแ, แ แแ แแแแกแแ แแแแแแแก. แคแแกแแแ แแแแแแ แฃแแแ: แ แแแแฃแ แ แแแฌแงแแแแแแแแก แแฃแจแแแแแก แกแแแแจแ 5$, แแแฃแแแขแแ แแก แแฃแจแแแแแก แกแแแแจแ 1$.
Firebase แขแแกแขแแก แแแแแ แแขแแ แแแก แฉแแแแก CI-แจแ แแแแแ แแแแก แแแแฎแแแแแแ แกแแแ แแแแ แ แแแกแญแแ แแ.
แแแแ แแ แแฃแแแ แแแ แซแแแแแแ แแ แแแก แแ, แกแแแฌแฃแฎแแ แแ, Firebase-แแ แฉแแแแ แแแแ แแฃแแแ แแแแฌแงแ. แแ แแ แแก แแแก แแ แฐแฅแแแแ แแ แแแแแ แ SLA. แฎแแแแแฎแแ Firebase แแแแแซแฃแแแแแ แแแแแแแแแแแแ, แกแแแแ แแแฌแงแแแแแแแแแแก แกแแญแแ แ แ แแแแแแแแ แฃแคแแกแ แแฅแแแแแแ แขแแกแขแแแแกแแแแก แแ แแ แแแฌแงแแแแแ แแแ แแแฃแงแแแแแแแแ แจแแกแ แฃแแแแแก, แ แแแแ แช แแแแแแแแ. แ แแแจแ แแแแแแ แแแฎแแแแ แกแแแแแแแ แแแแ แซแแแแ, แ แแช แซแแแแแ แแแแ แแ แแ. แแแกแขแ แฃแแแแขแฃแแ แขแแกแขแแแ แขแแ แแแแแแ แงแแแแ แแแแ แแ, แแแแแแแแแแแ แแแ แแแแช แจแแแแแแ แแแแแแแแ แแแ แแ แจแแแแแ แงแแแแแแแแฃแ แ แแแแแกแแฎแแแ แแแแแแ แแ แแแแแ แแแแฎแแ. แแแแแแแ, แแแแแฌแงแแ Firebase-แแก แแแขแแแแแ แแ แจแแแ แกแแแฃแจแแ, แ แแแแแ แแฃแแแ แกแแแแแ แแกแแ แแแแแแ แแ.
แแแแแ แ + แแแแแแ + แแแจแ
แฉแแแ แแแแฆแแ Docker, แฉแแแกแแแ แแแกแจแ แแแฃแแแขแแ แแแ, แแแแฌแแ แแ แแแ แขแแแ แแ แแแ แแแ Python-แจแ, แ แแแแแแช แจแแกแแคแแ แแก แแแแแแขแจแ แแแแแแฅแแก แแแฃแแแขแแ แแแแก แกแแญแแ แ แ แแแแแแแแ แกแแญแแ แ แแแ แกแแแจแ แแ แแฉแแ แแแก แแแ แกแแญแแ แแแแแก แจแแแแฎแแแแแจแ. แแ, แ แ แแฅแแ แฃแแแ, แ แแแแแแแแ แแแจแแก แกแแ แแแขแ - แกแแ แแแฅแแแแแแแ แแแ แแแ แแจแ?
แฎแฃแแ แแแแ แ แแแกแญแแ แแ แกแแแฃแแแ แ แกแแขแแกแขแ แแแ แแแแก แจแแฅแแแแก.
แจแแแแแแ, แงแแแแแ แแแงแแแแแก แแแแฎแแแแแกแแแแก แแงแ แจแแ แฌแงแแแก แแแแแแ แแแแก แแ แชแแแ แกแแ:
- ARK แจแแแ แแแ;
- แฏแฃแแแขแแก แขแแกแขแแแ;
- แแแแขแ;
- Android Studio แแแแฌแแแแก;
- แแแกแขแ แฃแแแแขแฃแแ แขแแกแขแแแ;
- แกแแ แแแจแแขแแก แขแแกแขแแแ.
แแแแ แแแแแแแ แแแชแแแ แแ แแแแแ แจแแกแแซแแ แแแแ แแ. แขแแฅแแแแฃแ แแ แงแแแแแคแแ แ แแฃแจแแแแแ, แแแแ แแ แแแแแแแแแ แแแ แฉแแแแแแ, แ แแ แจแแแแแแแแก แแแแแแแแ แซแแแแแ แแ แซแแแ แแงแ.
แ แแแแแแ แฎแแแแ แซแแแแแ แแ แซแแแ? แฉแแแ แแแขแแแ แแแ แแแแแชแแแแแ Bitbucket-แแแ แแ TeamCity-แแแ แแแแแแแแก แกแแกแขแแแแจแ แแ แแแแฎแแแแ แแแแก แแแแแแแก แกแแจแฃแแแ แแ แ 45 แฌแฃแแ. แแแฃ, แแแแแแแแแ แ, pull-แแก แแแแฎแแแแแก แแแฎแกแแแกแแก, แกแแจแฃแแแแ 45 แฌแฃแแก แแแแแแแ แแจแแแแแแแแแก แจแแแแแแแก. แฉแแแ แแแ แแ, แแก แแแแ แแ แแ แแกแ แแฃแจแแแแ แแ แจแแแซแแแแ.
แ แ แแฅแแ แฃแแแ, แฉแแแ แแแแแแฌแงแแแขแแ แแแแแฉแฅแแ แแ แงแแแแ แฉแแแแ แแจแแแแแ.
แแแแแฉแฅแแ แแ
แแฎแแแแแ, แ แแ แจแแแแแแแ แฎแจแแ แแ แ แแแจแ แแแแแแ, แแแ แแแแ แ แแกแแช แแแแแแแแ แแ แแก แแงแแแ แแแขแ แแแแ แแขแฃแ แ โ แแ แชแแแ แแแแแแแแ แแแ แงแแแแแแ แแแ แขแแแแ. แจแแแแแแแแ แจแแฌแงแแแขแแก แ แแแ, แแแแ แแ แแแแแแแก แแ แ แแฎแแแแ แแแแแ แจแแแชแแ แแ, แ แแแแแ แแแแแ แแแแแแ แ แจแแแแฌแแแแแก แซแแแแแ แแแแ แแ แ แแแกแญแแ แแ.
แฉแแแแแแก แฌแแจแแ, แ แแแแแแกแแช แซแแแแแ แแแแ แแ แ แกแญแแ แแแแ
แฉแแแแแ แฃแฌแงแแแขแแ แแแขแแแ แแชแแแ แจแแแซแแแแ แแแแญแแ แแก แแ แขแแแแก แจแแชแแแแแแ แแ แแ แแแแแแแแ.
- แแ แแแแ แแแก. CI-แก แจแแฃแซแแแ แแแแคแแฅแกแแ แแก แแแแแแแแชแแแก แจแแชแแแแ, แ แแแแกแแช แ แแฆแแช แแ แงแแแแแแแแ แแแแคแแแฅแขแฃแ แ แชแแแแแแแแแแก แแแแ. แ แแแแ แช แฃแแแ แแแฅแแ, แแแจแแ แแแ แแแแ แแแ แแคแแ แก แแฌแงแแแก, แแแแแแแแ แแแ แฉแแ แแแแ แแ แงแแแแ แแแ แแแฃแแแแก.
- แจแแชแแแแ แฅแชแแแแจแ. แแแแแแแแแ, แ แแแแกแแช แแแแแแแชแแ แแจแแแแแฃแแแ, แแแแ แแ แแจแแแแ แฆแแแแแแ แแแญแแ แแกแแก, แแ แฆแแแแแ แกแแแ แแแ แแ แแ แแก แแแญแแ แแแ. แแก แชแฃแแแ, แ แแแแแ แแกแแแแ แจแแชแแแแแ แจแแแซแแแแ แแแแฆแฌแแแก แแแแฎแแแ แแแแแก.
- แจแแชแแแแ แแแแแแแแแแจแ. แแแแแแแแแ, แฆแแแแแแ แแแฌแแแแฃแแแแฃแแแ, แแแแ แแ แแแแแขแแแแแแ 10 แแแฅแกแแแ แแแ แชแฎแแแ.
- แขแแฅแแแแฃแ แ แแแแแแแแแแแแก แแ แแ.
แแ แกแแแก แแแแแแแแแ แแแแก แจแแแแแ แแแแฎแแแแ, แ แแ แแฎแแแแ แแแ แแแแ แแ แ แแฃแแฅแขแแ แแ แแขแแแฃแแ. แฉแแแ แแแแแแ, แแแ แแแ แ แแแจแ, แแกแแแ แแ แแแแแแแแ แแแแแญแแ แแ. แแแแแแแแแแก แฎแแ แแแแแแ แแฆแแแฉแแแแแแ แแแแแแแแก แแแแฎแแแแแก แแขแแแแ แแ แจแแแซแแแแ แแแแแแแ แแแแแกแฌแแ แแแก. แขแแฅแแแแฃแ แแแแแแแแแแแแกแแแ แแแแแแแแแแ แแแแแฎแแแก แชแแแแแฃแ แแ แแชแแกแก แแ แแแแแแแแแก, แแแแขแแ แแแแแแฌแงแแแขแแ, แ แแ แแ แแแแแแแแแแฌแแแแแแ แแก แแแแฎแแแแแ.
แแ แแแแกแแคแแแแชแแแแแ แแแแแแแแแแ แ, แฉแแแ แจแแแชแแแแแ แฉแแแแแแก แแแแแ แกแแ. แแแแแแแแแ แแแแขแ แแ แแแแแแ แแแกแ แแแจแแแแ แฆแแแแ: แแฎแแแแ แแแแกแแแแก, แ แแ แแแแแแแแแก แแแแแ แแจแ แแแแก แจแแกแแฎแแ, แแฃ แ แแแแแแ แแ แแแแแแ แแงแ แแ แแแฅแขแจแ. แจแแแแแแฎแแแแ, แ แแ แขแแฅแแแแฃแ แแแแแแแแแแแแแ แชแแแแ แแแแฃแจแแแ แแ Android Studio-แก แจแแแแฌแแแแแแ แกแ แฃแแแแ แแแขแแแแแฃแแ แแงแ. Android Studio Docker-แจแ แแแกแแแฅแขแแ แแแแก แแแกแแจแแแแแ แกแแแแขแแ แแกแแ แแฆแแ แก, แแแแ แแ แฃแแแ แแ แแ แแแแแแแก แแฌแแแแก แแฎแแ แแแญแแ แแจแ. Android Studio แแแ แกแแแแแก แแแแแกแแแแ แ แแแแแฎแแแแ แแแจแแแแก แแ แซแแแแก แแแฃแแแแแ แจแแชแแแแแแแแ. แแกแแแ แ แแฃแแ แแงแ แกแแ แแแจแแขแแก แขแแกแขแแแแก แแฎแแ แแแญแแ แ, แ แแแแแ แแแแแแแแแแ แแ แแงแ แซแแแแแ แกแขแแแแแฃแ แ แแ แแงแ แชแ แฃ แแแแแแแแ. แกแแ แแแจแแขแแก แขแแกแขแแแ แแแแฆแแแฃแแแ แกแแแแแขแ แแแ แกแแแแแ.
แจแแแแแแ, แฉแแแ แแแแ แฉแแ:
- ARK แจแแแ แแแ;
- แฏแฃแแแขแแก แขแแกแขแแแ;
- แแแกแขแ แฃแแแแขแฃแแ แขแแกแขแแแ.
Gradle แแแกแขแแแชแแฃแ แ แฅแแจแ
แแซแแแ แจแแแแฌแแแแแก แแแ แแจแ แงแแแแแคแแ แ แฃแแแแแกแ แแแฎแแ. แแแแ แแ แกแ แฃแแงแแคแแแแแแก แกแแแฆแแแ แ แแ แแฅแแก!
แฉแแแแ แแแแแแแชแแ แฃแแแ แแแงแแคแแแ แแงแ แแแแฎแแแแแแ 150 gradle แแแแฃแแแ. Gradle แแแกแขแแแชแแฃแ แ แฅแแจแ, แ แแแแ แช แฌแแกแ, แแแ แแแ แแฃแจแแแแก แแ แจแแแแฎแแแแแจแ, แแแแขแแ แแแแแแฌแงแแแขแแ แแแกแ แแแกแแแฏแแ.
Gradle แแแกแขแแแชแแฃแ แ แฅแแจแ แแ แแก แกแแ แแแกแ, แ แแแแแกแแช แจแแฃแซแแแ แฅแแจแ แจแแแแแฎแแก แแแแกแขแ แฃแฅแชแแฃแแ แแ แขแแคแแฅแขแแแ แชแแแแแฃแ แแแแฃแแแแจแ แแแแแแแแฃแแแฃแ แ แแแแชแแแแแแกแแแแก. Gradle, แแแชแแแแ แแแแกแ, แ แแ แ แแแแฃแ แแ แจแแแแแแแแก แแแแ, แแงแแแแแก HTTP-แก, แ แแแ แแแแแแแฃแแแก แแแกแขแแแชแแฃแ แฅแแจแแ แแ แฐแแแแฎแแก แแแแแแ แฃแแแ แจแแแกแ แฃแแ แแฃ แแ แ แแก แแแแแแแแ. แแฃ แแ, แแก แฃแแ แแแแ แฉแแแแขแแแ แแแแก แจแแแแแก.
Gradle แแแกแขแแแชแแฃแ แ แฅแแจแแก แแแจแแแแ แแแ แขแแแแ, แ แแแแแ Gradle แฃแแ แฃแแแแแงแแคแก Docker แกแฃแ แแแก. แฉแแแ แแก แแแแแฎแแ แฎแแ แกแแ แกแแแแจแ.
แกแแแแแ แแกแ แแงแ Docker-แแก แแแจแแแแ แแ แแ แแแฅแขแจแ แแ แแ แฎแแแแก แแแฌแแ แ. แแแแ แแ แแแฃแฎแแแแแแ แแแแกแ, แ แแ แแแกแ แกแฌแ แแคแแ แแแจแแแแ แจแแกแแซแแแแแแแ, แกแแแแแแ แแแแ แแ แ แแแกแญแแ แแแแ แแแแกแแแแแก, แ แแ แงแแแแแคแแ แ แแแ แแแ แแแฃแจแแแก.
แฅแแแแแ แแแชแแแฃแแแ แฅแแจแ แแแแแขแแแแแฃแแ แแ แแคแแแ.
แแแแแแแแแ แฅแแจแแก แแแแแขแแแแแแก แแ แแชแแแขแ แแงแ แแแแฎแแแแแแ 65. แกแแแ แแแแ แแก แจแแแแแ แฉแแแ แแแแแฎแแ แฎแแ แแ แแแแจแแแแแแแแก 20%-แแแ แแแแ แแ. แแฆแแแฉแแแ, แ แแ แแแแชแแแแแก, แ แแแแแแกแแช Android แแแแแแแชแแ แแแ แแแแแก, แแฅแแ แฃแชแแแฃแ แ แขแ แแแแแขแฃแแ แแแแแแแแแแฃแแแแแแ, แ แแก แแแแแช แแ แแแแแ แแแแแขแแแ แฅแแจแ.
แฅแแจแแก แจแแแ แแแแแ, แฉแแแ แแแแจแแแแแแแแแ แแแแแฉแฅแแ แแ แแจแแแแแแแแ. แแแแ แแ แแฌแงแแแแก แแแ แแ, แแกแแแ แแ แกแแแแแก แแแกแขแ แฃแแแแขแฃแแ แขแแกแขแแแ แแ แแแ แแแแ แแ แ แกแญแแ แแแแ. แจแแกแแซแแแ, แงแแแแ แขแแกแขแแก แฉแแขแแ แแแ แแ แแ แแก แกแแญแแ แ แงแแแแแ แแแงแแแแแก แแแแฎแแแแแกแแแแก. แแแแก แแแกแแ แแแแแแ แแแงแแแแแ แแแแแฅแแแแแแแก แแแแแแแก.
แแแแแฅแแแแแแแก แแแแแแแ
pull-แแก แแแแฎแแแแแ, แฉแแแ แแแแ แแแแแ git diff-แก แแ แแแแฃแแแแ แจแแชแแแแ Gradle แแแแฃแแแแก.
แแแ แ แแฅแแก แแฎแแแแ แแแกแขแ แฃแแแแขแฃแแ แขแแกแขแแแแก แฉแแขแแ แแแแก, แ แแแแแแแช แแแแฌแแแแแ แจแแชแแแแ แแแแฃแแแแก แแ แแแแแ แแแแแแแแแแฃแ แงแแแแ แแแแฃแแก. แแแแแแแแ แแแแฃแแแแแก แขแแกแขแแแแก แแแจแแแแแก แแแ แ แแ แแฅแแก: แแฅ แแแแ แแ แจแแชแแแแแ แแ แแแ แแคแแ แ แแแขแแฎแแแก.
แแแกแขแ แฃแแแแขแฃแแ แขแแกแขแแแ แแ แช แแกแ แแแ แขแแแแ, แ แแแแแ แแกแแแ แฃแแแ แแแแแแแกแแแก แแแแ แแแแแก แแแแแแแชแแแก แแแแฃแแจแ. แฉแแแ แแแแแแแงแแแแ แแแ แแกแขแแแ แแแแขแแแแแแก แแแแแแแแ, แ แแแ แแแแแแแ, แ แแแแ แแแแฃแแก แแแฃแแแแแก แแแแแแฃแแ แขแแกแขแ.
แแแกแขแ แฃแแแแขแฃแแ แขแแกแขแแแแก แคแฃแแฅแชแแแแแ แแแแก แแแแแฎแแแแ แแกแ, แ แแ แแแ แแฎแแแแ แฉแแ แแฃแแ แแแแฃแแแแแก แขแแกแขแแ แแแ แแแกแญแแ แแแ แแแแฎแแแแแแ แ แแ แแแแ แ.
แแแกแแแฅแขแแ แแแแก แแแฉแฅแแ แแแแก แแแแแแแ แฌแแ แแแขแแแแ แแแฃแจแแแ. 45 แฌแฃแแแแแ แแแแฎแแแแแแ 15-แแแ แแแแแแ. แฃแแแ แแแ แแแแฃแ แแ, แ แแ แแแแแฎแแแ แกแแแแ แแแแแแแแแ แแจแแแแแแก.
แแแแ แแ แแฎแแ แแแแแแแแแ แแแแ แแแแฌแงแแก แแ แแขแแแแแ, แ แแ แแแ แแ แแกแแแ, แ แแแแแ build-แแแ แแฎแกแแแแ, แกแแ แฃแแแ แแแฎแแ แแฃแ แแแแ, แ แแขแแ แแ แแก build แฌแแแแแ, แ แแแแแ แขแแกแขแ แฉแแแแ แแ แแ แ.แจ.
แฃแแฃแแแแจแแ แแแ แแแแแแจแแ แแแฃแแ แแ แแแแแแแแ แแแแแแแก แแแแแแแแ แแแแก, แแแแขแแ แแชแแแแแแแแ, แ แแช แจแแแซแแแแ แแแแคแแ แแ แแแขแแแฃแ แ แแแคแแ แแแชแแ แแแแแแฌแแแแแแแ แแแแแแฃแแ PR-แแกแ แแ แแจแแแแแแแแแก แจแแกแแฎแแ. แแแแแฌแงแแ Bitbucket-แจแ PR-แแก แแแแแแขแแ แแแแ, แกแแแแช แแแแแแแแฃแแแ, แ แแแแแ build แฌแแ แฃแแแขแแแแแ แแงแ แแ แ แแขแแ, แแ แแแแฌแแ แแ แแแแแแแแแแ แแฃแแ แจแแขแงแแแแแแแแแ Slack-แจแ. แกแแแแแแ แฏแแแจแ, แฉแแแ แจแแแฅแแแแแ แแแแ แแแก PR แแแคแ, แ แแแแแจแแช แแแชแแแฃแแแ แงแแแแ แแฌแงแแแแก แกแแ, แ แแแแแแช แแแแแแแ แแฃแจแแแแก แแ แแแแ แกแขแแขแฃแกแ: แ แแแจแ, แแแจแแแแฃแแ, แแแแ แแฃแแ แแ แแแกแ แฃแแแแฃแแ. แจแแแแซแแแแ แแแแญแแ แแ build-แก แแ แแแฎแแแแ แแแก แแฃแ แแแแจแ.
แแฅแแกแ แแแแ แ แแแแฎแแ แฏแ แแแขแแแฃแ แแแแแฎแแแฃแ แแแแแ.
แแแแแแแ
แแแแแแแแแ แฃแแฎแแแก แแกแขแแ แแแแ. แแแแแฎแแแฃแ แแแแก แกแแแแแฎแแก แแแแแญแ แแก แจแแแแแ, แฉแแแ แแแแแแแ แแฎแแ แแแแแแ - แแแแแแฌแงแแแขแแ แแแแจแแแแ แฉแแแแ แแแฃแแแขแแ แแก แคแแ แแ. แ แแแแกแแช แแแแ แ แขแแกแขแ แแ แแแฃแแแขแแ แแ, แแแแ แแแ แแแ แ แแฃแแแ. แจแแแแแแ, แงแแแแ แฉแแแแ แแแฃแแแขแแ แ แแแแแแแแ k8s แแแแกแขแแ แจแ แ แแกแฃแ แกแแแแก แแแฅแแแแ แแแแแฏแแแแขแแ.
แแแ แแ แแแแกแ, แแ แกแแแแแก แกแฎแแ แแแแแแแ.
- แแแแแ แฃแแแ แแแแขแ (แแ แกแฎแแ แกแขแแขแแแฃแ แ แแแแแแแ). แฉแแแ แฃแแแ แแแฃแจแแแแ แแ แแแแแ แแฃแแแแแ.
- แแแฃแจแแแ แงแแแแแคแแ แ PR แแแแแแ แแ แแแแแแแ แแแแแแแ แขแแกแขแแแ แงแแแแ SDK แแแ แกแแแแ.
แแกแ แ แแ, แฉแแแ แแแแแแแแแแ แฃแฌแงแแแขแ แแแขแแแ แแชแแแก แแแแแแแแ แแแแก แแกแขแแ แแแก Avito-แจแ. แแฎแแ แแแแแ แ แแแแแแแแ แ แฉแแแ แแแแชแ แแแแแชแแแแ แแฃแแฎแแ.
ะกะพะฒะตัั
แแฎแแแแ แแ แแ แ แฉแแแ แ แแ แจแแแแซแแแก, แแก แแฅแแแแแแ:
แแแฎแแแ, แคแ แแฎแแแแ แแงแแแแ shell แกแแ แแแขแแแแแ!
Bash แแ แแก แซแแแแแ แแแฅแแแแ แแ แซแแแแ แ แแแกแขแ แฃแแแแขแ, แแก แซแแแแแ แแแกแแฎแแ แฎแแแแแ แแ แกแฌแ แแคแแ แกแแ แแแขแแแแก แแแฌแแ แ. แแแแ แแ แแแแ แจแแแซแแแแ แแแฎแแจแ แแแแแ แแแ แแ, แกแแแฌแฃแฎแแ แแ, แฉแแแ แฉแแแแแ แแแ.
แงแแแแแคแแ แ แแแแฌแงแ แแแ แขแแแ แกแแ แแแขแแแแ, แ แแแแแแแช แแฃแจแแแแแแแ แฉแแแแก แแแแกแขแ แฃแฅแชแแฃแ แแแแฅแแแแแแ:
#!/usr/bin/env bash
./gradlew assembleDebug
แแแแ แแ, แ แแแแ แช แแแแแฎแกแแแแแแ, แแ แแแ แแแแแแแแแแแจแ แงแแแแแคแแ แ แแแแแ แแแแ แแ แ แแฃแแแแแ - แแแแแ, แแ แแ แกแแ แแแขแ แแแแ แแแแ แแแแฃแจแแแ, แแฅ แแแแแแแขแแแแ แ แแแแแแแแ แแแ แแแแขแ แ - แแแแแก แแ แแแแแก, แฉแแแ แฃแแแ แแแแฌแแ แแ แคแฃแแฅแชแแ, แ แแแแแแช แแแแกแแแฆแแ แแแก, แแฃ แ แ แแแแแแ แแแ แ แแฎแแ แฉแแแ แฌแแกแ แแแจแ. แกแแญแแ แ แชแแขแแขแแแแก แฉแแกแแ, แงแแแแแคแ แแก แแแกแแฌแงแแแแ.
แแฅแแแ แฌแแ แแแแแแแแแ แจแ แแแแก แฎแแ แฏแแแ แแกแแแ แกแแ แแแขแแแแก แจแแแฃแจแแแแแแกแแแแก. แแแ แฉแแแ, แแ แฎแแคแแแแจแ แแ แฉแแแแ แแแ.
แ แ แจแแแซแแแแ แจแแแชแแแแแก?
- แแแแแกแแแแ แ แกแแ แแแขแแก แแแ. แแแฌแแ แแ แแแแแแ แแ แแแขแแแแแก แกแแ แแแขแ แฃแคแ แ แแแกแแฎแแ แฎแแแแแแ, แ แแแแแ แแก แแ แแก แแ แแแ แแแแ แแแ แแ แแ แ แกแแ แแแขแแแ.
- แแ แแฆแฌแแ แแ แงแแแแ แแแแแแก แแแแแแ แคแแ แแแจแ แแแ แแแแฃแแ gradle แแแแชแแแแแ แแฅแแแแ แแ แแแฅแขแแกแแแแก.
แฉแแแ แแแแแแฌแงแแแขแแ แแแแ แฉแแแ แแแแ แ แแแ แแแแขแ แแ แแฎแแ แกแแกแขแแแแขแฃแ แแ แแจแแแ แงแแแแ bash แกแแ แแแขแก แแ แแฌแแ แ แฃแแแ แแ แแแ แกแแแแแฃแ gradle แแแแชแแแแก.
แ แฉแแแ #2: แจแแแแแฎแแ แแแคแ แแกแขแ แฃแฅแขแฃแ แ แแแแแ.
แแแกแแฎแแ แฎแแแแแแ, แ แแแแกแแช แฃแฌแงแแแขแ แแแขแแแ แแชแแแก แแแ แแแแขแ แ แแแแฎแแแ แแ แ Jenkins-แแก แแ TeamCity-แแก แแแขแแ แคแแแกแจแ แแ แ.แจ., แแ แแแแ แขแแฅแกแขแฃแ แ แคแแแแแแแก แกแแฎแแ แแแ แแแแแ แแ แแแฅแขแแก แกแแชแแแจแ. แแก แแซแแแแ แแแ แกแแแแแแแก. แแ แแฅแแแแ แ แแฃแแ แกแฎแแ แคแแแแแแจแ แแแแแก แฃแแแ แแแแ แฃแแแแ แแ แแจแแแแแ.
แกแแ แแแขแแแแก แจแแแแฎแแ แจแแกแแซแแแแแแแ แแ แแแฅแขแจแ. แ แ แแฃแงแแ แแแ แแแแก?
แ แฉแแแ #3: Docker-แก แจแแฃแซแแแ แแแแฎแแแ แแก แแแ แแแแกแแแ.
แแก แแแแแแแแแ แแแแฎแแแ แแแ Android-แแก แแแแแแแแแ แแแก; iOS-แก แฏแแ แแ แแฅแแก, แกแแแฌแฃแฎแแ แแ.
แแก แแ แแก แแแ แขแแแ docker แคแแแแแก แแแแแแแแ, แ แแแแแแช แจแแแชแแแก jdk แแ android-sdk:
FROM openjdk:8
ENV SDK_URL="https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip"
ANDROID_HOME="/usr/local/android-sdk"
ANDROID_VERSION=26
ANDROID_BUILD_TOOLS_VERSION=26.0.2
# Download Android SDK
RUN mkdir "$ANDROID_HOME" .android
&& cd "$ANDROID_HOME"
&& curl -o sdk.zip $SDK_URL
&& unzip sdk.zip
&& rm sdk.zip
&& yes | $ANDROID_HOME/tools/bin/sdkmanager --licenses
# Install Android Build Tool and Libraries
RUN $ANDROID_HOME/tools/bin/sdkmanager --update
RUN $ANDROID_HOME/tools/bin/sdkmanager "build-tools;${ANDROID_BUILD_TOOLS_VERSION}"
"platforms;android-${ANDROID_VERSION}"
"platform-tools"
RUN mkdir /application
WORKDIR /application
แแ Docker แคแแแแแก แแแฌแแ แแก แจแแแแแ (แกแแแแฃแแแแแแแก แแแขแงแแแ, แแฅแแแ แแ แแญแแ แแแแแ แแแกแ แแแฌแแ แ, แแแแ แแ แฃแแ แแแแ แแแแแฆแแ แแแ แแแแ GitHub-แแแ) แแ แแฌแงแแแ แแแแฏแก, แแฅแแแ แแแแฆแแแ แแแ แขแฃแแแฃแ แแแแฅแแแแก, แ แแแแแแแช แจแแแแซแแแแ แแแแแแแชแแแก แแจแแแแแ. แแ แแแแแ แแ Junit แขแแกแขแแแ.
แแ แ แซแแ แแแแแ แแแแแแ, แ แแก แแแแแช แแแแก แแแ แ แแฅแแก, แแ แแก แแแกแจแขแแแฃแ แแแ แแ แแแแแแแ แแแแแแแ. แแแแแ แแก แแแแแงแแแแแแ, แจแแแแซแแแแ แกแฌแ แแคแแ แแแแแแแแแ แแแแฃแแ build แแแแแขแ, แ แแแแแแกแแช แแฅแแแแแ แแฃแกแขแแ แแแแแ แแแ แแแ, แ แแแแ แช แฌแแแ. แแก แแแแจแแแแแแแแแ แแแแแแแแแก CI แแแแแแ แแแแก แชแฎแแแ แแแแก. Android-sdk-แแก แแแแแ แจแ แฉแแกแแ แกแแแแแแ แแแ แขแแแแ, แแแแ แแ แแแฃแแแขแแ แแแแ แแก แชแแขแ แฃแคแ แ แ แแฃแแแ: แชแแขแ แแแขแ แกแแแฃแจแแ แแแแแฌแแแ (แแ แแกแแ แแแแแแฌแแ แแ แแแ GitHub-แแแ).
แ แฉแแแ No4: แแ แแแแแแแฌแงแแแ, แ แแ แแแกแแแฅแขแแ แแแ แฎแแแแ แแ แ แแแกแแแฅแขแแ แแแแก แแแแแแ, แแ แแแแ แฎแแแฎแแกแแแแก.
แกแฌแ แแคแ แแ, แ แแช แแแแแแ แแ, แแแแคแแ แแแแแฎแแแฃแ แแแ แซแแแแแ แแแแจแแแแแแแแแแ แแแแแแแแแ แแแแกแแแแก: แ แ แแแคแฃแญแแ, แ แ แขแแกแขแ แฉแแแแ แแ, แกแแ แแแแฎแ buildlog.
แ แฉแแแ #5: แแงแแแแ แแ แแแแแขแฃแแ แฃแฌแงแแแขแ แแแขแแแ แแชแแแก แแแแแแแแ แแแแกแแก.
แแแแแแ แแแกแแแ, แ แ แขแแแแก แจแแชแแแแแแแก แแแแแแแ แแชแแแแแ แแกแฃแ แ, แ แแแแแแ แ แแกแฃแ แกแ, แแ แ แแ แแแแแแฃแขแแ แแก แแ แ แแกแฃแ แ แแแฎแแ แฏแแ. แจแแแแฌแแแแแแ, แ แแแแแแกแแช แซแแแแแ แแแแ แแ แ แกแญแแ แแแแ, แจแแแซแแแแ, แแแแแแแแแ, แแแแแแแแก แฆแแแแ. แแ แแกแแแ, แแแแช แแญแแ แแ แแ แช แแฃ แแกแ แแแแจแแแแแแแแ แจแแชแแแแแแก, แแแแแแแแ แฃแแแ แแงแแก แแแขแแแแแฃแแ.
แ แฉแแแ #6: แแแแแแงแแแแ แแแ แฎแแแกแแฌแงแแแแ.
แแฎแแ แแแแ แ แแแแแแแแแ, แ แแแแแแแช แฃแแ แฃแแแแแงแแคแแ แฆแ แฃแแแ CI-แก.
แแก แแแ แแ แแแแแกแแแแแแ แแชแแ แ แแฃแแแแแแกแแแแก. แแฅแแแ แแ แแญแแ แแแแแ แแ แแคแ แแก แแฎแแ แแแญแแ แ, แฃแแ แแแแ แแแแแแฎแแแแ แชแแขแ แคแฃแแ, แจแแฅแแแแแ แแฅแแแแ แแแแแแแชแแ แแ แฉแแแขแแ แแ แแแกแขแ แฃแแแแขแฃแแ แขแแกแขแแแแช แแ.
แ แฉแแแ #7: แแแ แแฃแแแจแ แจแแแ แแแแแฌแงแแแขแแแแแแแ แฃแคแ แ แแแแแแแแแแแ.
แแแแ แแ แแแ แ แแฃ แแแแแ, แ แแแแ แช แแฃแแแ แแแ แแแแ, แจแแแ แแแแแฌแงแแแขแแแแแแแ แฃแคแ แ แแแแแแแแแแ แแแฎแแแแ. แแ แแแแแฌแงแแแขแแแแแแแจแ แแ แแ แแ แแแแแแแ. แแแแแแแแแแจแ แแ แกแแแแแก แจแแแแกแแแแแก แจแแแชแแ แแแแก แแแแแแ: แแแแแกแแแแ แแ แแแฅแขแจแ, แงแแแแแ แจแแแแแแแ แแแฃแแฏแแแแกแแแ แฃแคแ แ แแ แฃแคแ แ แ แแฃแแแ แแ แแแแแฎแแแก แฃแคแ แ แแ แฃแคแ แ แแแข แแแแแกแขแแชแแแก.
แแแแแแแแแ แแฆแฌแแ แก แฉแแแแก แแแแ แชแฎแแแ แแแแก, แฃแฌแงแแแขแ แแแขแแแ แแชแแแก แฉแแแแแแ. แแ แจแแแฅแแแแ แจแ แแแแก แฎแแ แฏแแแแก แแ แแคแแแ แฉแแแแ แฃแฌแงแแแขแ แแแขแแแ แแชแแแก แแแแแแแแ แแแแก แแแแแแฃแแ แแขแแแแกแแแแก.
แแแกแแแแแแ, แ แแ แแแแแกแแแแ แ แแแฃแแฏแแแแกแแแ แกแฃแ แฃแคแ แ แแ แฃแคแ แ แ แแฃแแแแแ. แแ แแ แแคแแแแก แแแแแแแแแ แแแแกแแก, แแฅแแแ แแแกแแแ, แ แแ แฃแฌแงแแแขแ แแแขแแแ แแชแแ แฃแแแ แแแแแแแแ แแแก แแฃแแแแก แแแแแก แแ แแแก แจแแกแแแแแแกแแ. แแ แ แแแแแแแแแก แแฃแแแแกแแแแก 50 แแฆแแก แแแฎแแ แฏแแ แจแแแ แแแฃแแแขแแ แแก แคแแ แแแก แจแแแฃแจแแแแแแแ แฃแฆแแแฆแแแ แแแแแ. แแแแ แแ แแแแแแ แแฃแแแ, แแแแ แแฃแแแแกแแแแก แฃแฌแงแแแขแ แแแขแแแ แแชแแแก แแ แแแแแแแแ แกแแแ แแแ แชแฃแแ แแแแแ, แ แแแแแ แแแขแแแ แแชแแแก แแ แแแแแแแแ, แแแแฃแแแแแชแแแก แแแแแกแฌแแ แแแ แแ แ.แจ. แแแแแ แฃแคแ แ แแแขแ แแ แ แแแกแญแแ แแแแ.
แแแแแฌแงแแ แแ แแแแแ, แ แแ แแแขแแแแขแแแแชแแแ แกแแญแแ แ, แ แแแแแ แแแแแแแแแแ แซแแแ แแ, แจแแชแแแแแแก แฃแจแแแแแ แแ แแแแ แแแแ. แแแแ แแ แฎแแแฎแ แแกแแแ แแแขแแแแขแแแแ แแแก. แแแแขแแ, แงแแแแ แแแแแ แแ แแแแแแ แแฎแแแ แแแขแแแแขแแแแชแแแก.
- แแแขแแแแขแแแแชแแ แซแแแ แแ. แแแแแแฎแกแแแ แแ แกแแแฃแจแแ แแ แแคแแแ.
- แ แแแแกแแช แกแแฅแแ แแแขแแแแขแแแแชแแแก แแฎแแแ, แแแแแแแแแแ แจแแชแแแแแแก แฃแจแแแแแ.
- แแแแฏแแ แซแแแแแ แแแแ แแแ แแแขแแแแขแแแแชแแ, แ แแแแแ แงแแแแแคแแ แ แแกแ แแฃแจแแแแก. แ แแขแแ แแแแฃแแฏแแแแกแ แกแฎแแ แ แแ, แ แแขแแ แแแแแ แแก แฃแฌแงแแแขแ แแแขแแแ แแชแแ?
แแแแ แแ แแ แแแฅแแก แกแขแแขแแกแขแแแ: แจแแชแแแแแแก แแญแแ แแ แจแแแ แแแแแแก 20%. แแ แแก แแแแขแแ แแ แแ แแก, แ แแ แฉแแแแ แแแแแแแแแ แแแ แแแแก แชแฃแแแ แฌแแ แแ. แแก แแแแขแแ แฎแแแแ, แ แแ แแแแแแแแแ แแแ แแแ แฌแแฃแแแแฃแแแ แแ แแแ, แ แแ แแฃ แ แแแแ แจแแชแแแแแก แแแฃแจแแแแแ, แแก แแ แแแกแ แฃแแแแแ แแแแแแแแ แแแแจแ, แแก แแแแญแแ แก แแแขแแแแขแฃแ แ แจแแแแฌแแแแแ. แจแแกแแแแแแกแแ, แแแแแแแแแ แแแก แจแแฃแซแแแแ แแแขแ แแ แ แแแฃแแแแ แแแแแก แแ แกแแแแขแแ แแกแ แแแแแแแแก แฌแแ แแก, แแแแ แ แแแแแแฃแ แแ แ แแแแแก แแแจแแแแแก แแ แขแแกแขแแ แแแแก.
แแแแ แฏแแจแแ แฃแฌแงแแแขแ แแแขแแแ แแชแแแกแแแแก. แแแแ แแ แแแแแแ แแ.
แกแฎแแแแ แจแแ แแก, แแแแแแแ แแแกแขแแ แแแ แแ แ แแฎแแแแ แแแแแ แแซแแแแ แจแแกแแแแจแแแ แแแฎแกแแแแแแแก, แแ แแแแ แแ แแก แแ แแแ แแแแก แแแแแขแแขแแก แฌแแแ แแช
AppsConf แแ แแฎแแแ แแแ แกแฎแแแแก แแแแแแแแแ แแฅแแแแแแแก แแแแจแแแแแแแแแ แแแแแกแแแแแ. แจแแแแแแ แแแแคแแ แแแชแแแก แแ แแแ แแแแก แกแแกแ แฃแแ แแ แกแแ แแแแแแแแแแ แจแแแซแแแแ แจแแคแแกแแแก แแแแแแแก แแแฎแแแแแแแ แแคแแแ . แแแขแแแแแแกแแแแก แแ แแแแ แซแแแแแ Infospace-แจแ 22-23 แแแ แแแก.
แฌแงแแ แ: www.habr.com