InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
-
Upload
imasters -
Category
Technology
-
view
97 -
download
2
Transcript of InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
![Page 1: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/1.jpg)
Gerenciando 450 apps sem enlouquecer
Heloisa Simon
![Page 2: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/2.jpg)
Heloisa SimonLead Android Developer
mobLee
![Page 3: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/3.jpg)
Como assim 450 apps?Como assim 450 apps?
![Page 4: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/4.jpg)
2012
![Page 5: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/5.jpg)
![Page 6: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/6.jpg)
Módulo Expositores
Green Valley
Módulo Mapa do evento
Módulo Redes Sociais
Módulo Agenda
Dream ValleyBienal do Livro
Repositório GIT Android/iOS em 2012
![Page 7: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/7.jpg)
2013
![Page 8: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/8.jpg)
![Page 9: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/9.jpg)
Estrutura
Android
API
iOS
CMS
![Page 10: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/10.jpg)
mobLeeLibrary
Congresso Y Evento Corporativo W
Feira de Exposição X
Feira de Exposição Y Congresso X Evento
Corporativo T
31º CBEM Congresso Bras. de NeurologiaBienal do Livro
Repositório GIT Android/iOS em 2013
![Page 11: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/11.jpg)
Para cada eventoStrings
<resources> <string name="section_info">Informações</string> <string name="section_description">Descrição</string> <string name="section_detail">Detalhes</string> <string name="section_product_visitation">Visitação</string> <string name="section_company_visitation">Visitação</string> <string name="section_ongoing_visitation">Visitação</string> <string name="section_contact">Contato</string> <string name="section_company">Empresa</string> <string name="section_about">Sobre</string> <string name="section_social">Redes sociais</string> <string name="section_job">Profissão</string> <string name="section_comment">Comentários</string> <string name="section_qualification">Qualificação</string> <string name="detail_title_stand">Estande</string> <string name="detail_title_address">Endereço</string> <string name="detail_title_phone">Telefone</string> <string name="detail_title_fax">Fax</string> <string name="detail_title_website">Site</string> <string name="detail_title_email">E-mail</string> <string name="detail_title_local">Local</string>
![Page 12: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/12.jpg)
Para cada evento
Cores
<resources> <color name="past_event_waiting">#99999999</color> <color name="background_color">#F0F0F0</color> <color name="products">#29ABE2</color> <color name="alarm_on">#8cc63f</color> <color name="favorite_on">#f5b519</color> <color name="side_menu_color">#666666</color> <color name="pressed_moblee_color">#AA39C3C1</color> <color name="list_section_color">#666666</color> <color name="main_bar_color">#CCCCCC</color> <color name="button_color">#E9145F</color> <color name="calendar_line">#BBBBBB</color> <color name="calendar_second_line">#AAAAAA</color> <color name="text">#636363</color> <color name="pager_indicator">#666666</color> <color name="pending_approval">#F7931E</color> <color name="rating5">#F15A24</color> <color name="rating4">#F7931E</color> <color name="rating3">#FBB03B</color> <color name="rating2">#FBC31B</color> <color name="rating1">#FBD710</color>
![Page 13: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/13.jpg)
Para cada eventoImagens
![Page 14: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/14.jpg)
Para cada eventoScreenshots
![Page 15: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/15.jpg)
![Page 16: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/16.jpg)
Para cada evento
Publicação no Google Play
![Page 17: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/17.jpg)
![Page 18: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/18.jpg)
![Page 19: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/19.jpg)
Para cada evento
Repositório git
● Criar repositório● git push
![Page 20: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/20.jpg)
![Page 21: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/21.jpg)
![Page 22: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/22.jpg)
INVIÁVEL
![Page 23: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/23.jpg)
2015
![Page 24: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/24.jpg)
![Page 25: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/25.jpg)
AutomatizandoO checklist
● Dados no backend○ Strings○ Cores○ Imagens
○ Funcionalidades
● Script que substitui o checklist
![Page 26: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/26.jpg)
AutomatizandoO checklist
● Script
○ Lê dados da API REST e
substitui arquivos de
configurações
string.xml, colors.xml
○ Faz download das imagens
necessárias: launcher,
ícones, splashscreen
○ Configura endpoints
○ Configura funcionalidades
○ Assina e Gera os apps
![Page 27: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/27.jpg)
Automatizando● Android Gradle: Analytics, API Keys, Endpoints
android { … defaultConfig { applicationId [APPLICATION_ID] minSdkVersion 16 targetSdkVersion 24 versionCode [VERSION_CODE] versionName [VERSION_NAME] buildConfigField "String", "ENDPOINT", [END_POINT] buildConfigField "String", "ANALYTICS", [ANALYTICS] buildConfigField "String", "PARSE_APP_ID", [APP_ID] buildConfigField "String", "PARSE_CLIENT_KEY", [CLIENT_KEY] … }
![Page 28: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/28.jpg)
AutomatizandoApp por linha de comando
./gradlew assembleDebug
./gradlew assembleRelease
buildTypes { debug { applicationIdSuffix ".dbg" } release { proguardFiles getDefaultProguardFile(...) }}
![Page 29: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/29.jpg)
mobLeeFramework
Repositório GIT Android/iOS em 2015
![Page 30: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/30.jpg)
AutomatizandoScreenshots
● Existem formas de automatizar
● No Photoshop
● A aprovação do cliente é a primeira etapa, por isso não está junto com o script.
![Page 31: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/31.jpg)
Photoshop
![Page 32: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/32.jpg)
PublicaçãoNo Google PlayNa App Store
● Manual: ○ Criar app na loja
![Page 33: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/33.jpg)
PublicaçãoNo Google PlayNa App Store
● Mas todo o restante é possível automatizar
![Page 34: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/34.jpg)
● GET versionCodehttps://www.googleapis.com/androidpublisher/v2/applications/packageName/edits/editId/tracks/track
● POST APKhttps://www.googleapis.com/upload/androidpublisher/v2/applications/packageName/edits/editId/apks
● POST screenshotshttps://www.googleapis.com/upload/androidpublisher/v2/applications/packageName/edits/editId/listings/language/imageType
Publicação Google Play Developer API
![Page 35: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/35.jpg)
AutomatizaçãoJenkins
● Integração Contínua○ Compilação de projeto
○ Automatização de testes
● Independente de plataforma○ Android e iOS
● Faz checkout no master● Executa script● Gera App● Faz upload no app no slack
![Page 36: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/36.jpg)
AutomatizaçãoJenkins-Plugin
google-play-android-publisher
![Page 37: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/37.jpg)
Automatização● Disponível para
Android e iOS○ Build○ Roda testes○ Tira screenshots○ Faz upload das screenshots○ Gera certificados (iOS)Fastlane
![Page 38: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/38.jpg)
AutomatizaçãoFastlane
default_platform: android
platform :android do desc "Roda testes" Lane :test do gradle(task: "test") end
desc "Envia nova versão para o Google Play" lane :deploy do gradle(task: "assembleRelease") supply end
![Page 39: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/39.jpg)
![Page 40: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/40.jpg)
Será que a automatização resolveu tudo?
![Page 41: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/41.jpg)
Atualizações Dos aplicativos
● Alterações:○ Ícones○ Strings○ Cores
○ Funcionalidades
● Verificar as alterações● Rodar script
![Page 42: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/42.jpg)
AtualizaçõesDos aplicativos
![Page 43: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/43.jpg)
Dinamizar é tão importante quanto Automatizar
![Page 44: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/44.jpg)
DinamizandoO aplicativo
● Todas as strings podem ser alteradas
● Todas as cores podem ser alteradas
● Todos os ícones podem ser alterados.
● Todas as funcionalidades podem ser alteradas.
![Page 45: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/45.jpg)
DinamizandoO aplicativo
● Requisições para a API
● String: verifica se foi atualizada, senão usa do strings.xml
● Colors: verifica se foi atualizada, senão usa do colors.xml
● Funcionalidades com flag e permissões de acesso.
![Page 46: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/46.jpg)
DinamizandoO aplicativo
![Page 47: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/47.jpg)
DinamizandoO aplicativo
Mas quem vai configurar tudo no backend?
![Page 48: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/48.jpg)
DinamizandoO aplicativo
O CLIENTE!
![Page 49: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/49.jpg)
![Page 50: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/50.jpg)
![Page 51: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/51.jpg)
![Page 52: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/52.jpg)
Customer Success
● Acompanham o cliente● Recebem e-mail● Publicam os aplicativos
![Page 53: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/53.jpg)
DesenvolvedoresRELEASE
Customer SuccessDEPLOY
![Page 54: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/54.jpg)
Estrutura
And
API
iOS
CMS
![Page 55: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/55.jpg)
REST APIbackend
Rápida Leve
Conteúdos Idiomas
![Page 56: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/56.jpg)
REST APIbackend
Integração entre APIs
![Page 57: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/57.jpg)
Só tenho um aplicativo, não preciso dinamizar
![Page 58: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/58.jpg)
Chegou o natal.E agora?
![Page 59: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/59.jpg)
Firebase
● Banco de Dados● Analytics● Autenticação● Armazenamento● Monitoramento de crash● Remote Configs
![Page 60: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/60.jpg)
<?xml version="1.0" encoding="utf-8"?><defaultsMap> <entry> <key>welcome_phrase</key> <value>Welcome</value> </entry> <entry> <key>primary_color</key> <value>#A4CA39</value> </entry> <entry> <key>android_image</key> <value>http://www.example.com/androidimage.jpg</value> </entry></defaultsMap>
![Page 61: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/61.jpg)
mRemoteC.setDefaults(R.xml.remote_config_defaults);
String welcome = mRemoteC.getString("welcome_phrase");String color = mRemoteC.getString("primary_color");String image = mRemoteC.getString("android_image");
mRemoteC.fetch(cacheExpiration) .addOnCompleteListener(new OnCompleteListener<Void>() {
@Overridepublic void onComplete(Task<Void> task) { if (task.isSuccessful()) {
mRemoteC.activateFetched(); } }
});
![Page 62: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/62.jpg)
![Page 63: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/63.jpg)
![Page 64: InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer](https://reader031.fdocuments.net/reader031/viewer/2022022203/587080221a28ab57368b6293/html5/thumbnails/64.jpg)
RESUMÃO
● Identifique repetições○ Atacar tarefas longas
● Automatize tarefas
● Automatize o deploy
● Evite atualização○ Deixe dinâmico
● Use ferramentas! Não reinvente a roda