Buscar

Arquitetura Para Dispositivos Móveis Organização_

Prévia do material em texto

Arquitetura Para 
Dispositivos Móveis 
Organização: 
 Giovanni La Porta 
 Sócio Diretor – Framework System 
 
 Arquiteto de Software 
 DBA 
 
 
 
A Incrível Evolução dos 
Mobiles 
Giovanni La Porta 
 
twitter.com/frameworksystem 
 
Consultoria 
Mobile 
Treinamentos 
Java / .Net 
Fábrica de 
Softwares 
Cloud Computing 
Java 
.Net 
.Android 
.Banco 
.SAP 
Então... 
Você está preparado? 
Objetivo 
 Definição de Mobile 
 História dos Dispositivos Móveis 
 Funcionamento 
 Aplicações 
 Fabricantes 
 Dispositivos Móveis 
 Desenvolvimento para Dispositivos Móveis 
 Produtos 
 Oportunidades 
 Impactos da Evolução dos Dispositivos Móveis 
 Exercício de Futurologia 
O que é um 
MOBILE? 
O que é um Mobile? 
 É um neologismo do inglês para o 
respectivo em português “Dispositivo Móvel” 
 
 É um termo genérico usado para se referir a 
uma variedade de dispositivos compactos 
que permitem as pessoas acessarem dados 
e informações em qualquer lugar que 
estejam 
A História 
Isso aí é um Walk-Talk?! 
 
Ficha Técnica 
 
Fabricante: Motorola 
Modelo: DynaTAC 8000x 
Ano: 1983 
Peso: 1Kg 
Dimensão: 30 cm 
Memória: 30 números 
Autonomia: 1 hora 
Preço: US$ 3,995 
 
US$ 12,000 ou R$ 20.000,00 
A História 
Reduzir é o caminho para o sucesso! 
Como funciona um 
MOBILE? 
Um celular pode enviar dados para um outro celular 
ou 
interagir com computadores na Internet 
Como funciona um Celular? 
 Os telefones digitais convertem sua voz 
em informação binária (1s e 0s) e em 
seguida a comprimem e enviam 
 
 Esta compressão permite que 10 
chamadas de um telefone digital ocupem 
o mesmo espaço de uma chamada 
analógica. 
Rede 3G 
 As redes 3G têm velocidade de 
transferência potencial de até 3 Mbps 
(cerca de 15 segundos para o download 
de uma música em MP3 de 3 minutos). 
 
 Os telefones 2G mais rápidos podem 
chegar até 144 Kbps (cerca de 8 minutos 
para o download de uma música de 3 
minutos). 
Quais as aplicações 
de um MOBILE? 
Quais as aplicações de um Mobile? 
 Telefonar 
 Enviar SMS 
 Enviar MMS 
 Conectar na internet e navegar 
 Se localizar de forma georeferenciada 
 Diversão 
 Trabalhar 
 Acelerar o processo produtivo 
 Informatizar o processo produtivo 
 Acelerar troca de informações 
Os Dispositivos 
Dispositivos 
 Celulares 
 SmartPhones 
 Tablets 
 Kindle 
 PDA 
 GPS Device 
 NetBooks 
 Palms 
 etc 
 
Sistemas Operacionais 
 Linux (Diversas variações) 
 Windows 
 Windows ME 
 Windows Mobile 
 IPhoneOS 
 Android 
 Sistemas Proprietários 
Linguagens de Programação e 
Arquiteturas de Desenvolvimento 
 JAVA 
 JME, J2ME (Java Micro Edition) 
 SuperWaba 
 Kindle Development Kit (KDK) 
 Framework .net para Windows ME 
 Objective-C para MACOSX 
 Android SDK 
 C padrão 
 Linguagens proprietárias 
 Assembly 
Desafios para 
Desenvolvimento Mobile 
Desafios para Desenvolvimento Mobile 
 Grande variedade de dispositivos 
 Grande variedade de linguagens 
 Recursos limitados de hardware 
 Grande esforço em homologações e 
testes 
 Documentações ainda nascentes 
 Falta de pessoal qualificado 
 Falta de qualificadores 
IPhone e IPAD 
Como eu crio 
aplicações para 
IPhone? 
IPhone SDK 
 Ambiente disponível apenas para o MACOSX 
 
 Para Windows existem projetos amadores do MACOSX 
como o iNeDeb 10.5.5 e o Hackintosh 
 
 http://www.blogdohackintosh.com/ 
 
 É preciso tomar todos os cuidados para que o aplicativo 
tenha um bom desempenho e não prejudique a 
desempenho do iPhone. 
 
 http://webclaudio.wordpress.com/ 
 
