SlideShare uma empresa Scribd logo
@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

Mais conteúdo relacionado

Mais procurados

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 + CDN
Gustavo Bellini Bigardi
 
Apresentação Drupal como LMS
Apresentação Drupal como LMSApresentação Drupal como LMS
Apresentação Drupal como LMS
Frederico Schillings Ferrer
 
Microservices com ASP.NET 5
Microservices com ASP.NET 5Microservices com ASP.NET 5
Microservices com ASP.NET 5
Waldyr 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 trincheiras
José 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ço
Elton 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 II
Mauricio 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.NET
Eduardo 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 edted
brunoaalves
 
GUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EEGUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EE
Rodrigo Cândido da Silva
 
Microservices
MicroservicesMicroservices
Microservices
Renato Groff
 
Novidades do ASP.NET 5.X
Novidades do ASP.NET 5.XNovidades do ASP.NET 5.X
Novidades do ASP.NET 5.X
Eduardo 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 SignalR
Eduardo Pires
 
Entity Framework 7
Entity Framework 7Entity Framework 7
Entity Framework 7
Ricardo Peres
 
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
Gabriel 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 microservices
Fábio Rosato
 
Workshop - Business Process Management
Workshop - Business Process ManagementWorkshop - Business Process Management
Workshop - Business Process Management
Thiago Pereira
 
GUJavaSC - Unit Testing com Java EE
GUJavaSC - Unit Testing com Java EEGUJavaSC - Unit Testing com Java EE
GUJavaSC - Unit Testing com Java EE
Rodrigo Cândido da Silva
 
O Futuro do ASP.NET
O Futuro do ASP.NETO Futuro do ASP.NET
O Futuro do ASP.NET
Eduardo Pires
 

