SlideShare une entreprise Scribd logo
1  sur  19
Desenvolvimento de Aplicações
Móveis em Java

       Prof. Waldir Ribeiro Pires Jr
  Semana da Informática – PUC Minas SG
           Belo Horizonte, MG
               09/05/2009
Agenda do Seminário
              Quatro Partes
    Introdução ao tema
•
    Desenvolvimento de aplicações em JavaME
•
    Desenvolvimento de aplicações no Google Android
•
    Conclusões finais
•
Agenda
Parte 1
• Sobre o palestrante
• Introdução
    • Classificação e características de
      dispositivos
•   Visão geral
•   Características
•   Dicas de desenvolvimento
•   Plataformas de software
Sobre o Palestrante

• Passado
  – Bacharel em Ciência da Computação pela UFMG (2002)
  – Desenvolvimento de Aplicações Java desde 2000 (JavaSE, JavaEE e
    JavaME)
  – 2004-2006: Siemens/Benq Mobile (Multimídia, JSR 253 e Padronização
    Java)
• Presente
  – Engenheiro de SW JavaEE pelo Synergia-DCC-UFMG
  – Professor assistente da PUC-MG SG no curso de Sistemas de Informação
  – Mestrando em Ciência da Computação pela UFMG (2008)
     • Computação móvel e ubíqua
     • Plataforma Android
Introdução
Objetivos
• Apresentar uma visão geral sobre o desenvolvimento de
  aplicações para dispositivos móveis
  – Classificação e características de dispositivos móveis
  – Desafios associados
  – Dicas de implementação
• Apresentar duas das principais plataformas de
  desenvolvimento de aplicações móveis na linguagem Java
  – JavaME da Sun
  – Android da Google
• Criar aplicações básicas nas duas plataformas acima
Introdução
Classificação de Dispositivos Móveis
• Tamanho
  – Pequeno, médio, grande;
• Tipo
  – Formatos diferentes, tais como o de concha, barra,
    slider, candy bar, etc.;
• Recursos de multimídia
  – Câmera, toques de ligações, MP3, memo de voz, auto falante, etc.;
• Qualidade do display
  – Resolução, cores, nitidez, tecnologia LCD;
• Recursos especiais
  – Aplicativos, navegador Web, gerenciador de informações pessoais;
Introdução
Classificação de Dispositivos Móveis
• Preço
  – Faixas ou segmentos baixo, médio e alto;
• Conectividade de dados
  – Suporte a Bluetooth, infravermelho, serial, USB, modem sem-fio, WiFi;
• Capacidade de armazenamento
  – Tamanho da memória e suporte a cartões de memória adicionais;
• Recursos de telefonia móvel
  – Capacidade do dispositivo de gerenciar ligações móveis (fazer, receber
    ligações, conferência, serviços de rede, etc.).
• Entrada de dados
  – Teclado simples, qwerty, tela sensível ao toque, multi-toque, caneta
Introdução
Características de Dispositivos Móveis
• Capacidade de processamento
   – Modelo do processador, freqüência do clock
   – Pouca capacidade de memória e pouca capacidade de processamento,
     comparando com computadores desktop.
• Fabricantes
   – A padronização é aplicada em alguns casos, em outros não
• Classes de dispositivos
   – Níveis de processamento baixo, médio e alto
• Várias plataformas de desenvolvimento de SW
   – Muitas opções, porém em alguns casos não atendem à requisitos da
     aplicação
   – Curva de aprendizado alta
   – Depende da sua cobertura no mercado
Introdução
Cadeia de Valor para Dispositivos Móveis
Introdução
Sistemas Móveis Embarcados
Visão Geral
Aplicações Móveis
Dispositivos, Redes e Conteúdo
• Dispositivos móveis
  – Crescimento explosivo de dispositivos móveis
     • Celulares, PDAs, notebooks, netbooks, tocadores de mídia, Mps
  – Diferentes recursos de multimídia
     • Tela, captura de imagens, armazenamento, processamento, comunicação
