Módulo I - Introdução
Carlos Eugênio TorresEngenheiro de Informáticahttp://cetorres.com
Faculdade ChristusSistemas de Informação
17/09/2010
Aula 2
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 ascapacidades e temos que desenvolverpensando 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 90002,6 pol.
480 x 320
Apple iPhone 43,5 pol.
640 x 960
Android Nexus One3,7 pol
480 x 800
Motorola Milestone3,7 pol
480 x 854
Symbol MC503,0 pol
240 x 320
HTC s7102,4 pol
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
Oracle Java ME - Arquitetura
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
Microsoft .NET Compact Framework -Arquitetura
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
Google Android - Arquitetura
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
Apple iOS - Arquitetura
Nokia Symbian OS
Linguagem: C++, Qt, Web;
Principalmente encontrado em smartphonesNokia;
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
Nokia Symbian OS - Arquitetura
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
Palm WebOS - Arquitetura
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 disponibilizamAPI 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).
Exemplo
Próxima aula
Montagem de ambiente da plataforma Google Android
FIMdúvidas?