Mais procurados (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
 

Semelhante a 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 2011
Flávio Lisboa
 
Desenvolvimento web com Software Livre
Desenvolvimento web com Software LivreDesenvolvimento web com Software Livre
Desenvolvimento web com Software Livre
Ruan Carvalho
 
Desenvolvimento web com software livre
Desenvolvimento web com software livreDesenvolvimento web com software livre
Desenvolvimento web com software livre
Ruan 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ção
Leonardo 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 Java
limadavi
 
Frameworks de desenvolvimento web
Frameworks de desenvolvimento webFrameworks de desenvolvimento web
Frameworks de desenvolvimento web
Arlindo 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.1
Cé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 nuvem
Rodrigo 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 Suportes
Edgar Silva
 
Arquitetura de Microservicos
Arquitetura de MicroservicosArquitetura de Microservicos
Arquitetura de Microservicos
Norberto 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 2021
Renato 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
 
Introdução à Programação “para Web” de Carlos Bazilio
Introdução à Programação “para Web” de Carlos BazilioIntrodução à Programação “para Web” de Carlos Bazilio
Introdução à Programação “para Web” de Carlos Bazilio
RicardoKratz2
 
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
Rodolfo 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 2012
sandrobmartins
 
Trabalho de sgbd
Trabalho de sgbdTrabalho de sgbd
Trabalho de sgbd
Junior Cesar
 
Visão Geral sobre Angular JS
Visão Geral sobre Angular JSVisão Geral sobre Angular JS
Visão Geral sobre Angular JS
Leonardo Melo Moreira
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4
Rodrigo 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 Computing
Daniel Checchia
 

Semelhante a 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.
 
Introdução à Programação “para Web” de Carlos Bazilio
Introdução à Programação “para Web” de Carlos BazilioIntrodução à Programação “para Web” de Carlos Bazilio
Introdução à Programação “para Web” de Carlos Bazilio
 
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
 

Mais 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 Python
Ryan Padilha
 
Microservices - Arquitetura, Ecossistema e Desafios
Microservices - Arquitetura, Ecossistema e DesafiosMicroservices - Arquitetura, Ecossistema e Desafios
Microservices - Arquitetura, Ecossistema e Desafios
Ryan 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ços
Ryan 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ção
Ryan 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 Moderna
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
 

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

Último

Vivendo a Arquitetura Salesforce - 02.pptx
Vivendo a Arquitetura Salesforce - 02.pptxVivendo a Arquitetura Salesforce - 02.pptx
Vivendo a Arquitetura Salesforce - 02.pptx
Mauricio Alexandre Silva
 
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptxPP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
Resumo de Química 10º ano Estudo exames nacionais
Resumo de Química 10º ano Estudo exames nacionaisResumo de Química 10º ano Estudo exames nacionais
Resumo de Química 10º ano Estudo exames nacionais
beatrizsilva525654
 
FUNCAO EQUAÇÃO DO 2° GRAU SLIDES AULA 1.ppt
FUNCAO EQUAÇÃO DO 2° GRAU SLIDES AULA 1.pptFUNCAO EQUAÇÃO DO 2° GRAU SLIDES AULA 1.ppt
FUNCAO EQUAÇÃO DO 2° GRAU SLIDES AULA 1.ppt
MarceloMonteiro213738
 
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
Manuais Formação
 
Exercicios de Word Básico para a aulas de informatica Basica
Exercicios de Word Básico para a aulas de informatica BasicaExercicios de Word Básico para a aulas de informatica Basica
Exercicios de Word Básico para a aulas de informatica Basica
ElinarioCosta
 
Slides Lição 12, Betel, Ordenança para amar o próximo, 2Tr24.pptx
Slides Lição 12, Betel, Ordenança para amar o próximo, 2Tr24.pptxSlides Lição 12, Betel, Ordenança para amar o próximo, 2Tr24.pptx
Slides Lição 12, Betel, Ordenança para amar o próximo, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
Cartinhas de solidariedade e esperança.pptx
Cartinhas de solidariedade e esperança.pptxCartinhas de solidariedade e esperança.pptx
Cartinhas de solidariedade e esperança.pptx
Zenir Carmen Bez Trombeta
 
TUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
TUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGTUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
TUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
ProfessoraTatianaT
 
O Profeta Jeremias - A Biografia de Jeremias.pptx4
O Profeta Jeremias - A Biografia de Jeremias.pptx4O Profeta Jeremias - A Biografia de Jeremias.pptx4
O Profeta Jeremias - A Biografia de Jeremias.pptx4
DouglasMoraes54
 
Slides Lição 12, Central Gospel, O Milênio, 1Tr24, Pr Henrique.pptx
Slides Lição 12, Central Gospel, O Milênio, 1Tr24, Pr Henrique.pptxSlides Lição 12, Central Gospel, O Milênio, 1Tr24, Pr Henrique.pptx
Slides Lição 12, Central Gospel, O Milênio, 1Tr24, Pr Henrique.pptx
LuizHenriquedeAlmeid6
 
Atpcg PEI Rev Irineu GESTÃO DE SALA DE AULA.pptx
Atpcg PEI Rev Irineu GESTÃO DE SALA DE AULA.pptxAtpcg PEI Rev Irineu GESTÃO DE SALA DE AULA.pptx
Atpcg PEI Rev Irineu GESTÃO DE SALA DE AULA.pptx
joaresmonte3
 
-Rudolf-Laban-e-a-teoria-do-movimento.ppt
-Rudolf-Laban-e-a-teoria-do-movimento.ppt-Rudolf-Laban-e-a-teoria-do-movimento.ppt
-Rudolf-Laban-e-a-teoria-do-movimento.ppt
fagnerlopes11
 
Como montar o mapa conceitual editado.pdf
Como montar o mapa conceitual editado.pdfComo montar o mapa conceitual editado.pdf
Como montar o mapa conceitual editado.pdf
AlineOliveira625820
 
Psicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptx
Psicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptxPsicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptx
Psicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptx
TiagoLouro8
 
TREINAMENTO DE BRIGADA DE INCENDIO BRIGADA CCB 2023.pptx
TREINAMENTO DE BRIGADA DE INCENDIO BRIGADA CCB 2023.pptxTREINAMENTO DE BRIGADA DE INCENDIO BRIGADA CCB 2023.pptx
TREINAMENTO DE BRIGADA DE INCENDIO BRIGADA CCB 2023.pptx
erssstcontato
 
Aula04A-Potencia em CA eletricidade USP.pdf
Aula04A-Potencia em CA eletricidade USP.pdfAula04A-Potencia em CA eletricidade USP.pdf
Aula04A-Potencia em CA eletricidade USP.pdf
vitorreissouzasilva
 
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
Eró Cunha
 
UFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdf
UFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdfUFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdf
UFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdf
Manuais Formação
 
ATIVIDADES de alfabetização do mês de junho
ATIVIDADES de alfabetização do mês de junhoATIVIDADES de alfabetização do mês de junho
ATIVIDADES de alfabetização do mês de junho
Crisnaiara
 

Último (20)

Vivendo a Arquitetura Salesforce - 02.pptx
Vivendo a Arquitetura Salesforce - 02.pptxVivendo a Arquitetura Salesforce - 02.pptx
Vivendo a Arquitetura Salesforce - 02.pptx
 
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptxPP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
 
Resumo de Química 10º ano Estudo exames nacionais
Resumo de Química 10º ano Estudo exames nacionaisResumo de Química 10º ano Estudo exames nacionais
Resumo de Química 10º ano Estudo exames nacionais
 
FUNCAO EQUAÇÃO DO 2° GRAU SLIDES AULA 1.ppt
FUNCAO EQUAÇÃO DO 2° GRAU SLIDES AULA 1.pptFUNCAO EQUAÇÃO DO 2° GRAU SLIDES AULA 1.ppt
FUNCAO EQUAÇÃO DO 2° GRAU SLIDES AULA 1.ppt
 
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
 
Exercicios de Word Básico para a aulas de informatica Basica
Exercicios de Word Básico para a aulas de informatica BasicaExercicios de Word Básico para a aulas de informatica Basica
Exercicios de Word Básico para a aulas de informatica Basica
 
Slides Lição 12, Betel, Ordenança para amar o próximo, 2Tr24.pptx
Slides Lição 12, Betel, Ordenança para amar o próximo, 2Tr24.pptxSlides Lição 12, Betel, Ordenança para amar o próximo, 2Tr24.pptx
Slides Lição 12, Betel, Ordenança para amar o próximo, 2Tr24.pptx
 
Cartinhas de solidariedade e esperança.pptx
Cartinhas de solidariedade e esperança.pptxCartinhas de solidariedade e esperança.pptx
Cartinhas de solidariedade e esperança.pptx
 
TUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
TUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGTUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
TUTORIAL PARA LANÇAMENTOGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
 
O Profeta Jeremias - A Biografia de Jeremias.pptx4
O Profeta Jeremias - A Biografia de Jeremias.pptx4O Profeta Jeremias - A Biografia de Jeremias.pptx4
O Profeta Jeremias - A Biografia de Jeremias.pptx4
 
Slides Lição 12, Central Gospel, O Milênio, 1Tr24, Pr Henrique.pptx
Slides Lição 12, Central Gospel, O Milênio, 1Tr24, Pr Henrique.pptxSlides Lição 12, Central Gospel, O Milênio, 1Tr24, Pr Henrique.pptx
Slides Lição 12, Central Gospel, O Milênio, 1Tr24, Pr Henrique.pptx
 
Atpcg PEI Rev Irineu GESTÃO DE SALA DE AULA.pptx
Atpcg PEI Rev Irineu GESTÃO DE SALA DE AULA.pptxAtpcg PEI Rev Irineu GESTÃO DE SALA DE AULA.pptx
Atpcg PEI Rev Irineu GESTÃO DE SALA DE AULA.pptx
 
-Rudolf-Laban-e-a-teoria-do-movimento.ppt
-Rudolf-Laban-e-a-teoria-do-movimento.ppt-Rudolf-Laban-e-a-teoria-do-movimento.ppt
-Rudolf-Laban-e-a-teoria-do-movimento.ppt
 
Como montar o mapa conceitual editado.pdf
Como montar o mapa conceitual editado.pdfComo montar o mapa conceitual editado.pdf
Como montar o mapa conceitual editado.pdf
 
Psicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptx
Psicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptxPsicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptx
Psicologia e Sociologia - Módulo 2 – Sociedade e indivíduo.pptx
 
TREINAMENTO DE BRIGADA DE INCENDIO BRIGADA CCB 2023.pptx
TREINAMENTO DE BRIGADA DE INCENDIO BRIGADA CCB 2023.pptxTREINAMENTO DE BRIGADA DE INCENDIO BRIGADA CCB 2023.pptx
TREINAMENTO DE BRIGADA DE INCENDIO BRIGADA CCB 2023.pptx
 
Aula04A-Potencia em CA eletricidade USP.pdf
Aula04A-Potencia em CA eletricidade USP.pdfAula04A-Potencia em CA eletricidade USP.pdf
Aula04A-Potencia em CA eletricidade USP.pdf
 
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...REGULAMENTO  DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
REGULAMENTO DO CONCURSO DESENHOS AFRO/2024 - 14ª edição - CEIRI /UREI (ficha...
 
UFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdf
UFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdfUFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdf
UFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdf
 
ATIVIDADES de alfabetização do mês de junho
ATIVIDADES de alfabetização do mês de junhoATIVIDADES de alfabetização do mês de junho
ATIVIDADES de alfabetização do mês de junho
 

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