O que veremos na apresentação? → Um estudo de caso sobre como foi realizado a entrega de um app para diversos clientes → Discutir as dificuldades encontradas → Mostrar as soluções adotadas
História do app → Era uma vez um ERP... → Um app foi desenvolvido integrado ao sistema → App foi publicado, os clientes começaram a usar o app, até que...
Início do script #!/bin/bash SOLUTION_DIR=/diretorio/projeto CLIENTE=Cliente1 cp $SOLUTION_DIR/Build/Clientes/$CLIENTE/Droid/Resources/drawable/*.png \ $SOLUTION_DIR/Droid/Resources/drawable/
Pensa que acabou? #!/bin/bash SOLUTION_DIR=/diretorio/projeto CLIENTE=Cliente1 MANIFEST=$SOLUTION_DIR/Droid/Properties/AndroidManifest.xml INFO_PLIST=$SOLUTION_DIR/iOS/Info.plist ENTITLEMENTS_PLIST=$SOLUTION_DIR/iOS/Entitlements.plist APP_CONFIG=$SOLUTION_DIR/Core/AppConfig.cs API_URL=https://prod.app.com VERSION_NAME=1.5 APP_NAME=Ionix App Corp PACKAGE=com.ionix.corp ... O que tem de "errado"?
Padronizações - parte II → No script principal, carregamos estas variáveis... #!/bin/bash SOLUTION_DIR=/diretorio/projeto APP_INI=$SOLUTION_DIR/Build/app.ini CLIENTE=
Padronizações - parte II → No script principal, carregamos estas variáveis... #!/bin/bash SOLUTION_DIR=/diretorio/projeto APP_INI=$SOLUTION_DIR/Build/app.ini CLIENTE=$()
Padronizações - parte II → No script principal, carregamos estas variáveis... #!/bin/bash SOLUTION_DIR=/diretorio/projeto APP_INI=$SOLUTION_DIR/Build/app.ini CLIENTE=$(cat $APP_INI) # Vai mostrar o conteúdo de todo o arquivo...
Padronizações - parte II → Como deixar isso dinâmico?? ... awk '{ {out=$3}; for (i=4; i <= NF; i++) { } }' # APP_NAME = Ionix App Corp # out = Ionix # NF = number of fields = 5
Padronizações - parte II → Como deixar isso dinâmico?? ... awk '{ {out=$3}; for (i=4; i <= NF; i++) { out=out" "$i } }' # APP_NAME = Ionix App Corp # out = Ionix # out = Ionix App # out = Ionix App Corp
Padronizações - parte III #!/bin/bash # Script depois :) SOLUTION_DIR=$1 APP_INI=$SOLUTION_DIR/Build/app.ini if [ -e "$APP_INI" ] then CLIENTE=$(cat $APP_INI | grep "CLIENTE = " | awk '{print $3}') else # Não precisa fazer nada, as variáveis já foram setadas :) fi
Padronizações - parte III #!/usr/bin/env bash # Droid/appcenter-pre-build.sh # iOS/appcenter-pre-build.sh sh $APPCENTER_SOURCE_DIRECTORY/Build/script.sh !
Na palestra de hoje vimos que... → É possível compilar um app de forma dinâmica → Você vai se encher de repetir as mesmas tarefas → Precisamos fazer a máquina trabalhar mais → Automatização é tudo