plataforma android: produtividade além do sdk

Post on 11-Jun-2015

602 Views

Category:

Education

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

@ryanbrunof

Quem sou eu ?

“Não existe essa coisa de ”sorte”. Existe você ir e correr atrás do que quer!” - House

@ryanbrunof

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)

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

Introdução Google Android (2)

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.

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.

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 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

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/

DroidDraw * - Exemplo

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/

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.

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).

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

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.

• 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

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/

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.

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ções falem umas com as outras. Ponto Final.”

• Padrões fundamentais utilizados – XML

– SOAP

– WSDL

– UDDI

– HTTP

• Desempenho – Servidores de balanceamento de carga

WebServices SOAP

WebServices SOAP Interface

@ryanbrunof

top related