Plataforma Android: Produtividade Além do SDK
-
Upload
ryan-padilha -
Category
Education
-
view
602 -
download
1
Transcript of Plataforma Android: Produtividade Além do SDK
![Page 1: Plataforma Android: Produtividade Além do SDK](https://reader034.fdocumentos.tips/reader034/viewer/2022042614/55799fbed8b42ac1148b4705/html5/thumbnails/1.jpg)
@ryanbrunof
![Page 2: Plataforma Android: Produtividade Além do SDK](https://reader034.fdocumentos.tips/reader034/viewer/2022042614/55799fbed8b42ac1148b4705/html5/thumbnails/2.jpg)
Quem sou eu ?
“Não existe essa coisa de ”sorte”. Existe você ir e correr atrás do que quer!” - House
@ryanbrunof
![Page 3: Plataforma Android: Produtividade Além do SDK](https://reader034.fdocumentos.tips/reader034/viewer/2022042614/55799fbed8b42ac1148b4705/html5/thumbnails/3.jpg)
Agenda
• Introdução ao Google Android • Fundamentos do Android • Produtividade levada a sério!
• Frameworks:
– DroidDraw (UI designer) * – RoboGuice (injeção de dependência) – AndOrm e DroidPersistence (persistência de dados) – XStream + SAX (independência de dados)
• Design Patterns: – MVC (Model-View-Controller) – Singleton
• Integração de dados: – WebServices SOAP (JAX-WS)
![Page 4: Plataforma Android: Produtividade Além do SDK](https://reader034.fdocumentos.tips/reader034/viewer/2022042614/55799fbed8b42ac1148b4705/html5/thumbnails/4.jpg)
Introdução Google Android
• O Google Android é um conjunto de software para dispositivos móveis que inclui um sistema operacional, middleware e aplicações nativas.
• O Android SDK provê ferramentas e uma API para desenvolver aplicativos ricos e inovadores.
• A arquitetura da aplicação é projetada para simplificar a reutilização de componentes.
• Em síntese, todas as aplicações são um aglomerado de sistemas e serviços, incluindo: Um rico e extensivo conjunto componentes visuais; Content Providers Resource Manager Notification Manager Activity Manager
![Page 5: Plataforma Android: Produtividade Além do SDK](https://reader034.fdocumentos.tips/reader034/viewer/2022042614/55799fbed8b42ac1148b4705/html5/thumbnails/5.jpg)
Introdução Google Android (2)
![Page 6: Plataforma Android: Produtividade Além do SDK](https://reader034.fdocumentos.tips/reader034/viewer/2022042614/55799fbed8b42ac1148b4705/html5/thumbnails/6.jpg)
Fundamentos do Android
• O sistema Android é um Linux-Based multiusuário do qual cada aplicação é considerada um diferente usuário (ID).
• Implementa o “principle of least privilege”, do qual gerencia o processo (id) por aplicação – isolando através da VM.
• Application Components Activities Representa uma única interface gráfica de usuário. Services Componente executa em background para operações longa duração Content Providers Compartilhamento de dados entre aplicações distintas. Broadcast Receivers Componente que responde por anúncio de broadcast.
![Page 7: Plataforma Android: Produtividade Além do SDK](https://reader034.fdocumentos.tips/reader034/viewer/2022042614/55799fbed8b42ac1148b4705/html5/thumbnails/7.jpg)
Produtividade levada a sério!
• A produtividade em projetos de mobilidade pode ser alcançado pelo domínio da plataforma móvel.
• Ao desenvolver para o Android nos deparamos com muitos detalhes técnicos que demoram para serem confeccionados.
• Produtividade está intimamente ligada ao custo do projeto.
• No paradigma orientado a objetos existem frameworks para agilizar o desenvolvimento e nos poupar de detalhes técnicos e de infra-estrutura, porém não são “A Bala de Prata”.
• Experiência + frameworks = Produtividade!
• Equipe motivada! – Aspecto humano.
![Page 9: Plataforma Android: Produtividade Além do SDK](https://reader034.fdocumentos.tips/reader034/viewer/2022042614/55799fbed8b42ac1148b4705/html5/thumbnails/9.jpg)
O que são Frameworks ?
• Provêm uma solução para uma família de problemas semelhantes. Usando um conjunto de classes e interfaces que exibe como decompor a família de problemas.
• O conjunto de classes deve ser extensível e flexível para permitir a construção de várias aplicações com pouco esforço, especificando apenas as regras de negócio de cada aplicação.
http://bit.ly/dAF2G5
![Page 10: Plataforma Android: Produtividade Além do SDK](https://reader034.fdocumentos.tips/reader034/viewer/2022042614/55799fbed8b42ac1148b4705/html5/thumbnails/10.jpg)
DroidDraw *
• Ferramenta on-line e standalone de design WYSIWYG (What You See Is What You Get) para interface gráfica de usuário baseado em XML.
• Proporciona facilidade no desenho de UI simples.
• Para interfaces complexas é recomendado a manipulação de arquivo XML manualmente.
• Project Page: http://www.droiddraw.org/
![Page 11: Plataforma Android: Produtividade Além do SDK](https://reader034.fdocumentos.tips/reader034/viewer/2022042614/55799fbed8b42ac1148b4705/html5/thumbnails/11.jpg)
DroidDraw * - Exemplo
![Page 12: Plataforma Android: Produtividade Além do SDK](https://reader034.fdocumentos.tips/reader034/viewer/2022042614/55799fbed8b42ac1148b4705/html5/thumbnails/12.jpg)
RoboGuice 2
• RoboGuice é um framework de injeção de dependência que provê simplicidade através de escrita reduzida de código (menos bugs). Utiliza a famosa biblioteca Google Guice.
• Aumenta a legibilidade de código através de anotações fáceis de seguir e manipular.
• Podemos focar somente na camada de negócios de nossas aplicações sem se preocupar com detalhes da arquitetura do Android.
• Project Page: http://code.google.com/p/roboguice/
![Page 13: Plataforma Android: Produtividade Além do SDK](https://reader034.fdocumentos.tips/reader034/viewer/2022042614/55799fbed8b42ac1148b4705/html5/thumbnails/13.jpg)
RoboGuice 2 - Exemplo
• Precisa de um SystemService ? Injete um!
• Precisa de um View ou Resource ? Injete-os também!
• O RoboGuice cuida dos detalhes pra nós.
![Page 14: Plataforma Android: Produtividade Além do SDK](https://reader034.fdocumentos.tips/reader034/viewer/2022042614/55799fbed8b42ac1148b4705/html5/thumbnails/14.jpg)
Persistência de dados
• O Android possui integração com o SQLite, um leve e poderoso banco de dados relacional – http://www.sqlite.org
• O armazenamento em banco de dados é a forma mais comum de persistência, porém o Android possui um simples sistema de persistência baseado em chave-valor chamado de preferências (shared preferences).
![Page 15: Plataforma Android: Produtividade Além do SDK](https://reader034.fdocumentos.tips/reader034/viewer/2022042614/55799fbed8b42ac1148b4705/html5/thumbnails/15.jpg)
AndOrm
• Framework de mapeamento objeto-relacional voltado para plataforma Android.
• Encapsula o nível mais baixo da
API android.database.sqlite.SQLiteDatabase
oferecendo uma API de alto nível.
• Torna o trabalho de criação de instruções SQL e manipulação dos recursos nativos transparente.
• Project Page: https://github.com/jonatasdaniel/andorm
![Page 16: Plataforma Android: Produtividade Além do SDK](https://reader034.fdocumentos.tips/reader034/viewer/2022042614/55799fbed8b42ac1148b4705/html5/thumbnails/16.jpg)
DroidPersistence
• Framework ORM alternativo ao AndOrm.
• Project Page: http://code.google.com/p/droidpersistence/
![Page 17: Plataforma Android: Produtividade Além do SDK](https://reader034.fdocumentos.tips/reader034/viewer/2022042614/55799fbed8b42ac1148b4705/html5/thumbnails/17.jpg)
API SAX - Simple API for XML
• API para manipulação de documentos no formato XML.
• Recomendado por alocar pouca memória.
• Processamento serial de documentos e streaming.
• Possui e desvantagem de, em alguns casos, não validar documentos contra XML Schemas e impossibilidade de saltos e leitura de trechos anteriores.
http://docs.oracle.com/javaee/1.4/tutorial/doc/JAXPIntro4.html
![Page 18: Plataforma Android: Produtividade Além do SDK](https://reader034.fdocumentos.tips/reader034/viewer/2022042614/55799fbed8b42ac1148b4705/html5/thumbnails/18.jpg)
XStream
• API simples para serializar objetos para XML e vice-versa.
• Utilização típica: – Transporte de dados bem-formatados
– Persistência de dados
– Configurações
– Unidades de teste
• Project Page: http://xstream.codehaus.org/
![Page 19: Plataforma Android: Produtividade Além do SDK](https://reader034.fdocumentos.tips/reader034/viewer/2022042614/55799fbed8b42ac1148b4705/html5/thumbnails/19.jpg)
Design Pattern MVC
• Idealizado por Trygve Reenskaug no final dos anos 70.
• Padrão de projeto arquitetural utilizado como boa prática na construção de softwares orientados a objetos reutilizáveis e eficientes.
• Objetiva a organização da aplicação em camadas –
separando a lógica de negócio da camada de apresentação utilizando como mediador um controlador.
![Page 20: Plataforma Android: Produtividade Além do SDK](https://reader034.fdocumentos.tips/reader034/viewer/2022042614/55799fbed8b42ac1148b4705/html5/thumbnails/20.jpg)
Design Pattern Singleton
• Padrão que garante a existência de apenas uma instância de determinada classe.
![Page 21: Plataforma Android: Produtividade Além do SDK](https://reader034.fdocumentos.tips/reader034/viewer/2022042614/55799fbed8b42ac1148b4705/html5/thumbnails/21.jpg)
Integração de dados
• O que são web services ? – “Web services se refere a uma arquitetura que permite que as
aplicações falem umas com as outras. Ponto Final.”
• Padrões fundamentais utilizados – XML
– SOAP
– WSDL
– UDDI
– HTTP
• Desempenho – Servidores de balanceamento de carga
![Page 22: Plataforma Android: Produtividade Além do SDK](https://reader034.fdocumentos.tips/reader034/viewer/2022042614/55799fbed8b42ac1148b4705/html5/thumbnails/22.jpg)
WebServices SOAP
![Page 23: Plataforma Android: Produtividade Além do SDK](https://reader034.fdocumentos.tips/reader034/viewer/2022042614/55799fbed8b42ac1148b4705/html5/thumbnails/23.jpg)
WebServices SOAP Interface
![Page 24: Plataforma Android: Produtividade Além do SDK](https://reader034.fdocumentos.tips/reader034/viewer/2022042614/55799fbed8b42ac1148b4705/html5/thumbnails/24.jpg)
@ryanbrunof