SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
@ryanbrunof
Quem sou eu ?                          @ryanbrunof


“Não existe essa coisa de ”sorte”.
 Existe você ir e correr atrás do que quer!” - House
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

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Curso Java Web (JAVA, JSF, JPA)
Curso Java Web (JAVA, JSF, JPA)Curso Java Web (JAVA, JSF, JPA)
Curso Java Web (JAVA, JSF, JPA)
 
Distribuindo seu app Blazor no Azure com Storage + CDN
Distribuindo seu app Blazor no Azure com Storage + CDNDistribuindo seu app Blazor no Azure com Storage + CDN
Distribuindo seu app Blazor no Azure com Storage + CDN
 
Apresentação Drupal como LMS
Apresentação Drupal como LMSApresentação Drupal como LMS
Apresentação Drupal como LMS
 
Microservices com ASP.NET 5
Microservices com ASP.NET 5Microservices com ASP.NET 5
Microservices com ASP.NET 5
 
Asp net identity - De dentro das trincheiras
Asp net identity - De dentro das trincheirasAsp net identity - De dentro das trincheiras
Asp net identity - De dentro das trincheiras
 
Do monolito ao micro serviço
Do monolito ao micro serviçoDo monolito ao micro serviço
Do monolito ao micro serviço
 
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte II
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte IIMeetup ScalaCamp Curitiba, Fevereiro de 2017, Parte II
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte II
 
Campus Party 2014 - Desenvolvimento Web com ASP.NET
Campus Party 2014 - Desenvolvimento Web com ASP.NETCampus Party 2014 - Desenvolvimento Web com ASP.NET
Campus Party 2014 - Desenvolvimento Web com ASP.NET
 
Memórias das trincheiras (parte 2)
Memórias das trincheiras (parte 2)Memórias das trincheiras (parte 2)
Memórias das trincheiras (parte 2)
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edted
 
GUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EEGUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EE
 
Microservices
MicroservicesMicroservices
Microservices
 
Novidades do ASP.NET 5.X
Novidades do ASP.NET 5.XNovidades do ASP.NET 5.X
Novidades do ASP.NET 5.X
 
Comunicação em Tempo Real com ASP.Net SignalR
Comunicação em Tempo Real com ASP.Net SignalRComunicação em Tempo Real com ASP.Net SignalR
Comunicação em Tempo Real com ASP.Net SignalR
 
Entity Framework 7
Entity Framework 7Entity Framework 7
Entity Framework 7
 
Micro Front-end + CQRS/ES - JSSP jul/2019
Micro Front-end + CQRS/ES - JSSP jul/2019Micro Front-end + CQRS/ES - JSSP jul/2019
Micro Front-end + CQRS/ES - JSSP jul/2019
 
Vantagens e desvantagens de uma arquitetura microservices
Vantagens e desvantagens de uma arquitetura microservicesVantagens e desvantagens de uma arquitetura microservices
Vantagens e desvantagens de uma arquitetura microservices
 
Workshop - Business Process Management
Workshop - Business Process ManagementWorkshop - Business Process Management
Workshop - Business Process Management
 
GUJavaSC - Unit Testing com Java EE
GUJavaSC - Unit Testing com Java EEGUJavaSC - Unit Testing com Java EE
GUJavaSC - Unit Testing com Java EE
 
O Futuro do ASP.NET
O Futuro do ASP.NETO Futuro do ASP.NET
O Futuro do ASP.NET
 

Ähnlich wie Plataforma Android: Produtividade Além do SDK

Desenvolvimento web com software livre
Desenvolvimento web com software livreDesenvolvimento web com software livre
Desenvolvimento web com software livre
Ruan Carvalho
 
APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)
Walanem Figueiredo
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4
Rodrigo Kono
 

Ähnlich wie Plataforma Android: Produtividade Além do SDK (20)

Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011
 
Desenvolvimento web com software livre
Desenvolvimento web com software livreDesenvolvimento web com software livre
Desenvolvimento web com software livre
 
Desenvolvimento web com Software Livre
Desenvolvimento web com Software LivreDesenvolvimento web com Software Livre
Desenvolvimento web com Software Livre
 
RIA e Flex - Dando formas à Inovação
RIA e Flex - Dando formas à InovaçãoRIA e Flex - Dando formas à Inovação
RIA e Flex - Dando formas à Inovação
 
APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)
 
Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Java
 
Frameworks de desenvolvimento web
Frameworks de desenvolvimento webFrameworks de desenvolvimento web
Frameworks de desenvolvimento web
 
01 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvem
 
WSO2 - Portfólio de Produtos, Soluções e Suportes
WSO2 - Portfólio de Produtos, Soluções e SuportesWSO2 - Portfólio de Produtos, Soluções e Suportes
WSO2 - Portfólio de Produtos, Soluções e Suportes
 
