plataforma android: produtividade além do sdk

24
@ryanbrunof

Upload: ryan-padilha

Post on 11-Jun-2015

601 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Plataforma Android: Produtividade Além do SDK

@ryanbrunof

Page 2: Plataforma Android: Produtividade Além do SDK

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

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

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

Introdução Google Android (2)

Page 6: Plataforma Android: Produtividade Além do SDK

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

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 8: Plataforma Android: Produtividade Além do SDK

Produtividade levada a sério!

http://bit.ly/NeaMLP

Page 9: Plataforma Android: Produtividade Além do SDK

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

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

DroidDraw * - Exemplo

Page 12: Plataforma Android: Produtividade Além do SDK

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

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

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

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

DroidPersistence

• Framework ORM alternativo ao AndOrm.

• Project Page: http://code.google.com/p/droidpersistence/

Page 17: Plataforma Android: Produtividade Além do SDK

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

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

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

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

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

WebServices SOAP

Page 23: Plataforma Android: Produtividade Além do SDK

WebServices SOAP Interface

Page 24: Plataforma Android: Produtividade Além do SDK

@ryanbrunof