Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Desenvolvimento mobile

Desenvolvimento mobile

Neste apresentação comento algumas dicas, vantagens e diferenças entre as diferentes plataformas de aplicativos móveis como Apple, Android, FirefoxOS, WindowsPhone.

0227f6274b8a6cce078d7f8a91460c41?s=128

Elton Minetto

May 13, 2013
Tweet

Transcript

  1. Desenvolvimento mobile

  2. Elton Minetto Graduado/pós-graduado em Ciência da Computação Desenvolvedor desde 1997

    Professor desde 2004 Autor de três livros sobre PHP e um sobre grid computing Co-fundador da Coderockr e do Code Squad Membro da diretoria da ABRAPHP
  3. Contato

  4. http://eltonminetto.net @eminetto http://coderockr.com http://code-squad.com eminetto@coderockr.com

  5. Tipos de dispositivos

  6. Telefones

  7. • 3Gs, 4, 4S e 5 • 3.5 polegadas. 4

    polegadas (iPhone 5) • 320x480 (3Gs), 640x960 (4, 4s) e 1136x640 (5) • Assisted GPS, bluetooth, camera, acelerômetro iPhone
  8. • Inúmeros modelos, de inúmeros frabricantes • Diversas resoluções: 240×400,

    240×432, 320×480, 480×800, 480×854, 600×1024, 640×960 • Diversos tamanhos: 3, 5, 7 pol • GPS, bluetooth, camera, acelerômetro Celulares Android
  9. • Nokia e HTC (ainda não no Brasil) • Diversas

    resoluções: 480×800, 768x1280, 720x1280, • Diversos tamanhos: 4.3 pol, 4.5 • GPS, bluetooth, camera, acelerômetro Celulares WindowsPhone
  10. Media players

  11. • 3.5 e 4 polegadas • 640x960 (4, 4s) e

    1136x640 (5) • Assisted GPS, bluetooth, camera, acelerômetro, WiFi iPod Touch
  12. Tablets

  13. • 7.8 e 9.7 polegadas • 1024x768 (mini, 1G e

    2G) e 2048x1536 (3G e 4G) • Assisted GPS, bluetooth, camera, acelerômetro, WiFi/3G iPad
  14. • Inúmeros modelos, de inúmeros frabricantes • Diversas resoluções: 1024x600,

    1280x800, 1280x720,1920x1200 • Diversos tamanhos: 7 pol,10.1, 12.1, 11.8, 7.7, 4.8 • Bluetooth, camera, Wifi/3G Tablets Android
  15. • Surface • 1366x768 e 1920x1080 • 10.6 polegadas •

    Bluetooth, camera, Wifi, acelerômetro Tablets Windows
  16. Plataformas

  17. Apple

  18. • Ambiente controlado pela Apple • Única loja: iTunes App

    Store • Regras rígidas para aprovação de aplicativos Características
  19. • Poucos dispositivos para suportar • Ótimas ferramentas de desenvolvimento

    • Sem pirataria • Lucrativa • A maioria dos dispositivos atualizados Vantagens
  20. Vantagens

  21. • Barreira da linguagem de programação (Objective C) • Precisa

    de um computador com Mac OS X • Burocracia • Somente o dono da marca pode publicar aplicativos • Processo de criação da conta por fax, em inglês • Aprovação pode demorar Desvantagens
  22. • Em Junho/2012. Fonte: Apple • 400 milhões de contas

    (com cartão de crédito) • 650 mil apps, sendo 225 mil para o iPad • Pagou 5 bilhões para desenvolvedores • 160 países • Em Novembro/2012. Fonte: 148apps.biz • 727,938 apps Números
  23. • iOS Dev Center • Apple Developer Forums • Documentação

    • Ferramentas • Provisioning Portal • iTunes Connect Ferramentas de desenvolvimento
  24. iOS Dev Center

  25. Apple Developer Forums

  26. Documentação

  27. Ferramentas de desenvolvimento Mac OS X Xcode Instruments iOS Simulator

  28. Xcode

  29. iOS Simulator

  30. iOS Simulator

  31. Instruments (profiling)

  32. • Objective-C • Baseada em C • Orientada a Objetos

    (inspirada em SmallTalk) • Mac OS X e iOS • Pode ser usada em combinação com C e C++ Ferramentas de desenvolvimento
  33. • Framework Foundation • Base do iOS e Mac OS

    X • UIKit • Responsável pela interface gráfica • Controles, eventos, elementos Ferramentas de desenvolvimento
  34. Android

  35. • Ambiente livre • Diversas lojas: Google Play, Amazon, Samsung,

    Positivo • Diversas opções de fabricantes • Baseado em software livre Características
  36. • Pouca barreira de entrada para desenvolvedores (Java e qualquer

    SO) • Preço baixo dos dispositivos, devido a grande opção de fabricantes • Processo de publicação de apps rápido e sem burocracia • Pouca burocracia para cadastrar-se como desenvolvedor Vantagens
  37. • Muitos dispositivos para suportar • Poucas regras de aprovação

    permitem a inclusão de muitos apps de baixa qualidade (visual, performance, segurança) • Grande pirataria • Dispositivos não atualizados Desvantagens
  38. Desvantagens - Fragmentação

  39. • Em Setembro/2012. Fonte: Google • 675 mil apps •

    1.3 milhão de ativações por dia Números
  40. • Documentação • Forums • SDK • Eclipse + ADT

    Tools • Simulador Ferramentas de desenvolvimento
  41. Android Developers Site

  42. Android Developer Console

  43. Documentação

  44. Eclipse

  45. Emulador

  46. Layout Editor

  47. • Java • Diversas bibliotecas livres • Muito código disponível

    em livros e Github/Bitbucket Ferramentas de desenvolvimento
  48. Ferramentas de desenvolvimento

  49. Blackberry

  50. • Popularizou os “smartphones” • Permite escrever aplicativos em diversas

    linguagens (Blackberry 10) Características
  51. • Pouca barreira de entrada para desenvolvedores (diversas linguagens e

    qualquer SO) • Nova versão (Blackberry 10) sendo lançada agora • Aparelhos atualizados (90% de atualizações do tablet Playbook no primeiro mês de lançamento do novo SO) • Registro de desenvolvedor grátis • Mais lucrativa para os desenvolvedores (só perde para a Apple) Vantagens
  52. • Participação de mercado em declínio • Incerteza do futuro

    Desvantagens
  53. • Em Novembro/2012. Fonte: RIM • 75 milhões de aparelhos

    • Em Fevereiro/2012. Fonte: RIM • 60mil appps Números
  54. • Documentação • Forums • SDK • Simulador Ferramentas de

    desenvolvimento
  55. Ferramentas de desenvolvimento

  56. WindowsPhone

  57. • Nova plataforma • Interface inovadora (Metro) Características

  58. • Pouca barreira de entrada para desenvolvedores (ferramentas e ambiente

    Windows) • Máquina de publicidade da Microsoft • Novo mercado necessitando apps • Grande potencial no mercado empresarial • Integração com a plataforma Microsoft (Office, Xbox Live, Live, Azure, Bing) Vantagens
  59. • Poucos dispositivos • Poucos desenvolvedores • Pouca documentação Desvantagens

  60. • Documentação • Forums • SDK • Simulador • Visual

    Studio • C, C++, C# Ferramentas de desenvolvimento
  61. Ferramentas de desenvolvimento

  62. Ferramentas de desenvolvimento

  63. FirefoxOS

  64. • Baseado em Linux e Firefox (open source) • Foco

    inicial em dispositivos low end (mas com potencial para o high end) • Aparelhos iniciais devem custar de R$200 a R$300 • Aplicativos em HTML5, JS e CSS3 • Em fase final de desenvolvimento (lançamento previsto para primeiro semestre 2013) Características
  65. • Pouca barreira de entrada para desenvolvedores (HTML5, CSS3 e

    JS são largamente usados na Web) • Aporte da Mozilla , Vivo e Telefonica • Lançamento mundial vai ser no Brasil • Grande mercado para novas aplicações (na loja a ser lançada, a Marketplace) Vantagens
  66. • Poucos dispositivos (nenhum oficialmente homologado). Inicialmente Alcatel e ZTE

    • Poucos desenvolvedores • Pouca documentação Desvantagens
  67. • Documentação • Forums • SDK • Simulador • Javascript,

    HTML5 e CSS3 Ferramentas de desenvolvimento
  68. Ferramentas de desenvolvimento

  69. Simulador

  70. Análise e projeto

  71. Interface

  72. • UX é determinante em mobile • Fidelização • Melhor

    Ranking para o app • Mais downloads e compras • Mais renda É importante?
  73. All Budget U$ 0.99 - Ranking:10 Money Care U$ 2.99

    - Ranking: 6
  74. • Portar UI de outras plataformas • Utilizar alertas em

    excesso • Utilizar fontes pequenas demais • Controles pequenos • Fugir do conceito inicial da plataforma • Criar comandos com gestos difíceis O que nunca fazer
  75. • UI de acordo com a plataforma • Controles de

    tamanho razoável • Tratar diferentes resoluções • Foco no que é importante • Fontes fáceis de ler • Foco no usuário O que fazer
  76. iPhone/iPod Touch Navegação/Opções Abas Conteúdo

  77. iPhone/iPod Touch Opções do item Conteúdo Voltar Aba Selecionada

  78. iPhone/iPod Touch Navegação Alternativa Conteúdo Voltar Indicação de Atalho para

    ação
  79. iPad Abas Barra de Navegação Conteúdo

  80. iPad Menu Outras Opções Conteúdo

  81. Smartphone Android Menu Voltar Home Buscar

  82. Smartphone Android Navegação Abas Abas de Conteúdo Conteúdo

  83. Tablet Android Voltar Home Aplicativos abertos Menu Abas Opções Conteúdo

  84. WindowsPhone Tiles Voltar Buscar Home

  85. WindowsPhone Conteúdo Continua para o lado

  86. • iOS Human Interface Guidelines: http://bit.ly/Uxn7vF • Android User Interface

    Guidelines: http://bit.ly/ULp3qo • Blackberry UI Guidelines: http://bit.ly/S4IlTf • User Experience Design Guidelines for Windows Phone: http://bit.ly/ULPTsL • FirefoxOS Gaia: http://mzl.la/Wi5xls Interface Guidelines
  87. Banco de dados

  88. • Open source • Funciona em todas as plataformas mobile

    • Robusto • Triggers, chaves estrangeiras • Rápido SQLite
  89. • MySQL Workbench: http://www.mysql.com/products/workbench/ • Free.Ótimo para fazer a modelagem.

    Múltiplas plataformas. • Plugin para gerar SQLite: http://www.henlich.de/software/sqlite-export- plugin-for-mysql-workbench/ • Navicat: http://www.navicat.com/en/products/navicat_sqlite/ sqlite_overview.html • Pago. Múltiplas plataformas. Trial 30 dias SQLite - Ferramentas
  90. Backend

  91. • Múltiplas interfaces • Regra de negócio centralizada • Acesso

    a sistemas legados • Acesso a APIs externas • Envio de notificações (iOS Notifications, Android Notifications) Motivos para usar
  92. • REST para acesso a entidades • RPC para acesso

    a serviços • JSON ou XML para formato (preferencialmente JSON) • Segurança • HTTPS • OAuth Como criar
  93. • Frameworks PHP • Silex, Slim, Zend Framework 2, Symfony

    • Frameworks Ruby • Rails, Sinatra • Frameworks Python • Django, Flask, Pylons Ferramentas
  94. • http://www.parse.com • Criação de tabelas, acesso via API, push

    notifications, file storage • SDK para iOS, Android, Windows8, WindowsPhone, JavaScript • https://www.parse.com/plans • Comprado pelo Facebook em Abril/2013 Ferramentas
  95. • http://www.stackmob.com • Criação de tabelas, acesso via API •

    Módulos de terceiros (Twitter, Facebook, S3) • SDK para iOS, Android e HTML5/JS • https://www.stackmob.com/pricing/ Ferramentas
  96. Monetização

  97. • Vender o aplicativo nas Apps Stores • Aplicativo gratuíto

    com assinaturas premium • Aplicativo gratuíto com “in-app purchases” • Aplicativo gratuíto com propagandas • “AdverGames” • Cross-app promotion (não recomendado pela Apple) • Desenvolvimento terceirizado Formas de monetização
  98. Venda nas App Stores

  99. App free, assinatura premium

  100. App free, in-app purchases

  101. App free, propagandas

  102. Advergames Versão free para Android patrocinado pelo Google

  103. • Depende da plataforma • Usuários iOS não se importam

    em pagar por aplicativos • Usuários Android preferem aplicativos gratuítos com propagandas • Usar mais de uma forma e analisar os resultados Qual a melhor forma?
  104. • AdMob • Google. Baseado no Adwords e Analytics. Funciona

    para iOS e Android • Apple iAd • Somente iOS. Não disponível no Brasil Plataforma de propagandas
  105. Referências

  106. https://gist.github.com/596cc9fbc6593013590c