workshop - conceito mobile

29
Workshop iOS: Conceito mobile Gustavo Barbosa [email protected]

Upload: gustavo-barbosa

Post on 15-Aug-2015

30 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: Workshop - Conceito mobile

Workshop iOS:Conceito mobile

Gustavo [email protected]

Page 2: Workshop - Conceito mobile

Apresentação

Page 3: Workshop - Conceito mobile

Neste workshop falaremos um pouco

sobre o desenvolvimento mobile e algumas

particularidades das plataformas

Page 4: Workshop - Conceito mobile

Android x iOS

Page 5: Workshop - Conceito mobile

● Google Play

● Maior número de

usuários

● Baixo custo para

começar a desenvolver

● Velocidade para

publicação e atualização

● Linguagem conhecida da

grande maioria

● App Store

● Rigoroso padrão de

aprovação

● Pequeno número de

devices para dar suporte

● Usuários acostumados a

pagar pelos aplicativos

● Devices sempre

atualizados com a última

versão de S.O.

Prós

Page 6: Workshop - Conceito mobile

● Infinidade de modelos

para suportar.

● Falta de rigor para

aprovação dos

aplicativos.

● Várias versões de S.O.

para suportar.

● Tempo de publicação.

● Curva de aprendizagem.

● Alto investimento.

Contras

Page 7: Workshop - Conceito mobile

Princípios básicos

Page 8: Workshop - Conceito mobile

● Aplicações devem ser leves

● Processos e operações devem ser

otimizados (mais do que em qualquer outro

tipo de plataforma)

● Evitar serviços que acabem por consumir

muita bateria

o GPS

o Requests em serviços de forma

contínua

o Chamadas constantes ao banco de

dados

Page 9: Workshop - Conceito mobile

Conexão

Page 10: Workshop - Conceito mobile

● Lembrar que o usuário pode ou não estar

conectado à internet

● "Excelente" rede móvel no país

● Conversa com a cloud através do uso de JSON

Page 11: Workshop - Conceito mobile

Banco de dados

Page 12: Workshop - Conceito mobile

● Simplificado (esqueça procedures ou triggers)

● Operações básicas (SELECT / INSERT / UPDATE

/ DELETE)

● Tipos simples (TEXT, INTEGER, REAL, BLOB,

NULL)

● Utilizar de sincronização com a web

Evitar replicar todo o banco do servidor central

na app

Referência: https://sqlite.org/

Page 13: Workshop - Conceito mobile

User Interface

Page 14: Workshop - Conceito mobile

● Evitar o travamento da tela

● Realizar processos assíncronos (fora da

thread principal)

● Inserir "spinner" para indicar o carregamento

(loading…)

● Tratar diferentes tamanhos de celular e

versões dos sistemas operacionais

Page 15: Workshop - Conceito mobile

Quais os tamanhos

de tela

existentes hoje?

Page 16: Workshop - Conceito mobile

iOS

Referência: http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions

Page 17: Workshop - Conceito mobile

Android

Page 18: Workshop - Conceito mobile

User Experience

Page 19: Workshop - Conceito mobile

FINGER IS THE NEW

MOUSE!

Page 20: Workshop - Conceito mobile

● Devemos pensar na área de alcance dos botões

● O usuário pode ter mãos pequenas ou grandes, isso interfere totalmente na performance de uso da aplicação

● Quais os tamanhos de tela devemos contemplar?

Referência: http://www.lukew.com/ff/entry.asp?1927

Page 21: Workshop - Conceito mobile

Todas as ações

devem estar explícitas

para o usuário

Page 22: Workshop - Conceito mobile

Validação de formulários - Web X App

Page 23: Workshop - Conceito mobile

Validação de formulários - Web X App

Page 24: Workshop - Conceito mobile

Ferramentas

Page 25: Workshop - Conceito mobile

Formas de rentabilização

● In-app purchase

● Ads for mobile

Page 26: Workshop - Conceito mobile

Tracking de bugs

Page 27: Workshop - Conceito mobile

Versionamento

● Para o desenvolvimento em equipes é necessário o uso de

versionamento (GIT ou SVN)

● Possibilidade da divisão do trabalho

● Cuidado especial com componentes de interface (xml

gerados podem ocasionar conflitos irreversíveis)

● Cuidado com configurações de projeto (mesmo

funcionamento de componentes na UI)

Page 28: Workshop - Conceito mobile

Dúvidas?

Page 29: Workshop - Conceito mobile

THANKS FOR

BEINGHERE!