Briefing/guideline para auditoria inicial de aplicao mobile
- DRAFT Quanto arquitetura/cdigo
- Consideraes sobre uso do Xamarin pra Android
http://www.whitneyland.com/2015/07/xamarin-review2015.html (a menos que haja muitas telas web na aplicao iOS/Android, seria mais desejvel considerar usar ferramentas nativas de iOS e ferramentas nativas de Android) - Conforme dito no documento: ...Havendo necessidade de ter uma navegao horizontal, a equipe de arquitetura analisar se haver necessidade de reestruturao dos campos e elementos de navegao de cada sesso. Isto pode acarretar acrscimo de valores em todas as etapas. (No to difcil assim em Android... em Android bastaria adicionar o arquivo de layout/fragment diferente e invoca-layout/fragmente em tempo de execuo (xml). Em iOS um pouco mais trabalhoso de fato, pois teria que criar um cdigo especfico pra portrait e outro pra landscape, como se fosse uma implementao diferente de um comportamento polimrfico.) - H algum tipo de informao que armazenada no aparelho? Ou o aparelho meramente visualizador de informao 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 mtodo onUpdate dentro da classe SQLiteOpenHelper, chamando a verso de banco correspondente dentro de um bloco switch... ) - Como que esto implantados os servios REST com HTTPS? Usa certificado implantado no servidor de aplicao, (ou seja, segurana s em camada de transporte), ou usa OAuth2 pra autenticao alm de TLS/SSL (https), ou envolve ainda o envio de algum outro token/informao de usuario/senha? - Quais frameworks de terceiros se usa no desenvolvimento Android? Quais pra iOS? H uso de alguma biblioteca que no open source? - Alguma operao (troca entre telas) tem delay superior a 200 ms (milissegundos)? (o padro mobile aceitvel at 200 ms) - As imagens carregadas na aplicao simplesmente so apresentadas como so (como realmente esto produzidas) ou uma sub-amostra reduzida carregada, considerando os pixels mais significativos? (no caso de bitmaps, deve-se carregar em memria 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 assncrono e permite o envio de mensagens bidirecionais entre nuvem e dispositivo) Questes pertinentes ao desenvolvimento Android a) Usa fragments reusveis ou apenas activities? (deve-se usar o mximo de fragments reusveis, pois activities consomem muito mais memria alm do mais, matando uma activity no implica em necessariamente matar recursos associados a ela) b) As operaes de background que possam tomar algum tempo maior, como carregamento de imagem, download de arquivo, so feitas na thread principal? (no se deve usar a main thread-principal, pois qualquer operao que toma mais que 5s faz o Android entrar em estado no-responsivo - chamado de ANR - quando bloqueia a tela. Pra tal, recomendase usar AsyncTask nesses casos) c) Usa-se implementaes prprias pra compartilhar conteudos, pegar contatos, habilitar rede, geolocalizao, tirar foto? (No se deve usar implementaes prprias pra isso. prefervel sempre usar Intents, pois evitam poluir o arquivo AndroidManifest.xml com permisses desnecessrias) Quanto metodologia
- H atas armazenadas das reunies?
- Se SCRUM, quem est atuando como product owner? Se
SCRUM, como esto sendo estimadas as estrias? H algum critrio pra definio de um story point (mtrica mnima)? - Quais as ferramentas de versionamento de cdigo do cliente? - Quais as ferramentas de gerao de build automatizada do cliente? - Onde est o backlog? - Onde est o repositrio de cdigo? Teremos acesso a tal? - Onde est o JIRA/Bugzilla pra report de bugs? - Est sendo usado o Xamarin ou no? - Onde est o repositrio de executveis (apk/ipa)? O planejamento baixar diretamente do Apple Store/Google Play?