• Redes Móveis
  – Melhores tecnologias dos fabricantes
     • Utilização do espectro eletromegnético, fibra ótica, WLAN
     • Maior largura de banda, melhor cobertura
• Conteúdo
  – Crescimento da mídia digital
  – Mudanças na forma como o conteúdo é produzido
     • Passivo vs. Interativo, centralizado vs. P2P
Aplicações Móveis
Tipos de Aplicações
• Tipos de aplicações
  –   Comunicação via voz
  –   Navegação pela Web (>90% do acesso a internet no Japão)
  –   Acesso a arquivos de mídia
  –   GPS
  –   Jogos
  –   Conectando com pessoas . . .
• O que tem sido desejável em plataformas móveis
  – Eficiente apesar das limitações de memória, computacional e bateria
  – Aberta e expansível, facilmente portável
  – Eficiente no desenvolvimento
       • Boas APIs e ferramentas de desenvolvimento para o desenvolvedor
       • Colaboração e reuso entre desenvolvedores
Características do Desenvolvimento
Desafios
– Pobreza de recursos comparada a PCs
   • Poder de processamento, memória, espaço para armazenamento
   • Ergonomia
– Chance maior de perda de dados
   • Roubo ou furto do dispositivo, segurança dos dados contidos
   • Maior vulnerabilidade a estragos
– Conectividade variável em termos de desempenho e
  confiabilidade
   • Variação da qualidade e largura de banda em redes sem-fio internas e
     externas
   • Interferência nas ondas de rádio
– Bateria limitada
   • Sensível ao consumo de bateria (HW e SW)
Características do Desenvolvimento
Tendências
• Acesso a informações e serviços independente da
  localização
  – Ex: Mobile IP
• Novos serviços oferecidos
  – Serviços antes somente disponíveis em PCs
• Focos em 2009:
      Telas sensíveis ao toque: tecnologias mais amigáveis de interação
  –
      Mobilidade: smartphones
  –
      Conectividade: Disponibilidade de mais de um tipo de rede
  –
      Micro-processamento: energia e processamento
  –
      Computação nas nuvens: aplicações e serviços remotos
  –
