Você está na página 1de 4

Briefing/guideline para auditoria inicial de aplicação mobile - DRAFT

 Quanto à arquitetura/código

- Considerações sobre uso do Xamarin pra Android


http://www.whitneyland.com/2015/07/xamarin-review-2015.html
(a menos que haja muitas telas web na aplicação iOS/Android, seria mais
desejável considerar usar ferramentas nativas de iOS e ferramentas
nativas de Android)

- Conforme dito no documento:


“...Havendo necessidade de ter uma navegação horizontal, a equipe de
arquitetura analisará se haverá necessidade de reestruturação dos campos
e elementos de navegação de cada sessão. Isto pode acarretar acréscimo
de valores em todas as etapas.”

(Não é tão difícil assim em Android... em Android bastaria adicionar o


arquivo de layout/fragment diferente e invoca-layout/fragmente em
tempo de execução (xml). Em iOS é um pouco mais trabalhoso de fato,
pois teria que criar um código específico pra portrait e outro pra
landscape, como se fosse uma implementação diferente de um
comportamento polimórfico.)

- Há algum tipo de informação que é armazenada no aparelho? Ou o


aparelho meramente é visualizador de informação vinda da sodexo? Se
armazena no dispositivo, usa armazenamento por SQL ou arquivo?
(Se armazena um banco de dados no celular, como SQLite no caso do
Android ou SQLite/CoreData no iOS, como que trata o versionamento do
banco? No caso do Android: deve-se usar o método onUpdate dentro da
classe SQLiteOpenHelper, chamando a ‘versão de banco’ correspondente
dentro de um bloco switch... )
- Como que estão implantados os serviços REST com HTTPS? Usa certificado
implantado no servidor de aplicação, (ou seja, segurança só em camada de
transporte), ou usa OAuth2 pra autenticação além de TLS/SSL (https), ou
envolve ainda o envio de algum outro token/informação de usuario/senha?

- Quais frameworks de terceiros se usa no desenvolvimento Android? Quais


pra iOS? Há uso de alguma biblioteca que não é open source?

- Alguma operação (troca entre telas) tem delay superior a 200 ms


(milissegundos)?
(o padrão mobile aceitável é até 200 ms)

- As imagens carregadas na aplicação simplesmente são apresentadas como


são (como realmente estão produzidas) ou uma sub-amostra reduzida é
carregada, considerando os pixels mais significativos?
(no caso de bitmaps, deve-se carregar em memória apenas pixels mais
significativos. Deve-se priorizar carregar imagens jpg e png. PNG é ainda
melhor)

- A considerar:
Como está configurado o Google Cloud Message server? Em que
linguagem? Usa XMPP ou HTTP?
(XMPP é assíncrono e permite o envio de mensagens bidirecionais entre
nuvem e dispositivo)

 Questões pertinentes ao desenvolvimento Android


a) Usa fragments reusáveis ou apenas activities?
(deve-se usar o máximo de fragments reusáveis, pois activities consomem
muito mais memória – além do mais, matando uma activity não implica
em necessariamente matar recursos associados a ela)

b) As operações de background que possam tomar algum tempo maior,


como carregamento de imagem, download de arquivo, são feitas na thread
principal?
(não se deve usar a main thread-principal, pois qualquer operação que
toma mais que 5s faz o Android entrar em estado não-responsivo -
chamado de ANR - quando bloqueia a tela. Pra tal, recomenda-se usar
AsyncTask nesses casos)

c) Usa-se implementações próprias pra compartilhar conteudos, pegar


contatos, habilitar rede, geolocalização, tirar foto?
(Não se deve usar implementações próprias pra isso. É preferível sempre
usar Intents, pois evitam poluir o arquivo AndroidManifest.xml com
permissões desnecessárias)

 Quanto à metodologia

- Há atas armazenadas das reuniões?


- Se é SCRUM, quem está atuando como product owner? Se é SCRUM,
como estão sendo estimadas as estórias? Há algum critério pra definição
de um story point (métrica mínima)?
- Quais as ferramentas de versionamento de código do cliente?
- Quais as ferramentas de geração de build automatizada do cliente?
- Onde está o backlog?
- Onde está o repositório de código? Teremos acesso a tal?
- Onde está o JIRA/Bugzilla pra report de bugs?
- Está sendo usado o Xamarin ou não?
- Onde está o repositório de executáveis (apk/ipa)? O planejamento é baixar
diretamente do Apple Store/Google Play?

Você também pode gostar