Desenvolvimento mobile

Post on 05-Jun-2015

1.015 views 0 download

description

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

Transcript of Desenvolvimento mobile

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

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

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