• Plataformas de smartphones ocupando o espaço de
  plataformas mais antigas, como o JavaME
  – Symbian (C/C++, Python), Android (Java), IPhone (Objective C) e Windows
    Mobile (C#, Dot Net)
Aplicações Móveis
Dicas de Desenvolvimento
• Não abusar do paradigma da orientação por objetos
  • Método KISS
• Utilizar processamento concorrente para tratamento de UI
  • Evitar a “tela congelada”
• Otimização de código
  • Otimizar o processamento de variáveis, especialmente em iterações
      • A mesma operação em menos iterações
      • Avaliar os tipos de dados usados (byte, short, int)
  • Sempre focar na tentativa de melhorar uma implementação sendo realizada
Aplicações Móveis
Dicas de Desenvolvimento
• Controle de memória
  • Liberação de memória, mesmo em plataformas com coleta de lixo
    automática
       • Atribuir null para variáveis não usadas
• Uso de padrões de projeto para aplicações móveis
  •   Compressão de dados, Proxy e Singleton
  •   Inicialização lenta
  •   Priorização de tarefas: falha parcial e captão oates
  •   Flyweight e Pool de threads
• Executar testes de desempenho no aplicativo
  • Pelo menos via emulador
Desenvolvimento de Aplicações Móveis
Plataformas de Software
• Baseado em Java            • Não Java
  –   Sun JavaME ou JavaSE     – Symbian (C/C++, Python)
  –   SuperWaba                – Windows Mobile (Dot Net
                                 Compact Framework)
  –   Google Android
                               – PalmOS, Pocket PC
  –   RIM Blackberry
                                 (C/C++)
                               – IPhone (Objective C)
                               – BREW (C/C++)
                               – Microbrowser (XHTML)
                               – FlashLite (ActionScript)
Desenvolvimento de Aplicações Móveis
Plataformas de Software
• Plataformas Fechadas
  – Dificuldades de inovação
  – Altas taxas de royalties
  – Custo mais alto para o desenvolvedor e para o usuário
– Plataformas abertas
  – Acesso a detalhes da implementação
  – Possibilidade de inovações
  – Mais barato, mais competitivo, mais tecnologias

Contenu connexe

Similaire à Desenvolvimento de Aplicações Móveis em Java - Parte 1

Desenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em JavaDesenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em JavaWaldir R. Pires Jr
 
"Desmistificando o Java ME" CCT-CEJUG Maio 2008
"Desmistificando o Java ME" CCT-CEJUG Maio 2008"Desmistificando o Java ME" CCT-CEJUG Maio 2008
"Desmistificando o Java ME" CCT-CEJUG Maio 2008Vando Batista
 
Desmistificando o Java Me Cejug Maio2008 Vando
Desmistificando o Java Me Cejug Maio2008 VandoDesmistificando o Java Me Cejug Maio2008 Vando
Desmistificando o Java Me Cejug Maio2008 Vandogueste1a639
 
Introdução ao Windows Azure - Sessão 1 (mais teórica)
Introdução ao Windows Azure - Sessão 1 (mais teórica)Introdução ao Windows Azure - Sessão 1 (mais teórica)
Introdução ao Windows Azure - Sessão 1 (mais teórica)Giovanni Bassi
 
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2Carlos Eugenio Torres
 
Mobile Apps Cross-Platform
Mobile Apps Cross-PlatformMobile Apps Cross-Platform
Mobile Apps Cross-PlatformAdriel Café
 
Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Rodrigo Kono
 
Apresentação de minha Monografia do curso de Sistema e Mídias Digitais
Apresentação de minha Monografia do curso de Sistema e Mídias DigitaisApresentação de minha Monografia do curso de Sistema e Mídias Digitais
Apresentação de minha Monografia do curso de Sistema e Mídias DigitaisÉdipo Souza
 
Introdução a Java Micro Edition (Java ME)
Introdução a Java Micro Edition (Java ME)Introdução a Java Micro Edition (Java ME)
Introdução a Java Micro Edition (Java ME)elliando dias
 
Minicurso de TotalCross e Litebase
Minicurso de TotalCross e LitebaseMinicurso de TotalCross e Litebase
Minicurso de TotalCross e LitebaseNécio de Lima Veras
 
Treinamento Android Nooclix
Treinamento Android NooclixTreinamento Android Nooclix
Treinamento Android NooclixIury Teixeira
 
Tendências e Oportunidades - Robótica
Tendências e Oportunidades - RobóticaTendências e Oportunidades - Robótica
Tendências e Oportunidades - RobóticaLaboratorium
 
Desafios de projeto para quem usa a plataforma Android
Desafios de projeto para quem usa a plataforma AndroidDesafios de projeto para quem usa a plataforma Android
Desafios de projeto para quem usa a plataforma AndroidNatanael Fonseca
 
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha Touch
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha TouchIntrodução ao desenvolvimento de aplicativos com PhoneGap e Sencha Touch
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha TouchLeonardo Soares
 
Windows Phone 7 Camp MICBH + MSPs
Windows Phone 7 Camp MICBH + MSPsWindows Phone 7 Camp MICBH + MSPs
Windows Phone 7 Camp MICBH + MSPsMicrosoft
 
Possibilidades e tecnologias_digitais
Possibilidades e tecnologias_digitaisPossibilidades e tecnologias_digitais
Possibilidades e tecnologias_digitaisHusseyn Alaouieh
 
Impulsionando sua carreira em 2018 com google cloud platform
Impulsionando sua carreira em 2018 com google cloud platformImpulsionando sua carreira em 2018 com google cloud platform
Impulsionando sua carreira em 2018 com google cloud platformDanielle Teixeira
 

Similaire à Desenvolvimento de Aplicações Móveis em Java - Parte 1 (20)

Desenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em JavaDesenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em Java
 
"Desmistificando o Java ME" CCT-CEJUG Maio 2008
"Desmistificando o Java ME" CCT-CEJUG Maio 2008"Desmistificando o Java ME" CCT-CEJUG Maio 2008
"Desmistificando o Java ME" CCT-CEJUG Maio 2008
 
Desmistificando o Java Me Cejug Maio2008 Vando
Desmistificando o Java Me Cejug Maio2008 VandoDesmistificando o Java Me Cejug Maio2008 Vando
Desmistificando o Java Me Cejug Maio2008 Vando
 
O Mundo Wireless
O Mundo WirelessO Mundo Wireless
O Mundo Wireless
 
Introdução ao Windows Azure - Sessão 1 (mais teórica)
Introdução ao Windows Azure - Sessão 1 (mais teórica)Introdução ao Windows Azure - Sessão 1 (mais teórica)
Introdução ao Windows Azure - Sessão 1 (mais teórica)
 
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
 
Mobile Apps Cross-Platform
Mobile Apps Cross-PlatformMobile Apps Cross-Platform
Mobile Apps Cross-Platform
 
Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3
 
Ionic labs
Ionic labsIonic labs
Ionic labs
 
Apresentação de minha Monografia do curso de Sistema e Mídias Digitais
Apresentação de minha Monografia do curso de Sistema e Mídias DigitaisApresentação de minha Monografia do curso de Sistema e Mídias Digitais
Apresentação de minha Monografia do curso de Sistema e Mídias Digitais
 
Introdução a Java Micro Edition (Java ME)
Introdução a Java Micro Edition (Java ME)Introdução a Java Micro Edition (Java ME)
Introdução a Java Micro Edition (Java ME)
 
Minicurso Java Me
Minicurso Java MeMinicurso Java Me
Minicurso Java Me
 
Minicurso de TotalCross e Litebase
Minicurso de TotalCross e LitebaseMinicurso de TotalCross e Litebase
Minicurso de TotalCross e Litebase
 
Treinamento Android Nooclix
Treinamento Android NooclixTreinamento Android Nooclix
Treinamento Android Nooclix
 
Tendências e Oportunidades - Robótica
Tendências e Oportunidades - RobóticaTendências e Oportunidades - Robótica
Tendências e Oportunidades - Robótica
 
Desafios de projeto para quem usa a plataforma Android
Desafios de projeto para quem usa a plataforma AndroidDesafios de projeto para quem usa a plataforma Android
Desafios de projeto para quem usa a plataforma Android
 
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha Touch
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha TouchIntrodução ao desenvolvimento de aplicativos com PhoneGap e Sencha Touch
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha Touch
 
Windows Phone 7 Camp MICBH + MSPs
Windows Phone 7 Camp MICBH + MSPsWindows Phone 7 Camp MICBH + MSPs
Windows Phone 7 Camp MICBH + MSPs
 
Possibilidades e tecnologias_digitais
Possibilidades e tecnologias_digitaisPossibilidades e tecnologias_digitais
Possibilidades e tecnologias_digitais
 
Impulsionando sua carreira em 2018 com google cloud platform
Impulsionando sua carreira em 2018 com google cloud platformImpulsionando sua carreira em 2018 com google cloud platform
Impulsionando sua carreira em 2018 com google cloud platform
 

Plus de Waldir R. Pires Jr

Proposta de Projeto de Pesquisa - CEFET - 2014
Proposta de Projeto de Pesquisa - CEFET - 2014Proposta de Projeto de Pesquisa - CEFET - 2014
Proposta de Projeto de Pesquisa - CEFET - 2014Waldir R. Pires Jr
 
Proposta de projeto de pesquisa UFOP
Proposta de projeto de pesquisa UFOPProposta de projeto de pesquisa UFOP
Proposta de projeto de pesquisa UFOPWaldir R. Pires Jr
 
Proposta de Projeto de Pesquisa - CEFET - 2014
Proposta de Projeto de Pesquisa - CEFET - 2014Proposta de Projeto de Pesquisa - CEFET - 2014
Proposta de Projeto de Pesquisa - CEFET - 2014Waldir R. Pires Jr
 
Droid Emergency Context Service - Msc.
Droid Emergency Context Service - Msc.Droid Emergency Context Service - Msc.
Droid Emergency Context Service - Msc.Waldir R. Pires Jr
 
Droid Guide Prototype - Dresden - Germany
Droid Guide Prototype - Dresden - GermanyDroid Guide Prototype - Dresden - Germany
Droid Guide Prototype - Dresden - GermanyWaldir R. Pires Jr
 
IMS IP multimedia subsystem presentation
IMS IP multimedia subsystem presentationIMS IP multimedia subsystem presentation
IMS IP multimedia subsystem presentationWaldir R. Pires Jr
 
Desenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em JavaDesenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em JavaWaldir R. Pires Jr
 
Desenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em JavaDesenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em JavaWaldir R. Pires Jr
 
Struts Cap10 DepuraçãO E Log
Struts Cap10 DepuraçãO E LogStruts Cap10 DepuraçãO E Log
Struts Cap10 DepuraçãO E LogWaldir R. Pires Jr
 
Desenvolvimento de Aplicações Móveis com JavaME
Desenvolvimento de Aplicações Móveis com JavaMEDesenvolvimento de Aplicações Móveis com JavaME
Desenvolvimento de Aplicações Móveis com JavaMEWaldir R. Pires Jr
 

Plus de Waldir R. Pires Jr (14)

Proposta de Projeto de Pesquisa - CEFET - 2014
Proposta de Projeto de Pesquisa - CEFET - 2014Proposta de Projeto de Pesquisa - CEFET - 2014
Proposta de Projeto de Pesquisa - CEFET - 2014
 
Proposta de projeto de pesquisa UFOP
Proposta de projeto de pesquisa UFOPProposta de projeto de pesquisa UFOP
Proposta de projeto de pesquisa UFOP
 
Proposta de Projeto de Pesquisa - CEFET - 2014
Proposta de Projeto de Pesquisa - CEFET - 2014Proposta de Projeto de Pesquisa - CEFET - 2014
Proposta de Projeto de Pesquisa - CEFET - 2014
 
Droid Emergency Context Service - Msc.
Droid Emergency Context Service - Msc.Droid Emergency Context Service - Msc.
Droid Emergency Context Service - Msc.
 
Droid Guide Prototype - Dresden - Germany
Droid Guide Prototype - Dresden - GermanyDroid Guide Prototype - Dresden - Germany
Droid Guide Prototype - Dresden - Germany
 
Java v1.1
Java v1.1Java v1.1
Java v1.1
 
IMS IP multimedia subsystem presentation
IMS IP multimedia subsystem presentationIMS IP multimedia subsystem presentation
IMS IP multimedia subsystem presentation
 
AED Lab 01 Sab
AED Lab 01 SabAED Lab 01 Sab
AED Lab 01 Sab
 
Android Developers Challenge
Android Developers ChallengeAndroid Developers Challenge
Android Developers Challenge
 
Desenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em JavaDesenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em Java
 
Computação Ubíqua
Computação UbíquaComputação Ubíqua
Computação Ubíqua
 
Desenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em JavaDesenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em Java
 
Struts Cap10 DepuraçãO E Log
Struts Cap10 DepuraçãO E LogStruts Cap10 DepuraçãO E Log
Struts Cap10 DepuraçãO E Log
 
Desenvolvimento de Aplicações Móveis com JavaME
Desenvolvimento de Aplicações Móveis com JavaMEDesenvolvimento de Aplicações Móveis com JavaME
Desenvolvimento de Aplicações Móveis com JavaME
 

Dernier

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfNatalia Granato
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 

Dernier (6)

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

Desenvolvimento de Aplicações Móveis em Java - Parte 1

  • 1. Desenvolvimento de Aplicações Móveis em Java Prof. Waldir Ribeiro Pires Jr Semana da Informática – PUC Minas SG Belo Horizonte, MG 09/05/2009
  • 2. Agenda do Seminário Quatro Partes Introdução ao tema • Desenvolvimento de aplicações em JavaME • Desenvolvimento de aplicações no Google Android • Conclusões finais •
  • 3. Agenda Parte 1 • Sobre o palestrante • Introdução • Classificação e características de dispositivos • Visão geral • Características • Dicas de desenvolvimento • Plataformas de software
  • 4. Sobre o Palestrante • Passado – Bacharel em Ciência da Computação pela UFMG (2002) – Desenvolvimento de Aplicações Java desde 2000 (JavaSE, JavaEE e JavaME) – 2004-2006: Siemens/Benq Mobile (Multimídia, JSR 253 e Padronização Java) • Presente – Engenheiro de SW JavaEE pelo Synergia-DCC-UFMG – Professor assistente da PUC-MG SG no curso de Sistemas de Informação – Mestrando em Ciência da Computação pela UFMG (2008) • Computação móvel e ubíqua • Plataforma Android
  • 5. Introdução Objetivos • Apresentar uma visão geral sobre o desenvolvimento de aplicações para dispositivos móveis – Classificação e características de dispositivos móveis – Desafios associados – Dicas de implementação • Apresentar duas das principais plataformas de desenvolvimento de aplicações móveis na linguagem Java – JavaME da Sun – Android da Google • Criar aplicações básicas nas duas plataformas acima
  • 6. Introdução Classificação de Dispositivos Móveis • Tamanho – Pequeno, médio, grande; • Tipo – Formatos diferentes, tais como o de concha, barra, slider, candy bar, etc.; • Recursos de multimídia – Câmera, toques de ligações, MP3, memo de voz, auto falante, etc.; • Qualidade do display – Resolução, cores, nitidez, tecnologia LCD; • Recursos especiais – Aplicativos, navegador Web, gerenciador de informações pessoais;
  • 7. Introdução Classificação de Dispositivos Móveis • Preço – Faixas ou segmentos baixo, médio e alto; • Conectividade de dados – Suporte a Bluetooth, infravermelho, serial, USB, modem sem-fio, WiFi; • Capacidade de armazenamento – Tamanho da memória e suporte a cartões de memória adicionais; • Recursos de telefonia móvel – Capacidade do dispositivo de gerenciar ligações móveis (fazer, receber ligações, conferência, serviços de rede, etc.). • Entrada de dados – Teclado simples, qwerty, tela sensível ao toque, multi-toque, caneta
  • 8. Introdução Características de Dispositivos Móveis • Capacidade de processamento – Modelo do processador, freqüência do clock – Pouca capacidade de memória e pouca capacidade de processamento, comparando com computadores desktop. • Fabricantes – A padronização é aplicada em alguns casos, em outros não • Classes de dispositivos – Níveis de processamento baixo, médio e alto • Várias plataformas de desenvolvimento de SW – Muitas opções, porém em alguns casos não atendem à requisitos da aplicação – Curva de aprendizado alta – Depende da sua cobertura no mercado
  • 9. Introdução Cadeia de Valor para Dispositivos Móveis
  • 12. Aplicações Móveis Dispositivos, Redes e Conteúdo • Dispositivos móveis – Crescimento explosivo de dispositivos móveis • Celulares, PDAs, notebooks, netbooks, tocadores de mídia, Mps – Diferentes recursos de multimídia • Tela, captura de imagens, armazenamento, processamento, comunicação • Redes Móveis – Melhores tecnologias dos fabricantes • Utilização do espectro eletromegnético, fibra ótica, WLAN • Maior largura de banda, melhor cobertura • Conteúdo – Crescimento da mídia digital – Mudanças na forma como o conteúdo é produzido • Passivo vs. Interativo, centralizado vs. P2P
  • 13. Aplicações Móveis Tipos de Aplicações • Tipos de aplicações – Comunicação via voz – Navegação pela Web (>90% do acesso a internet no Japão) – Acesso a arquivos de mídia – GPS – Jogos – Conectando com pessoas . . . • O que tem sido desejável em plataformas móveis – Eficiente apesar das limitações de memória, computacional e bateria – Aberta e expansível, facilmente portável – Eficiente no desenvolvimento • Boas APIs e ferramentas de desenvolvimento para o desenvolvedor • Colaboração e reuso entre desenvolvedores
  • 14. Características do Desenvolvimento Desafios – Pobreza de recursos comparada a PCs • Poder de processamento, memória, espaço para armazenamento • Ergonomia – Chance maior de perda de dados • Roubo ou furto do dispositivo, segurança dos dados contidos • Maior vulnerabilidade a estragos – Conectividade variável em termos de desempenho e confiabilidade • Variação da qualidade e largura de banda em redes sem-fio internas e externas • Interferência nas ondas de rádio – Bateria limitada • Sensível ao consumo de bateria (HW e SW)
  • 15. Características do Desenvolvimento Tendências • Acesso a informações e serviços independente da localização – Ex: Mobile IP • Novos serviços oferecidos – Serviços antes somente disponíveis em PCs • Focos em 2009: Telas sensíveis ao toque: tecnologias mais amigáveis de interação – Mobilidade: smartphones – Conectividade: Disponibilidade de mais de um tipo de rede – Micro-processamento: energia e processamento – Computação nas nuvens: aplicações e serviços remotos – • Plataformas de smartphones ocupando o espaço de plataformas mais antigas, como o JavaME – Symbian (C/C++, Python), Android (Java), IPhone (Objective C) e Windows Mobile (C#, Dot Net)
  • 16. Aplicações Móveis Dicas de Desenvolvimento • Não abusar do paradigma da orientação por objetos • Método KISS • Utilizar processamento concorrente para tratamento de UI • Evitar a “tela congelada” • Otimização de código • Otimizar o processamento de variáveis, especialmente em iterações • A mesma operação em menos iterações • Avaliar os tipos de dados usados (byte, short, int) • Sempre focar na tentativa de melhorar uma implementação sendo realizada
  • 17. Aplicações Móveis Dicas de Desenvolvimento • Controle de memória • Liberação de memória, mesmo em plataformas com coleta de lixo automática • Atribuir null para variáveis não usadas • Uso de padrões de projeto para aplicações móveis • Compressão de dados, Proxy e Singleton • Inicialização lenta • Priorização de tarefas: falha parcial e captão oates • Flyweight e Pool de threads • Executar testes de desempenho no aplicativo • Pelo menos via emulador
  • 18. Desenvolvimento de Aplicações Móveis Plataformas de Software • Baseado em Java • Não Java – Sun JavaME ou JavaSE – Symbian (C/C++, Python) – SuperWaba – Windows Mobile (Dot Net Compact Framework) – Google Android – PalmOS, Pocket PC – RIM Blackberry (C/C++) – IPhone (Objective C) – BREW (C/C++) – Microbrowser (XHTML) – FlashLite (ActionScript)
  • 19. Desenvolvimento de Aplicações Móveis Plataformas de Software • Plataformas Fechadas – Dificuldades de inovação – Altas taxas de royalties – Custo mais alto para o desenvolvedor e para o usuário – Plataformas abertas – Acesso a detalhes da implementação – Possibilidade de inovações – Mais barato, mais competitivo, mais tecnologias