IPhone SDK Template 
IPhone SDK 
 Xcode: é o núcleo do ambiente de desenvolvimento integrado do SDK, 
onde você cria projetos, escreve o código em um editor especial, compila 
código e, em geral, gerencia as suas aplicações. 
 
 Interface Builder: é uma ferramenta que permite que você ponha em 
conjunto os elementos gráficos do seu programa, incluindo janelas e 
menus, através de um método rápido e confiável. 
 
 iPhone Simulator: permite que você visualize um iPhone em seu desktop. 
Você provavelmente teria que pagar a licença da Apple para desenvolver 
no Hardware pois o XCODE só se comunica com o IPHONE se estiver 
devidamente licenciado ( $99 o mais barato). 
 
 Instruments: é um programa que permite que você dinamicamente debug, 
personalize e trace o seu programa. 
 
 Dashcode: é um ambiente gráfico de desenvolvimento, que é utilizado para 
criar web-based (aplicações web) incorporando programas HTML, CSS e 
JavaScript. 
Objective-C 
 Toda a programação do SDK é feita em 
Objective-C 
 
 É um completo superconjunto da lingagem C, 
permitindo que você escreva qualquer código 
em C tradicional 
 
 Acrescenta ainda poderosas capacidades da 
orientação a objeto. 
 
 Objective-C é inteiramente construído em torno 
de objetos como Windows, Views, botões, 
sliders e controladores 
IPhone XCODE com Objective-C 
Estatísticas Apple 
 Mac App Store é a número 1 como canal de vendas de 
software on-line 
 Mais de 200 milhões de dispositivos iOS vendidos 
 25 milhões de iPads nos primeiros 14 meses 
 15 bilhões de músicas vendidas pelo iTunes Store 
 iBookstore downloads são mais de 130 milhões 
 425.000 apps à disposição na App Store; 90.000 só para 
iPad 
 14 bilhões de apps downloaded da App Store 
 Apple pagou mais de US$2.5 billion para os 
desenvolvedores 
 225 milhões de contas no iTunes 
 50 milhões de usuários registrados de jogos 
Kindle 
Kindle 
 É um pequeno aparelho criado pela 
empresa americana Amazon, que tem 
como função principal ler livros eletrônicos 
e outros tipos de midia digital. 
 
 O primeiro modelo foi lançado nos 
Estados Unidos em 19 de Novembro de 
2007. 
Como eu crio 
aplicações para o 
Kindle? 
Kindle Development Kit (KDK) 
 Versão Beta 
 É necessário solicitar um registro de Beta 
Developer 
 http://kdk.amazon.com 
 Amazon cobra uma taxa para cobrir os 
custos de download e uso de 
transferências de bytes dentro dos 
programas 
PDA 
PDA ou HandHeld ou PalmTop 
 Personal Digital Assistants ou Assistente 
Pessoal Digital 
 
 É computador com dimensões reduzidas 
dotado de grande capacitade 
computacional cumprindo funções 
agregadas com aplicações industriais 
Utilizado para mapeamento de rodovias Utilizado pelo Exército Brasileiro 
Utilizado pelo IBGE Utilizado para apontamento de campo 
Como eu crio 
aplicações para 
PDAs? 
Framework .Net 
 A plataforma mais utilizada para 
desenvolvimento de aplicações PDA para 
Pocket PC é o Framework .Net 
 O desenvolvimento é voltado para a arquitetura 
Desktop podendo construir as interfaces com 
DevX 
 Completa compatibilidade com Windows OS 
 Aceita os bancos de dados MSSqlServer 
Express e Microsoft Compact Express 
Visual Studio com C# para Framework .Net 4.0 
ANDROID 
Android 
• Plataforma de Software para dispositivos 
móveis 
 
• Sistema Operacional + Middleware + 
Aplicações 
Android no mercado 
• 2011: 37% do mercado de smartphones dos EUA. 
Android no mercado 
• 2011: 50% das aquisições recentes (últimos 6 meses) 
 
Dispositivos Android 
• Vários 
fornecedores 
• Smartphones• Tablets 
• TVs (Google TV) 
 
Dispositivos Android - Versões 
Platforma Codename API % 
1.5 Cupcake 3 1,0% 
1.6 Donut 4 1,8% 
2.1 
Eclair 
7 13,3% 
2.2 Froyo 8 51,2% 
2.3 a 2.3.2 Gingerbread 9 0,6% 
2.3.3 a 
2.3.4 
10 30,7% 
3.0 Honeycomb 11 0,2% 
3.1 12 0,7% 
3.2 13 0,5% 
Arquitetura da plataforma 
• A plataforma é constituída de uma pilha 
de camadas de software que roda em 
cima do sistema operacional modificado 
Linux 
 