Arquitetura de Microservicos
Arquitetura de MicroservicosArquitetura de Microservicos
Arquitetura de Microservicos
 
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
 
Think Cloud! - Hands On @ ESTCB 24 Mar 2012
Think Cloud!  - Hands On @ ESTCB 24 Mar 2012Think Cloud!  - Hands On @ ESTCB 24 Mar 2012
Think Cloud! - Hands On @ ESTCB 24 Mar 2012
 
Trabalho de sgbd
Trabalho de sgbdTrabalho de sgbd
Trabalho de sgbd
 
Visão Geral sobre Angular JS
Visão Geral sobre Angular JSVisão Geral sobre Angular JS
Visão Geral sobre Angular JS
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4
 
Melhores práticas para Arquitetura em Cloud Computing
Melhores práticas para Arquitetura em Cloud ComputingMelhores práticas para Arquitetura em Cloud Computing
Melhores práticas para Arquitetura em Cloud Computing
 
5. rodando containers docker na aws
5. rodando containers docker na aws5. rodando containers docker na aws
5. rodando containers docker na aws
 

Mehr von Ryan Padilha

Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelDesign Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Ryan Padilha
 
Orientação a Objetos no Delphi - Controle de Estoque (III)
Orientação a Objetos no Delphi - Controle de Estoque (III)Orientação a Objetos no Delphi - Controle de Estoque (III)
Orientação a Objetos no Delphi - Controle de Estoque (III)
Ryan Padilha
 
Orientação a Objetos no Delphi - Controle de Estoque (II)
Orientação a Objetos no Delphi - Controle de Estoque (II)Orientação a Objetos no Delphi - Controle de Estoque (II)
Orientação a Objetos no Delphi - Controle de Estoque (II)
Ryan Padilha
 
Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)
Ryan Padilha
 

Mehr von Ryan Padilha (10)

Percepções de uma viagem em dois mundos: Java e Python
Percepções de uma viagem em dois mundos:  Java e PythonPercepções de uma viagem em dois mundos:  Java e Python
Percepções de uma viagem em dois mundos: Java e Python
 
Microservices - Arquitetura, Ecossistema e Desafios
Microservices - Arquitetura, Ecossistema e DesafiosMicroservices - Arquitetura, Ecossistema e Desafios
Microservices - Arquitetura, Ecossistema e Desafios
 
Arquitetura monolítica à orientação a serviços
Arquitetura monolítica à orientação a serviçosArquitetura monolítica à orientação a serviços
Arquitetura monolítica à orientação a serviços
 
Startups - O novo paradigma da administração
Startups - O novo paradigma da administraçãoStartups - O novo paradigma da administração
Startups - O novo paradigma da administração
 
Flask e Docker - rumo a AWS!
Flask e Docker - rumo a AWS!Flask e Docker - rumo a AWS!
Flask e Docker - rumo a AWS!
 
Python em Ambientes Distribuídos - Arquitetura Moderna
Python em Ambientes Distribuídos - Arquitetura ModernaPython em Ambientes Distribuídos - Arquitetura Moderna
Python em Ambientes Distribuídos - Arquitetura Moderna
 
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelDesign Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
 
Orientação a Objetos no Delphi - Controle de Estoque (III)
Orientação a Objetos no Delphi - Controle de Estoque (III)Orientação a Objetos no Delphi - Controle de Estoque (III)
Orientação a Objetos no Delphi - Controle de Estoque (III)
 
Orientação a Objetos no Delphi - Controle de Estoque (II)
Orientação a Objetos no Delphi - Controle de Estoque (II)Orientação a Objetos no Delphi - Controle de Estoque (II)
Orientação a Objetos no Delphi - Controle de Estoque (II)
 
Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)
 

Kürzlich hochgeladen

Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
TailsonSantos1
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
PatriciaCaetano18
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
AntonioVieira539017
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
sh5kpmr7w7
 

Kürzlich hochgeladen (20)

Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVAEDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
GÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptxGÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptx
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.ppt
 
LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretação
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 

Plataforma Android: Produtividade Além do SDK

  • 2. Quem sou eu ? @ryanbrunof “Não existe essa coisa de ”sorte”. Existe você ir e correr atrás do que quer!” - House
  • 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. 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
  • 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. 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. Produtividade levada a sério! http://bit.ly/NeaMLP
  • 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. 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. DroidDraw * - Exemplo
  • 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. 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. 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. 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. DroidPersistence • Framework ORM alternativo ao AndOrm. • Project Page: http://code.google.com/p/droidpersistence/
  • 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. 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. 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. Design Pattern Singleton • Padrão que garante a existência de apenas uma instância de determinada classe.
  • 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