MATC89'–'Aula'2'
Chris1na'von'Flach'Rodrigo'Rocha'
HISTÓRICO)(CONT.))
WAP'
h<p://www.flickr.com/photos/agecombahia/4178529451/sizes/l/in/photostream/'
h<p://www.flickr.com/photos/wildhaber/5976264120/sizes/l/in/photostream/'
h<p://www.flickr.com/photos/girlontheles/6928438272/sizes/l/in/photostream/'
h<p://www.flickr.com/photos/m41k/4687194723/sizes/l/'
Open'Handset'Alliance'
• Mo1vação'
WEB) MOBILE)
Liberdade''
Padrões'
Poucas'opções''
Tecnologias'proprietárias'
'
Open'Handset'Alliance'
• Padrões'abertos'para'disposi1vos'móveis'• Google,'Samsumg,'Intel'etc.'• 2007'
Android'
• Android,'Inc.'–'2003'• Comprada'pela'Google'–'2005'
• Anunciado'em'2007,'junto'com'a'Open'Handset'Alliance'
Android'
• Versão'1.0'• 23'set'2008'
INTRODUÇÃO)AO)DESENVOLVIMENTO)DE)APPS)MÓVEIS)
Escopo'da'Disciplina'
• Foco'em'smartphones+da'era'touch+• Em'parte,'tablets'
O'que'é'um'app?'
• Abreviação'para'aplica1vo'/'aplicação'• Tipicamente,'um'programa...'– Pequeno'– Especializado'
• Baixado'para'disposi1vos'móveis'– Tipicamente'através'de'uma'loja'especializada'em'apps'(“app'store”)'
(Fonte:'Dic1onary.com)'
Desenvolvimento'de'Apps'
• Desenvolver'apps'é'diferente'– O'hardware'é'diferente'– O'sistema'operacional'é'diferente'– As'pessoas'têm'expecta1vas'diferentes'
Hardware'
• Conec1vidade'– Rede'de'celular'– WilFi'– Bluetooth'
• Localização'– GPS'– Bússola'
• Saídas'– Vibração'
– Altofalante'– Tela'
• Sensores'– Tela'mul1toque'– Câmera'– Microfone'– Acelerômetro,'giroscópio'
– Sensor'de'luz'ambiente'– Sensor'de'proximidade'
Limitações'do'Hardware'
• Mobilidade'– Energia'limitada'(bateria)'– Internet'intermitente'(sinal'WilFi,'3G)'– Pouco'espaço'(memória'fla$h)'– Tela'pequena'–'mín'2,5”'(240x320)'
• Economia'de'energia'– Processador'mais'lento'
Bateria'
• É'bom'economizar'• GPS'e'rede'gastam'muita'bateria'– Faça'um'cache'de'dados'remotos'
• Cuidado'redobrado'com'apps'que'rodam'em'background'
Internet'nãolconfiável'
• Faça'cache'dos'dados'remotos'• Se'possível,'use'o'banco'de'dados'local'• Ofereça'alguma'funcionalidade'para'quem'está'sem'Internet'
Memória'limitada'
• Não'há'memória'virtual'em'disco'– O'sistema'ocupa'uma'parte'da'memória'
• O'sistema'no1fica'seu'app'quando'a'memória'está'baixa'– hora'de'apagar'caches'da'memória'– ex.:'telas'que'estão'sob'outras'telas'– (recarregue'as'telas'quando'necessário)'
Um'app'de'cada'vez'
• Normalmente,'o'sistema'executa'um'app'por'vez'– O'app'pode'ser'interrompido'por'uma'ligação...'– ...'ou'o'usuário'pode'abrir'outro'app'– quando'volta'para'seu'app,'é'bom'con1nuar'de'onde'parou'
Sandbox'
• Cada'app'roda'em'uma'sandbox'• Não'tem'acesso'a'arquivos'de'outros'apps'• Apps'não'compar1lham'memória'• Acesso'a'serviços'de'sistema'é'controlado'– câmera'– internet'
• Apps'são'assinados'– previne'pirataria'(mais'ou'menos)'– evita'que'arquivos'do'app'sejam'alterados'
Sandbox'
• Esse'conceito'está'presente'no'desktop'– Browsers'(cada'aba'é'um'processo)'– Apps'da'Mac'App'Store'
A'tela'é'pequena...'
• Não'dá'para'mostrar'tudo'de'uma'vez'– Mais'navegação'entre'telas'– Mais'rolagem'– Mais'zoom'in/zoom'out'
...'e'o'dedo'é'grande'
• Impreciso'– Botões'devem'ser'grandes'– ou'ter'borda'transparente'
• Não'tem'"botão'direito"'do'dedo'• Mas'dá'pra'usar'dois'dedos'(ou'mais,'em'tablets)'– movimento'de'pinça'(zoom)'– rotação'– joys1ck'
O'teclado'é'pequeno...'
• E'muitas'vezes,'virtual'• Poupe'o'usuário'de'digitar'o'tempo'todo'
...'mas'há'outras'fontes'de'informação'
• Câmera'– 1rar'foto'de'código'de'barras'
• GPS'– buscar'restaurantes'perto'de'você'
• Internet'– como'está'o'tempo'em'sua'cidade'
• Microfone'– tecnologia'falalparaltexto'
• Acelerômetro'– jogos'de'corrida'
• Bússola'– apontar'para'uma'constelação'e'descobrir'seu'nome'
Fragmentação'
• Tamanho'de'tela'• Recursos'(câmera,'GPS,'...)'• Várias'plataformas'
Sempre'alerta!'
• O'disposi1vo'está'sempre'ligado'– o'usuário'pode'querer'usar'seu'app'por'10'segundos...'
– ele'não'vai'querer'esperar'5'segundos'para'o'app'abrir'• e'nem'o'SO'espera'
Usuários'exigentes'
• O'app'tem'de...'– ser'bonito'– ser'fácil'de'usar'– ser'familiar'(seguir'convenções'de'outros'apps)'
O'contexto'do'usuário'
• Fonte:'h<p://www.slideshare.net/yiibu/theltroublelwithlcontext'
The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again.
DESENVOLVIMENTO)MOBILE))VS)WEB)VS)DESKTOP)
Mobile'vs.'Web'• Acesso'a'banco'de'dados'remoto'– web:'às'vezes'o'banco'de'dados'está'na'mesma'máquina'– apps:'via'web'services'(não'há'muitos'drivers'para'bancos'de'dados)'
• Estado'– web:'sem'estado'(requisição,'resposta)'– app:'com'estado'(e'gerencia'rotação'de'tela,'warnings'de'memória...)'
• Conec1vidade'– web:'dados,'lógica'e'visual'dependem'de'rede'– app:'conteúdo'offline'e'cache'de'conteúdo'online'
Mobile'vs.'Web'
• Atualização'– web:'instantânea'– app:'deve'ser'copiado'para'disposi1vos'
• Compa1bilidade'e'padrões:'– web:'baseado'em'padrões,'mas'resultado'depende'do'navegador'
– app:'feito'para'uma'plataforma'específica'
Mobile'vs.'Desktop'• Tamanho'de'tela'
– tamanho'dos'botões'– navegação'
• Mul1tarefa'– desktop'é'mul1tarefa'
• Encerramento'do'programa'– desktop:'tem'certeza'de'que'deseja'sair?'– mobile:'seu'programa'tem'de'fechar'em'5'segundos'
• Estado'– normalmente,'sistemas'desktop'começam'sempre'do'mesmo'ponto;'
apps'móveis'devem'guardar'o'estado'ao'fechar'• Sandbox'
– sistemas'desktop'têm'acesso'quase'irrestrito'ao'sistema'
As'diferenças'estão'diminuindo:'no'Mac'OS'X'Mountain'Lion'(sistema'operacional'desktop),'programas'têm'estado'e'rodam'em'uma'sandbox.'
Próxima'aula'
• Mercado'de'apps'
Depois'
• Ferramentas'para'desenvolvimento'de'apps'móveis'
• Na1vo,'web,'híbrido'