• Acima dessas camadas vem a Dalvik VM, 
as bibliotecas Java e as aplicações finais 
dos usuários. 
Kernel do Linux modificado 
• Sistema operacional Linux 2.6 modificado 
• Fornece serviços centrais: 
– Segurança 
– Gerenciamento de memória 
– Gerenciamento de processos 
– Serviços de rede 
– Drivers... 
• Camada de abstração entre hardware e 
camadas de software 
Runtime Android 
• Bibliotecas básicas de funcionalidades 
JAVA 
 
• Dalvik Virtual Machine: VM otimizada 
 
• Processos separados para cada aplicação 
(uma instância da DVM por processo) 
 
Aplicações 
• Pacote de 
aplicações chaves: 
– E-mail 
– SMS 
– Agenda 
– Mapas 
– Navegador 
– Contatos... 
Ambiente de Desenvolvimento 
• Java Development Kit (JDK) versão 6 
• Android SDK 
• Eclipse (Indigo) + ADT 
• Plataforma 2.2+ 
 
 
FRAMEWORKS PARA DESENVOLVIMENTO 
Robotium Spring Android 
O
R
M
L
I
T
E 
ORMLite 
Lightweight Object Relational Mapping (ORM) 
Supports Android and SQLite 
@DatabaseTable(tableName = "accounts") 
public class Account { 
 
 @DatabaseField(id = true) 
 private String name; 
 @DatabaseField(canBeNull = false) 
 private String password; 
 ... 
 Account() { 
 // all persisted classes must define a no-arg constructor with at least 
 package visibility 
 } 
 ... 
 } 
OrmLite 
Lightweight Object Relational Mapping (ORM) 
Supports Android and SQLite 
// you get the SQLiteOpenHelper from your Android Activity 
 
ConnectionSource connectionSource = new AndroidConnectionSource(sqliteOpenHelper); 
 
// instantiate the DAO to handle Account with String id 
Dao<Account,String> accountDao = BaseDaoImpl.createDao(connectionSource, Account.class); 
 
// if you need to create the 'accounts' table make this call TableUtils.createTable(connectionSource, 
Account.class); 
 
// retrieve the account 
Account account2 = accountDao.queryForId(name); 
 
// show its password 
System.out.println("Account: " + account2.getPassword()); 
 
// close the connection source 
connectionSource.close(); 
Spring Android 
SPRING ANDROID 
é uma extenção do spring framework que vem para 
simplificar o desenvolvimento de aplicações Android. 
 
http://www.springsource.org/spring-android 
 
<dependency> 
 <groupId>org.springframework.android</groupId> 
 <artifactId>spring-android-core</artifactId> 
 <version>${spring-android-version}</version> 
</dependency> 
Modularidade Performance Portabilidade Testabilidade 
Spring Android 
<activity android:name="org.springframework.android.showcase.social.twitter.TwitterActivity"> 
 <intent-filter> 
 <action android:name="android.intent.action.VIEW" /> 
 <category android:name="android.intent.category.DEFAULT" /> 
 <category android:name="android.intent.category.BROWSABLE" /> 
 <data android:scheme="x-org-springsource-android-showcase" android:host="twitter-oauth-response" /> 
 </intent-filter> 
</activity> 
Integração com Twitter 
Context context = getApplicationContext(); 
SQLiteOpenHelper repositoryHelper = new SQLiteConnectionRepositoryHelper(context); 
Inicializando o SQLite Database 
Robotium 
É um framework de testes criado para tornar fácil e 
robusto a criação de testes automatizados de caixa-
preta para aplicações Android 
Similar ao Selenium , Rational Functional Tester , 
 so que para Android 
Vantagens 
• Desenvolver test cases robustos. 
• Alta produtividade para escrever testes sólidos. 
• Integração Com Maven e Ant 
• Gerência Multiplipos Activities do Android 
• Fácil utilização para gravar os testes 
 
Google API 
Google API 
Produtos 
Produtos 
 Aplicativos de Recreação 
 Street Fighter US$ 8,50 
 Iron Man US$ 6,50 
 Aplicativos de Informação 
 Forecast US$ 9,90 
 Mobile Visa – Ver com operadora 
 Aplicativos de Gerenciamento e Controle 
 MSSQLServer Mobile Manager - Pago 
 Oracle Mobile Administrator - Pago 
 Redes Sociais 
 Facebook - Gratuito 
 Twitter - Gratuito 
 Localizadores 
 Mobile Maps - Gratuito 
 Google Maps - Gratuito 
 BHTrans On-Line - Gratuito 
Jogos 
Jogos 
 Estudo de 2010 mostra que jogos para celular são os 
aplicativos mais baixados no mundo 
 64% dos usuários analisados baixaram games, 60% 
