Upload
elton-minetto
View
1.015
Download
0
Embed Size (px)
DESCRIPTION
Neste apresentação comento algumas dicas, vantagens e diferenças entre as diferentes plataformas de aplicativos móveis como Apple, Android, FirefoxOS, WindowsPhone.
Citation preview
Desenvolvimento mobile
Elton MinettoGraduado/pós-graduado em Ciência da Computação
Desenvolvedor desde 1997Professor desde 2004
Autor de três livros sobre PHP e um sobre grid computing
Co-fundador da Coderockr e do Code SquadMembro da diretoria da ABRAPHP
Contato
http://eltonminetto.net@eminetto
http://coderockr.comhttp://code-squad.com
Tipos de dispositivos
Telefones
• 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
• 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
• 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
Media players
• 3.5 e 4 polegadas
• 640x960 (4, 4s) e 1136x640 (5)
• Assisted GPS, bluetooth, camera, acelerômetro, WiFi
iPod Touch
Tablets
• 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
• 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
• Surface
• 1366x768 e 1920x1080
• 10.6 polegadas
• Bluetooth, camera, Wifi, acelerômetro
Tablets Windows
Plataformas
Apple
• Ambiente controlado pela Apple
• Única loja: iTunes App Store
• Regras rígidas para aprovação de aplicativos
Características
• Poucos dispositivos para suportar
• Ótimas ferramentas de desenvolvimento
• Sem pirataria
• Lucrativa
• A maioria dos dispositivos atualizados
Vantagens
Vantagens
• 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
• 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
• iOS Dev Center
• Apple Developer Forums
• Documentação
• Ferramentas
• Provisioning Portal
• iTunes Connect
Ferramentas de desenvolvimento
iOS Dev Center
Apple Developer Forums
Documentação
Ferramentas de desenvolvimento
Mac OS X
Xcode
Instruments
iOS Simulator
Xcode
iOS Simulator
iOS Simulator
Instruments (profiling)
• 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
• Framework Foundation
• Base do iOS e Mac OS X
• UIKit
• Responsável pela interface gráfica
• Controles, eventos, elementos
Ferramentas de desenvolvimento
Android
• Ambiente livre
• Diversas lojas: Google Play, Amazon, Samsung, Positivo
• Diversas opções de fabricantes
• Baseado em software livre
Características
• 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
• 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
Desvantagens - Fragmentação
• Em Setembro/2012. Fonte: Google
• 675 mil apps
• 1.3 milhão de ativações por dia
Números
• Documentação
• Forums
• SDK
• Eclipse + ADT Tools
• Simulador
Ferramentas de desenvolvimento
Android Developers Site
Android Developer Console
Documentação
Eclipse
Emulador
Layout Editor
• Java
• Diversas bibliotecas livres
• Muito código disponível em livros e Github/Bitbucket
Ferramentas de desenvolvimento
Ferramentas de desenvolvimento
Blackberry
• Popularizou os “smartphones”
• Permite escrever aplicativos em diversas linguagens (Blackberry 10)
Características
• 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
• Participação de mercado em declínio
• Incerteza do futuro
Desvantagens
• Em Novembro/2012. Fonte: RIM
• 75 milhões de aparelhos
• Em Fevereiro/2012. Fonte: RIM
• 60mil appps
Números
• Documentação
• Forums
• SDK
• Simulador
Ferramentas de desenvolvimento
Ferramentas de desenvolvimento
WindowsPhone
• Nova plataforma
• Interface inovadora (Metro)
Características
• 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
• Poucos dispositivos
• Poucos desenvolvedores
• Pouca documentação
Desvantagens
• Documentação
• Forums
• SDK
• Simulador
• Visual Studio
• C, C++, C#
Ferramentas de desenvolvimento
Ferramentas de desenvolvimento
Ferramentas de desenvolvimento
FirefoxOS
• 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
• 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
• Poucos dispositivos (nenhum oficialmente homologado). Inicialmente Alcatel e ZTE
• Poucos desenvolvedores
• Pouca documentação
Desvantagens
• Documentação
• Forums
• SDK
• Simulador
• Javascript, HTML5 e CSS3
Ferramentas de desenvolvimento
Ferramentas de desenvolvimento
Simulador
Análise e projeto
Interface
• UX é determinante em mobile
• Fidelização
• Melhor Ranking para o app
• Mais downloads e compras
• Mais renda
É importante?
All BudgetU$ 0.99 - Ranking:10
Money CareU$ 2.99 - Ranking: 6
• 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
• 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
iPhone/iPod TouchNavegação/Opções
Abas
Conteúdo
iPhone/iPod Touch
Opções do item
Conteúdo
Voltar
Aba Selecionada
iPhone/iPod TouchNavegaçãoAlternativa
Conteúdo
Voltar
Indicação deAtalho para ação
iPad
Abas
Barra de Navegação
Conteúdo
iPad
Menu
OutrasOpções
Conteúdo
Smartphone Android
Menu Voltar
Home Buscar
Smartphone Android
NavegaçãoAbas
Abas deConteúdo
Conteúdo
Tablet Android
VoltarHome Aplicativos
abertosMenu
Abas
Opções
Conteúdo
WindowsPhone
Tiles
VoltarBuscarHome
WindowsPhone
ConteúdoContinua para
o lado
• 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
Banco de dados
• Open source
• Funciona em todas as plataformas mobile
• Robusto
• Triggers, chaves estrangeiras
• Rápido
SQLite
• 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
Backend
• 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
• REST para acesso a entidades
• RPC para acesso a serviços
• JSON ou XML para formato (preferencialmente JSON)
• Segurança
• HTTPS
• OAuth
Como criar
• Frameworks PHP
• Silex, Slim, Zend Framework 2, Symfony
• Frameworks Ruby
• Rails, Sinatra
• Frameworks Python
• Django, Flask, Pylons
Ferramentas
• 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
• 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
Monetização
• 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
Venda nas App Stores
App free, assinatura premium
App free, in-app purchases
App free, propagandas
Advergames
Versão free para Androidpatrocinado pelo Google
• 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?
• 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
Referências
https://gist.github.com/596cc9fbc6593013590c