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'     Poucas'opções'
          '                 '
       Padrõ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'                –  Altofalante'
   –  Rede'de'celular'          –  Tela'
   –  WilFi'                 •  Sensores'
   –  Bluetooth'                –  Tela'mul1toque'
•  Localização'                 –  Câmera'
   –  GPS'                      –  Microfone'
   –  Bússola'                  –  Acelerômetro,'
                                   giroscópio'
•  Saídas'
                                –  Sensor'de'luz'ambiente'
   –  Vibração'
                                –  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/thel
   troublelwithlcontext'
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'              As'diferenças'estão'diminuindo:'no'Mac'OS'X'
   –  tamanho'dos'botões'        Mountain'Lion'(sistema'operacional'desktop),'
   –  navegação'                 programas'têm'estado'e'rodam'em'uma'
•  Mul1tarefa'                   sandbox.'
   –  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'
Próxima'aula'
•  Mercado'de'apps'
Depois'
•  Ferramentas'para'desenvolvimento'de'apps'
   móveis'
•  Na1vo,'web,'híbrido'

Características de apps