SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
@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

Contenu connexe

Tendances

Curso Java Web (JAVA, JSF, JPA)
Curso Java Web (JAVA, JSF, JPA)Curso Java Web (JAVA, JSF, JPA)
Curso Java Web (JAVA, JSF, JPA)Marcos Batista
 
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 + CDNGustavo Bellini Bigardi
 
Microservices com ASP.NET 5
Microservices com ASP.NET 5Microservices com ASP.NET 5
Microservices com ASP.NET 5Waldyr Felix
 
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 trincheirasJosé Roberto Araújo
 
Do monolito ao micro serviço
Do monolito ao micro serviçoDo monolito ao micro serviço
Do monolito ao micro serviçoElton Minetto
 
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 IIMauricio Fernandes de Castro
 
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.NETEduardo Pires
 
Memórias das trincheiras (parte 2)
Memórias das trincheiras (parte 2)Memórias das trincheiras (parte 2)
Memórias das trincheiras (parte 2)Elton Minetto
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edtedbrunoaalves
 
Novidades do ASP.NET 5.X
Novidades do ASP.NET 5.XNovidades do ASP.NET 5.X
Novidades do ASP.NET 5.XEduardo Pires
 
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 SignalREduardo Pires
 
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/2019Gabriel Rodrigues Couto
 
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 microservicesFábio Rosato
 
Workshop - Business Process Management
Workshop - Business Process ManagementWorkshop - Business Process Management
Workshop - Business Process ManagementThiago Pereira
 

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

Similaire à Plataforma Android: Produtividade Além do SDK

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 2011Flávio Lisboa
 
Desenvolvimento web com software livre
Desenvolvimento web com software livreDesenvolvimento web com software livre
Desenvolvimento web com software livreRuan Carvalho
 
Desenvolvimento web com Software Livre
Desenvolvimento web com Software LivreDesenvolvimento web com Software Livre
Desenvolvimento web com Software LivreRuan Carvalho
 
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çãoLeonardo Braga
 
APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)Walanem Figueiredo
 
Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Javalimadavi
 
Frameworks de desenvolvimento web
Frameworks de desenvolvimento webFrameworks de desenvolvimento web
Frameworks de desenvolvimento webArlindo Santos
 
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.1César Augusto Pessôa
 
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 nuvemRodrigo Valerio
 
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 SuportesEdgar Silva
 
Arquitetura de Microservicos
Arquitetura de MicroservicosArquitetura de Microservicos
Arquitetura de MicroservicosNorberto Enomoto
 
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 2021Renato Groffe
 
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.Valmir Justo
 
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 CarlosRodolfo Fadino Junior
 
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 2012sandrobmartins
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Rodrigo Kono
 
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 ComputingDaniel Checchia
 

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

Plus de Ryan Padilha

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 PythonRyan Padilha
 
Microservices - Arquitetura, Ecossistema e Desafios
Microservices - Arquitetura, Ecossistema e DesafiosMicroservices - Arquitetura, Ecossistema e Desafios
Microservices - Arquitetura, Ecossistema e DesafiosRyan Padilha
 
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çosRyan Padilha
 
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çãoRyan Padilha
 
Flask e Docker - rumo a AWS!
Flask e Docker - rumo a AWS!Flask e Docker - rumo a AWS!
Flask e Docker - rumo a AWS!Ryan Padilha
 
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 ModernaRyan 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ívelRyan 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
 

Plus de 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)
 

Dernier

Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
migração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenosmigração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenosLucianoPrado15
 
O PLANETA TERRA E SEU SATÉLITE NATURAL - LUA
O PLANETA TERRA E SEU SATÉLITE NATURAL - LUAO PLANETA TERRA E SEU SATÉLITE NATURAL - LUA
O PLANETA TERRA E SEU SATÉLITE NATURAL - LUAJulianeMelo17
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxFlviaGomes64
 
Projeto de Extensão - DESENVOLVIMENTO BACK-END.pdf
Projeto de Extensão - DESENVOLVIMENTO BACK-END.pdfProjeto de Extensão - DESENVOLVIMENTO BACK-END.pdf
Projeto de Extensão - DESENVOLVIMENTO BACK-END.pdfHELENO FAVACHO
 
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
 
Aula 03 - Filogenia14+4134684516498481.pptx
Aula 03 - Filogenia14+4134684516498481.pptxAula 03 - Filogenia14+4134684516498481.pptx
Aula 03 - Filogenia14+4134684516498481.pptxandrenespoli3
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdfmarlene54545
 
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.pptxLuizHenriquedeAlmeid6
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxMarcosLemes28
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeitotatianehilda
 
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.pptxAntonioVieira539017
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTailsonSantos1
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasSocorro Machado
 
Araribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medioAraribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medioDomingasMariaRomao
 
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 AGRONOMIAAGRONOMIAHELENO FAVACHO
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...HELENO FAVACHO
 
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVAEDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVAssuser2ad38b
 
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffSSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffNarlaAquino
 

Dernier (20)

Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
migração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenosmigração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenos
 
O PLANETA TERRA E SEU SATÉLITE NATURAL - LUA
O PLANETA TERRA E SEU SATÉLITE NATURAL - LUAO PLANETA TERRA E SEU SATÉLITE NATURAL - LUA
O PLANETA TERRA E SEU SATÉLITE NATURAL - LUA
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
Projeto de Extensão - DESENVOLVIMENTO BACK-END.pdf
Projeto de Extensão - DESENVOLVIMENTO BACK-END.pdfProjeto de Extensão - DESENVOLVIMENTO BACK-END.pdf
Projeto de Extensão - DESENVOLVIMENTO BACK-END.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...
 
Aula 03 - Filogenia14+4134684516498481.pptx
Aula 03 - Filogenia14+4134684516498481.pptxAula 03 - Filogenia14+4134684516498481.pptx
Aula 03 - Filogenia14+4134684516498481.pptx
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
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
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
 
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
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
 
Araribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medioAraribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medio
 
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
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVAEDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
 
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffSSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
 

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