baixaram aplicativos de previsão do tempo e 56% 
baixaram aplicativos de redes sociais 
 Os usuários de IPhones são considerados os maiores 
jogadores, investindo cerca de 14 horas por mês na 
atividade 
 68% dos usuários utilizam IPhone ou Android ou 
Windows ME 
 Somente nos EUA é faturado cerca de US$ 57 milhões 
anualmente 
Jogos 
 Atualmente quase todos jogos de videogame 
tendem a ter imagens de qualidade 
cinematográfica e com gráficos em 3D 
 Portanto, todos esses atributos em um jogo de 
celular devem ser muito bem estudados antes 
de serem usados 
 A tela do celular também tem poucos pixels e 
pode ser um impeditivo para alguns desses 
recursos visuais 
Ferramentas 
 A ferramenta mais utilizada para geração 
de jogos para Mobile (não Apple) é o 
J2ME 
 Utilizar a API Java2D e Java3D para criar 
os gráficos e animações 
 Gerar um JAD com o aplicativo 
 http://www.jogosparacelular.org/2009/02/h
arvest-moon-3-multiscreen.html 
 
Redes Sociais 
Redes Sociais 
 Twitter 
Já nasceu para Mobiles 
Limite de caracteres é o mesmo de SMS 
 Facebook 
Check in e Check out 
Enviar fotos 
Push 
 
 
Oportunidades 
Oportunidades 
 Venda de equipamentos 
 Desenvolvimento de aplicativos para recreação 
 Desenvolvimento de aplicativos para 
gerenciamento e controle 
 Desenvolvimento de aplicativos de Push 
 Desenvolvimento de aplicativos 
Georeferenciados 
 Consultoria e implantação 
 Mobile Payment 
 Lojas (Market Places) 
Market Places 
Android – Android Market 
Impactos 
Financeiros 
Impactos Financeiros 
 Aumento dos custos periódicos 
 Redução dos custos no processo produtivo 
 Possibilidade de ganhos com Market Places 
 Vendas de hardware 
 
Impactos 
Comportamentais 
Impactos Comportamentais 
 Criação de um novo estilo de vida 
 Criação de novos estilos de trabalho 
 Criação de novos interesses 
 Criação de novas atividades e diversões 
 O mobile deixa de ser ferramenta e passa a ser 
artigo de status 
 Consumismo desenfreado 
 Tecnomodismo 
Impactos 
Produtivos 
Impactos Produtivos 
 Redução de ferramentas e artefatos 
 Aumento na qualidade do dado 
 Georeferenciamento em tempo real 
 Escalabilidade do processo produtivo 
 Redução do tempo de retorno 
 Aceleração do feedback 
Impactos Produtivos 
Empresa de Belo Horizonte faz cadastro 
dos imóveis do próprio local 
Impactos Produtivos 
Sistema calcula melhor rota para caminhão 
da Vale georeferenciado remotamente 
Impactos Produtivos 
Apontador de empresa de construção 
pesada lança produtividade de fresadoraImpactos 
Sociais 
Impactos Sociais 
“Com a informática de uso pessoal, foram 
surgindo especialistas da própria área sem 
intervenção direta de outros meios ou 
professores, e estes jovens desbravadores do 
mundo digital foram fazendo um processo 
inverso que forçou que o mundo real se 
adaptasse a essa nova realidade” 
 
Marco Villares – Mestre em Ciência da 
Computação – UNB 
Impactos Sociais 
 As pessoas nunca se comunicaram de forma 
instantânea entre si tanto e em um período tão curto na 
história da própria Humanidade 
 
 Aceleração dos processos decisórios 
 
 Porém, pais e filhos, professores e alunos nunca 
estiveram tão distantes quando trata-se do uso da 
tecnologia e da troca de experiências entre ambos os 
grupos 
 
 Abertura da vida privada de forma ainda não entendida 
 
 Escravismo Digital 
Futurologia 
Futurologia 
 Aumento dos recursos de hardware 
 Criação de novos recursos de hardware 
 Aumento dos serviços oferecidos aos 
Mobiles 
 Mobile Payment 
 Mobile Marketing 
 
Futurologia 
 http://www.mocom2020.com/ 
 Os livros de papel irão sucumbir aos leitores digitais? 
 Óculos com chips para navegação web 
 Sensorconomy 
 http://www.mobilepedia.com.br 
 Cresce número de celulares multi-SIMcard 
 Minas Gerais usará SMS para fiscalização de 
Impostos 
 Polícia Militar já utiliza em viaturas dispositivos 
móveis em São Paulo 
Conclusão 
A Incrível 
EVOLUÇÃO 
dos Mobiles 
“Você está 
preparado?”

Continue navegando