Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
Módulo I - Introdução
Aula 2
Carlos Eugênio Torres Faculdade Christus
Engenheiro de Informática Sistemas de Informação
http://cetorres.com 17/09/2010
Graduado em Ciência da Computação pela UFC,
Brasil (2004);
Graduado em Engenharia Informática e de
Computadores pelo IST, Portugal (2005);
Mais de 10 anos de experiência com
desenvolvimento móvel, inclusive internacional,
na Vodafone Telecom, Portugal;
MBA em Gestão de Projetos pela FGV, Brasil (em
andamento);
Fundador da Cacira Tecnologia, empresa
especializada em soluções para as plataformas
web e móvel (http://cacira.com.br).
Módulo I - Introdução
Dia 03/09
▪ Conceito de Mobilidade;
▪ História da computação móvel;
▪ Utilidade das aplicações móveis;
▪ Desafios;
▪ Necessidades do mercado;
Dia 17/09
▪ Características técnicas dos dispositivos móveis;
▪ Principais plataformas de desenvolvimento;
▪ Plataformas mais indicadas para cada solução;
▪ Aplicações móveis e a internet;
Dia 24/09
▪ Prática: Montagem de um ambiente de programação em uma plataforma de
desenvolvimento móvel;
Dia 01/10
▪ Prática: Desenvolvimento de um mini-projeto de aplicação móvel.
Quando pensamos em desenvolver para
dispositivos móveis, temos que ter em mente
suas principais características técnicas para
nos ajudar a direcionar o desenvolvimento.
Em termos de smartphones, as principais são:
tamanho e resolução da tela, capacidade de
memória e processamento, métodos de
entrada de dados e conectividade.
TAMANHO E RESOLUÇÃO DA TELA
O dispositivos móveis atuais têm cada vez mais
vindo com telas grandes e com alta resolução.
O iPhone 4, por exemplo, tem um display de 3,5
polegadas com uma resolução de espantosos
960x640 pixels.
Mas nem todos os dispositivos tem as
capacidades e temos que desenvolver
pensando em vários tamanhos e
resoluções
TAMANHO E RESOLUÇÃO DA TELA
Nossa aplicação móvel deve estar preparada para
se adaptar automaticamente ou devem ser feitas
versões diferentes para cada tamanho específico.
Blackberry Bold 9000 Apple iPhone 4 Android Nexus One Motorola Milestone Symbol MC50 HTC s710
2,6 pol. 3,5 pol. 3,7 pol 3,7 pol 3,0 pol 2,4 pol
480 x 320 640 x 960 480 x 800 480 x 854 240 x 320 240 x 320
MEMÓRIA E PROCESSAMENTO
Nossa aplicação móvel deve preocupar-se com a
capacidade de memória e processamento do
dispositivo em que irá ser executada. Geralmente
essa capacidade é limitada e devemos construir
um código na programação bastante leve e
eficiente, que não sobrecarregue os recursos do
dispositivo e possa, ao mesmo tempo, tirar o
máximo de proveito do equipamento.
MEMÓRIA E PROCESSAMENTO
As principais configurações encontradas
atualmente no mercado para essa característica:
Processador Memória RAM Memória ROM Armazenamento
~ 350 Mhz 256 MB 512 MB Externo <= 4 GB
~ 500 Mhz 512 MB 512 MB Exerno <= 16 GB
~ 1 Ghz 512 MB 512 MB Interno / Externo <= 32 GB
MÉTODOS DE ENTRADA DE DADOS
São as formas com que o usuário irá entrar com
dados nos dispositivos para alimentar a nossa
aplicação.
Podem ser: teclado (virtual ou físico), câmera,
microfone, sensores de aceleração, luminosidade
e proximidade, tela sensível ao toque, botões de
acesso e cabos de dados.
MÉTODOS DE ENTRADA DE DADOS
Quando estamos projetando nossa aplicação,
temos que planejar que métodos de entrada
iremos utilizar para obter dados do usuário.
Para cada método, existem funções nas
frameworks de desenvolvimento diferentes para
se poder acessar a entrada do usuário. Seja a API
da câmera, dos sensores, o interpretador de voz
através do microfone, os botões etc.
CONECTIVIDADE
As formas de comunicação e conexão com o mundo
exterior ao dispositivo móvel hoje em dia é a principal
característica a se analisar.
As formas mais freqüentes atualmente são:
▪ GSM (telefonia móvel)
▪ Redes sem fio (WiFi)
▪ Dados móveis (3G, Edge, GPRS)
▪ Bluetooth
▪ GPS e a-GPS
▪ USB (cabo de dados)
CONECTIVIDADE
Ao se desenvolver uma aplicação móvel, deve-se
saber de que formas ela irá se comunicar com o
meio externo para realizar trocas de arquivos,
atualizações de banco de dados locais e remotos,
solicitações de informações a serviços online.
A partir daí, a programação irá utilizar a API
correta para cada tipo de conexão, realizando a
comunicação com sucesso.
Atualmente, as plataformas ou frameworks mais
utilizadas no desenvolvimento de aplicações
móveis são:
Oracle Java ME;
Microsoft Windows Mobile;
Google Android;
Apple iOS;
Nokia Symbian OS;
Palm WebOS;
Outras plataformas proprietárias.
Oracle Java ME
Linguagem: Java;
Bastante difundida dentre os celulares para jogos e
aplicações de utilidades;
A Java Micro Edition divide-se em:
▪ CLDC: Connected Limited Devices Configuration
▪ MIDP: Mobile Information Device Profile
▪ CDC: Connected Devices Configuration
IDE: Eclipse e Netbeans
SDK:
▪ http://www.oracle.com/technetwork/java/javame/overview/index.html
Microsoft Windows Mobile
Linguagem:
▪ .NET Compact Framework C# e VB.NET;
Bastante difundida dentre as aplicações corporativas
pela sua produtividade e integração com outros
produtos Microsoft;
Pequena curva de aprendizagem para quem já
conhece .NET Framework;
IDE: Visual Studio .NET
SDK:
▪ http://msdn.microsoft.com/en-us/netframework/aa497273.aspx
Google Android
Linguagem: Java, Web;
Criada pela Google para smartphones;
Muitas funcionalidades na API;
Possui loja de venda de aplicações. Desenvolvedor
paga anuidade para vender na loja;
Pequena curva de aprendizagem para quem já
conhece Java;
IDE: Eclipse
SDK:
▪ http://developer.android.com/sdk/index.html
Apple iOS
Linguagem: Objective-C, Web;
Exclusivo para iPhone, iPod Touch e iPad;
Muitas funcionalidades na API, mas a aplicação fica
presa numa “sandbox” quando instalada;
Possui loja de venda de aplicações. Desenvolvedor
paga anuidade para vender na loja;
Grande curva de aprendizado na linguagem
Objective-C, por ser pouco difundida;
IDE: Xcode (apenas Mac OS X);
SDK:
▪ http://developer.apple.com/devcenter/ios/index.action
Nokia Symbian OS
Linguagem: C++, Qt, Web;
Principalmente encontrado em smartphones
Nokia;
Curva de aprendizado média na linguagem C++
com uso de Qt (plataforma para criação de UI) ;
IDE: Fornecida pela fabricante;
SDK:
▪ https://developer-secure.symbian.org/main/tools_and_kits/index.php
Palm WebOS
Linguagem: Web, C++;
Somente encontrado em smartphones Palm;
Rápido e bonito, mas com poucos usuários e
aplicações até o momento;
Destaque para desenvolvimento em plataforma Web
encorajado pelo próprio SDK;
IDE: Eclipse;
SDK:
▪ http://developer.palm.com/index.php?option=com_content&view=article&layo
ut=page&id=1788
Cada solução móvel exige uma análise
detalhada de todos os requisitos que devem
ser implementados na aplicação;
De acordo com o objetivo principal da
solução, um dispositivo móvel e uma
plataforma são indicados como os melhores,
que contém as melhores funcionalidades,
facilidade e produtividade necessárias para
alcançar o objetivo com eficiência e eficácia.
Case 1: Aplicação móvel para o Censo 2010 do IBGE
Irá exigir uso diário e contínuo durante grande número de
horas;
Uso externo, sujeito ao tempo, poeira, quedas;
Boa capacidade de memória;
Recursos de comunicação móvel, 3G e Edge;
Recursos de GPS para localização global;
Grande número de dispositivos em operação;
Sincronização com sistema central;
Facilidade de instalação e manutenção;
Capacidade de produtividade no desenvolvimento.
Case 2: Aplicação para gestão móvel de ERP
Será utilizado apenas pelos executivos da
empresa;
Exige visual arrojado e fácil usabilidade;
Comunicação móvel, 3G, WiFi;
Sincronização apenas sem fio;
Poucos dispositivos em operação;
Reconhecimento de voz para autenticação;
Case 1: Aplicação móvel para o Censo 2010 do
IBGE – Solução
Dispositivo indicado: Coletor Symbol MC50
Plataforma: Windows Mobile
.NET Compact Framework
Case 2: Aplicação para gestão móvel de ERP -
Solução
Dispositivo indicado: iPhone 4
Plataforma: Apple iOS
Umas das formas de comunicação
que podem ser usadas pelas
aplicações móveis é através da
internet;
Utiliza meios de ligações sem fio como 3G,
Edge, GPRS ou WiFi;
Solicita e envia informações a serviços web,
e-mail IMAP, RSS feeds, API remotas a fim de
buscar integração com variados sistemas
online.
Todas as plataformas disponibilizam
API para comunicação com os
protocolos disponíveis na internet;
Integrações mais comuns:
Redes sociais (Twitter, Facebook etc);
RSS feeds e blogs;
Mapas online;
Meteorologia
Notícias (economia, esportes, política etc).