terça-feira, 5 de agosto de 2014

Saiba como fazer seu primeiro app profissional (Parte 4)













Você sabe quem é o inimigo número um na construção de aplicativos mobile ?
Não faz nem idéia ? Confira nesse artigo um requisito que pode levar o seu aplicativo ao sucesso ou ao fracasso.

Inimigo número um













Lembre-se da sua "felicidade" ao aguardar eternamente aquele aplicativo fazendo download. Lembrou ?
Imagino que a sensação não tenha sido nada agradável.
Infelizmente aplicativos que não gerenciam bem conteúdo vindo da web tendem a fracassar muito rápido. Por que ? Porque os usuários esperam disponibilização e respostas rápidas.
O que fazer para gerenciar downloads nos seus aplicativos ?
Vamos lá...


Rede de dados no Brasil



















Acredito que não precisamos dizer muito, certo ?!
Por definição temos os seguintes tipos de redes móveis no Brasil:
- 4G
- 3G
- 2G
- Nenhum G  (definição por nossa conta)

Infelizmente as redes de dados no Brasil não funcionam tão bem quanto gostariamos.
Citamos esse item para ficar claro a importância de gerenciar bem o fluxo de dados vindos da web.
Agora sim... como resolvemos ?



Definindo protocolos


O protocolo mais utilizado para o padrão web é o SOAP.
Talvez você se pergunte:
-"Preciso transferir dados com a web pelo meu aplicativo. Posso utilizar SOAP ?"
Não recomendamos ! Observe as razões:

Transferindo dados via SOAP

Esse é um pequeno exemplo de um conteúdo trafegado via SOAP (xml):

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<login>
<usuario>email@gmail.com</usuario>
<senha>123456789</usuario>
<chave>84N239EMERM323</chave>
</login>
</soap:Envelope>


Apenas para transferir os dados de login enviamos ~ 269 bytes.
Infelizmente esse protocolo não tem nenhum tipo de compactação para trafegar entre a web e um aplicativo mobile. O padrão xml necessita que as tags sejam abertas e fechadas e portanto o crescimento do que você transfere é exponencial.
Fazendo as contas... mais dados transferidos, mais consumo na rede do usuário, mais tempo para receber/enviar os dados.


Transferindo dados via JSON


Esse é um pequeno exemplo de um conteúdo trafegado via JSON:


{"login":{"usuario":"email@gmail.com", "senha":"123456789", "chave":"84N239EMERM323"}}



Notem que os dados são os mesmos, mas dessa vez trafegamos ~ 87 bytes.
Fazendo as contas... menos dados transferidos, menos consumo na rede do usuário, mais rápido para receber/enviar os dados.
Sim, aconselhamos o uso do protocolo JSON para transferir os dados do seu aplicativo com a web.
Se você ainda tiver dúvidas, acho que a imagem abaixo pode te ajudar a entender o impacto na qualidade do aplicativo.

















E se o download for grande ?


Se inevitavelmente o seu aplicativo precisar fazer downloads de grandes quantidades de dados, seguem algumas sugestões:

- O ideal é levar o máximo de recursos embarcados.

- Não fazer o download completo na inicialização do aplicativo.

- Utilizar cache nos downloads.

- Fazer o download com o consentimento do usuário e exibir progresso.

- Utilizar processo paralelo ao aplicativo para fazer o download.


Com essas dicas temos certeza de que ficará fácil gerenciar a comunicação do seu aplicativo com a web.
Em breve voltaremos com mais artigos para a sessão "Saiba como fazer seu primeiro app profissional".
Até lá ! ;)