@ryanbrunof
Quem sou eu ?                          @ryanbrunof“Não existe essa coisa de ”sorte”. Existe você ir e correr atrás do que ...
Agenda• Introdução ao Google Android• Fundamentos do Android• Produtividade levada a sério!• Frameworks:   –   DroidDraw (...
Introdução Google Android• O Google Android é um conjunto de software para  dispositivos móveis que inclui um sistema oper...
Introdução Google Android (2)
Fundamentos do Android• O sistema Android é um Linux-Based multiusuário do qual cada aplicação  é considerada um diferente...
Produtividade levada a sério!• A produtividade em projetos de mobilidade pode ser  alcançado pelo domínio da plataforma mó...
Produtividade levada a sério!                       http://bit.ly/NeaMLP
O que são Frameworks ?• Provêm uma solução para uma família de problemas  semelhantes. Usando um conjunto de classes e int...
DroidDraw *• Ferramenta on-line e standalone de design WYSIWYG (What  You See Is What You Get) para interface gráfica de u...
DroidDraw * - Exemplo
RoboGuice 2• RoboGuice é um framework de injeção de dependência que  provê simplicidade através de escrita reduzida de cód...
RoboGuice 2 - Exemplo• Precisa de um SystemService ? Injete um!• Precisa de um View ou Resource ? Injete-os também!• O Rob...
Persistência de dados• O Android possui integração com o SQLite, um leve e  poderoso banco de dados relacional – http://ww...
AndOrm• Framework de mapeamento objeto-relacional voltado para  plataforma Android.• Encapsula o nível mais baixo da  API ...
DroidPersistence• Framework ORM alternativo ao AndOrm.• Project Page: http://code.google.com/p/droidpersistence/
API SAX - Simple API for XML•   API para manipulação de documentos no formato XML.•   Recomendado por alocar pouca memória...
XStream• API simples para serializar objetos para XML e vice-versa.• Utilização típica:   –   Transporte de dados bem-form...
Design Pattern MVC• Idealizado por Trygve Reenskaug no final dos anos 70.• Padrão de projeto arquitetural utilizado como b...
Design Pattern Singleton• Padrão que garante a existência de apenas uma instância de  determinada classe.
Integração de dados• O que são web services ?   – “Web services se refere a uma arquitetura que permite que as     aplicaç...
WebServices SOAP
WebServices SOAP Interface
@ryanbrunof
Upcoming SlideShare
Loading in …5
×

Plataforma Android: Produtividade Além do SDK

777 views

Published on

Published in: Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
777
On SlideShare
0
From Embeds
0
Number of Embeds
22
Actions
Shares
0
Downloads
17
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Plataforma Android: Produtividade Além do SDK

  1. 1. @ryanbrunof
  2. 2. Quem sou eu ? @ryanbrunof“Não existe essa coisa de ”sorte”. Existe você ir e correr atrás do que quer!” - House
  3. 3. 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)
  4. 4. 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
  5. 5. Introdução Google Android (2)
  6. 6. 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.
  7. 7. 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.
  8. 8. Produtividade levada a sério! http://bit.ly/NeaMLP
  9. 9. 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
  10. 10. 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/
  11. 11. DroidDraw * - Exemplo
  12. 12. 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/
  13. 13. 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.
  14. 14. 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).
  15. 15. 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
  16. 16. DroidPersistence• Framework ORM alternativo ao AndOrm.• Project Page: http://code.google.com/p/droidpersistence/
  17. 17. 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
  18. 18. 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/
  19. 19. 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.
  20. 20. Design Pattern Singleton• Padrão que garante a existência de apenas uma instância de determinada classe.
  21. 21. 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
  22. 22. WebServices SOAP
  23. 23. WebServices SOAP Interface
  24. 24. @ryanbrunof

×