Módulo I - Introdução




                                                      Aula 2


Carlos Eugênio Torres            Faculdade Christus
Engenheiro de Informática   Sistemas de Informação
http://cetorres.com                      17/09/2010
   Graduado em Ciência da Computação pela UFC,
    Brasil (2004);
   Graduado em Engenharia Informática e de
    Computadores pelo IST, Portugal (2005);
   Mais de 10 anos de experiência com
    desenvolvimento móvel, inclusive internacional,
    na Vodafone Telecom, Portugal;
   MBA em Gestão de Projetos pela FGV, Brasil (em
    andamento);
   Fundador da Cacira Tecnologia, empresa
    especializada em soluções para as plataformas
    web e móvel (http://cacira.com.br).
   Módulo I - Introdução
     Dia 03/09
       ▪   Conceito de Mobilidade;
       ▪   História da computação móvel;
       ▪   Utilidade das aplicações móveis;
       ▪   Desafios;
       ▪   Necessidades do mercado;
     Dia 17/09
       ▪   Características técnicas dos dispositivos móveis;
       ▪   Principais plataformas de desenvolvimento;
       ▪   Plataformas mais indicadas para cada solução;
       ▪   Aplicações móveis e a internet;
     Dia 24/09
       ▪ Prática: Montagem de um ambiente de programação em uma plataforma de
         desenvolvimento móvel;
     Dia 01/10
       ▪ Prática: Desenvolvimento de um mini-projeto de aplicação móvel.
   Quando pensamos em desenvolver para
    dispositivos móveis, temos que ter em mente
    suas principais características técnicas para
    nos ajudar a direcionar o desenvolvimento.
   Em termos de smartphones, as principais são:
    tamanho e resolução da tela, capacidade de
    memória e processamento, métodos de
    entrada de dados e conectividade.
   TAMANHO E RESOLUÇÃO DA TELA
     O dispositivos móveis atuais têm cada vez mais
      vindo com telas grandes e com alta resolução.
     O iPhone 4, por exemplo, tem um display de 3,5
      polegadas com uma resolução de espantosos
      960x640 pixels.
     Mas nem todos os dispositivos tem as
      capacidades e temos que desenvolver
      pensando em vários tamanhos e
      resoluções
   TAMANHO E RESOLUÇÃO DA TELA
        Nossa aplicação móvel deve estar preparada para
           se adaptar automaticamente ou devem ser feitas
           versões diferentes para cada tamanho específico.




Blackberry Bold 9000   Apple iPhone 4   Android Nexus One   Motorola Milestone   Symbol MC50   HTC s710
      2,6 pol.            3,5 pol.            3,7 pol            3,7 pol            3,0 pol     2,4 pol
     480 x 320           640 x 960          480 x 800           480 x 854          240 x 320   240 x 320
   MEMÓRIA E PROCESSAMENTO
     Nossa aplicação móvel deve preocupar-se com a
     capacidade de memória e processamento do
     dispositivo em que irá ser executada. Geralmente
     essa capacidade é limitada e devemos construir
     um código na programação bastante leve e
     eficiente, que não sobrecarregue os recursos do
     dispositivo e possa, ao mesmo tempo, tirar o
     máximo de proveito do equipamento.
   MEMÓRIA E PROCESSAMENTO
     As principais configurações encontradas
     atualmente no mercado para essa característica:
Processador   Memória RAM   Memória ROM   Armazenamento
~ 350 Mhz     256 MB        512 MB        Externo <= 4 GB
~ 500 Mhz     512 MB        512 MB        Exerno <= 16 GB
~ 1 Ghz       512 MB        512 MB        Interno / Externo <= 32 GB
   MÉTODOS DE ENTRADA DE DADOS
     São as formas com que o usuário irá entrar com
      dados nos dispositivos para alimentar a nossa
      aplicação.
     Podem ser: teclado (virtual ou físico), câmera,
      microfone, sensores de aceleração, luminosidade
      e proximidade, tela sensível ao toque, botões de
      acesso e cabos de dados.
   MÉTODOS DE ENTRADA DE DADOS
     Quando estamos projetando nossa aplicação,
      temos que planejar que métodos de entrada
      iremos utilizar para obter dados do usuário.
     Para cada método, existem funções nas
      frameworks de desenvolvimento diferentes para
      se poder acessar a entrada do usuário. Seja a API
      da câmera, dos sensores, o interpretador de voz
      através do microfone, os botões etc.
   CONECTIVIDADE
     As formas de comunicação e conexão com o mundo
      exterior ao dispositivo móvel hoje em dia é a principal
      característica a se analisar.
     As formas mais freqüentes atualmente são:
      ▪   GSM (telefonia móvel)
      ▪   Redes sem fio (WiFi)
      ▪   Dados móveis (3G, Edge, GPRS)
      ▪   Bluetooth
      ▪   GPS e a-GPS
      ▪   USB (cabo de dados)
   CONECTIVIDADE
     Ao se desenvolver uma aplicação móvel, deve-se
      saber de que formas ela irá se comunicar com o
      meio externo para realizar trocas de arquivos,
      atualizações de banco de dados locais e remotos,
      solicitações de informações a serviços online.
     A partir daí, a programação irá utilizar a API
      correta para cada tipo de conexão, realizando a
      comunicação com sucesso.
   Atualmente, as plataformas ou frameworks mais
    utilizadas no desenvolvimento de aplicações
    móveis são:
       Oracle Java ME;
       Microsoft Windows Mobile;
       Google Android;
       Apple iOS;
       Nokia Symbian OS;
       Palm WebOS;
       Outras plataformas proprietárias.
   Oracle Java ME
     Linguagem: Java;
     Bastante difundida dentre os celulares para jogos e
      aplicações de utilidades;
     A Java Micro Edition divide-se em:
      ▪ CLDC: Connected Limited Devices Configuration
      ▪ MIDP: Mobile Information Device Profile
      ▪ CDC: Connected Devices Configuration
     IDE: Eclipse e Netbeans
     SDK:
      ▪ http://www.oracle.com/technetwork/java/javame/overview/index.html
   Oracle Java ME - Arquitetura
   Microsoft Windows Mobile
     Linguagem:
      ▪ .NET Compact Framework C# e VB.NET;
     Bastante difundida dentre as aplicações corporativas
      pela sua produtividade e integração com outros
      produtos Microsoft;
     Pequena curva de aprendizagem para quem já
      conhece .NET Framework;
     IDE: Visual Studio .NET
     SDK:
      ▪ http://msdn.microsoft.com/en-us/netframework/aa497273.aspx
   Microsoft .NET Compact Framework -
    Arquitetura
   Google Android
     Linguagem: Java, Web;
     Criada pela Google para smartphones;
     Muitas funcionalidades na API;
     Possui loja de venda de aplicações. Desenvolvedor
      paga anuidade para vender na loja;
     Pequena curva de aprendizagem para quem já
      conhece Java;
     IDE: Eclipse
     SDK:
        ▪ http://developer.android.com/sdk/index.html
   Google Android - Arquitetura
   Apple iOS
     Linguagem: Objective-C, Web;
     Exclusivo para iPhone, iPod Touch e iPad;
     Muitas funcionalidades na API, mas a aplicação fica
        presa numa “sandbox” quando instalada;
       Possui loja de venda de aplicações. Desenvolvedor
        paga anuidade para vender na loja;
       Grande curva de aprendizado na linguagem
        Objective-C, por ser pouco difundida;
       IDE: Xcode (apenas Mac OS X);
       SDK:
        ▪ http://developer.apple.com/devcenter/ios/index.action
   Apple iOS - Arquitetura
   Nokia Symbian OS
     Linguagem: C++, Qt, Web;
     Principalmente encontrado em smartphones
      Nokia;
     Curva de aprendizado média na linguagem C++
      com uso de Qt (plataforma para criação de UI) ;
     IDE: Fornecida pela fabricante;
     SDK:
      ▪ https://developer-secure.symbian.org/main/tools_and_kits/index.php
   Nokia Symbian OS - Arquitetura
   Palm WebOS
     Linguagem: Web, C++;
     Somente encontrado em smartphones Palm;
     Rápido e bonito, mas com poucos usuários e
      aplicações até o momento;
     Destaque para desenvolvimento em plataforma Web
      encorajado pelo próprio SDK;
     IDE: Eclipse;
     SDK:
      ▪ http://developer.palm.com/index.php?option=com_content&view=article&layo
        ut=page&id=1788
   Palm WebOS - Arquitetura
   Cada solução móvel exige uma análise
    detalhada de todos os requisitos que devem
    ser implementados na aplicação;
   De acordo com o objetivo principal da
    solução, um dispositivo móvel e uma
    plataforma são indicados como os melhores,
    que contém as melhores funcionalidades,
    facilidade e produtividade necessárias para
    alcançar o objetivo com eficiência e eficácia.
   Case 1: Aplicação móvel para o Censo 2010 do IBGE
     Irá exigir uso diário e contínuo durante grande número de
        horas;
       Uso externo, sujeito ao tempo, poeira, quedas;
       Boa capacidade de memória;
       Recursos de comunicação móvel, 3G e Edge;
       Recursos de GPS para localização global;
       Grande número de dispositivos em operação;
       Sincronização com sistema central;
       Facilidade de instalação e manutenção;
       Capacidade de produtividade no desenvolvimento.
   Case 2: Aplicação para gestão móvel de ERP
     Será utilizado apenas pelos executivos da
        empresa;
       Exige visual arrojado e fácil usabilidade;
       Comunicação móvel, 3G, WiFi;
       Sincronização apenas sem fio;
       Poucos dispositivos em operação;
       Reconhecimento de voz para autenticação;
   Case 1: Aplicação móvel para o Censo 2010 do
    IBGE – Solução
     Dispositivo indicado: Coletor Symbol MC50
     Plataforma: Windows Mobile
     .NET Compact Framework
   Case 2: Aplicação para gestão móvel de ERP -
    Solução
     Dispositivo indicado: iPhone 4
     Plataforma: Apple iOS
   Umas das formas de comunicação
    que podem ser usadas pelas
    aplicações móveis é através da
    internet;
   Utiliza meios de ligações sem fio como 3G,
    Edge, GPRS ou WiFi;
   Solicita e envia informações a serviços web,
    e-mail IMAP, RSS feeds, API remotas a fim de
    buscar integração com variados sistemas
    online.
   Todas as plataformas disponibilizam
     API para comunicação com os
    protocolos disponíveis na internet;
   Integrações mais comuns:
       Redes sociais (Twitter, Facebook etc);
       RSS feeds e blogs;
       Mapas online;
       Meteorologia
       Notícias (economia, esportes, política etc).
   Exemplo
Próxima aula




Montagem de ambiente da plataforma Google Android
FIM
dúvidas?

Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2

  • 1.
    Módulo I -Introdução Aula 2 Carlos Eugênio Torres Faculdade Christus Engenheiro de Informática Sistemas de Informação http://cetorres.com 17/09/2010
  • 2.
    Graduado em Ciência da Computação pela UFC, Brasil (2004);  Graduado em Engenharia Informática e de Computadores pelo IST, Portugal (2005);  Mais de 10 anos de experiência com desenvolvimento móvel, inclusive internacional, na Vodafone Telecom, Portugal;  MBA em Gestão de Projetos pela FGV, Brasil (em andamento);  Fundador da Cacira Tecnologia, empresa especializada em soluções para as plataformas web e móvel (http://cacira.com.br).
  • 3.
    Módulo I - Introdução  Dia 03/09 ▪ Conceito de Mobilidade; ▪ História da computação móvel; ▪ Utilidade das aplicações móveis; ▪ Desafios; ▪ Necessidades do mercado;  Dia 17/09 ▪ Características técnicas dos dispositivos móveis; ▪ Principais plataformas de desenvolvimento; ▪ Plataformas mais indicadas para cada solução; ▪ Aplicações móveis e a internet;  Dia 24/09 ▪ Prática: Montagem de um ambiente de programação em uma plataforma de desenvolvimento móvel;  Dia 01/10 ▪ Prática: Desenvolvimento de um mini-projeto de aplicação móvel.
  • 4.
    Quando pensamos em desenvolver para dispositivos móveis, temos que ter em mente suas principais características técnicas para nos ajudar a direcionar o desenvolvimento.  Em termos de smartphones, as principais são: tamanho e resolução da tela, capacidade de memória e processamento, métodos de entrada de dados e conectividade.
  • 5.
    TAMANHO E RESOLUÇÃO DA TELA  O dispositivos móveis atuais têm cada vez mais vindo com telas grandes e com alta resolução.  O iPhone 4, por exemplo, tem um display de 3,5 polegadas com uma resolução de espantosos 960x640 pixels.  Mas nem todos os dispositivos tem as capacidades e temos que desenvolver pensando em vários tamanhos e resoluções
  • 6.
    TAMANHO E RESOLUÇÃO DA TELA  Nossa aplicação móvel deve estar preparada para se adaptar automaticamente ou devem ser feitas versões diferentes para cada tamanho específico. Blackberry Bold 9000 Apple iPhone 4 Android Nexus One Motorola Milestone Symbol MC50 HTC s710 2,6 pol. 3,5 pol. 3,7 pol 3,7 pol 3,0 pol 2,4 pol 480 x 320 640 x 960 480 x 800 480 x 854 240 x 320 240 x 320
  • 7.
    MEMÓRIA E PROCESSAMENTO  Nossa aplicação móvel deve preocupar-se com a capacidade de memória e processamento do dispositivo em que irá ser executada. Geralmente essa capacidade é limitada e devemos construir um código na programação bastante leve e eficiente, que não sobrecarregue os recursos do dispositivo e possa, ao mesmo tempo, tirar o máximo de proveito do equipamento.
  • 8.
    MEMÓRIA E PROCESSAMENTO  As principais configurações encontradas atualmente no mercado para essa característica: Processador Memória RAM Memória ROM Armazenamento ~ 350 Mhz 256 MB 512 MB Externo <= 4 GB ~ 500 Mhz 512 MB 512 MB Exerno <= 16 GB ~ 1 Ghz 512 MB 512 MB Interno / Externo <= 32 GB
  • 9.
    MÉTODOS DE ENTRADA DE DADOS  São as formas com que o usuário irá entrar com dados nos dispositivos para alimentar a nossa aplicação.  Podem ser: teclado (virtual ou físico), câmera, microfone, sensores de aceleração, luminosidade e proximidade, tela sensível ao toque, botões de acesso e cabos de dados.
  • 10.
    MÉTODOS DE ENTRADA DE DADOS  Quando estamos projetando nossa aplicação, temos que planejar que métodos de entrada iremos utilizar para obter dados do usuário.  Para cada método, existem funções nas frameworks de desenvolvimento diferentes para se poder acessar a entrada do usuário. Seja a API da câmera, dos sensores, o interpretador de voz através do microfone, os botões etc.
  • 11.
    CONECTIVIDADE  As formas de comunicação e conexão com o mundo exterior ao dispositivo móvel hoje em dia é a principal característica a se analisar.  As formas mais freqüentes atualmente são: ▪ GSM (telefonia móvel) ▪ Redes sem fio (WiFi) ▪ Dados móveis (3G, Edge, GPRS) ▪ Bluetooth ▪ GPS e a-GPS ▪ USB (cabo de dados)
  • 12.
    CONECTIVIDADE  Ao se desenvolver uma aplicação móvel, deve-se saber de que formas ela irá se comunicar com o meio externo para realizar trocas de arquivos, atualizações de banco de dados locais e remotos, solicitações de informações a serviços online.  A partir daí, a programação irá utilizar a API correta para cada tipo de conexão, realizando a comunicação com sucesso.
  • 13.
    Atualmente, as plataformas ou frameworks mais utilizadas no desenvolvimento de aplicações móveis são:  Oracle Java ME;  Microsoft Windows Mobile;  Google Android;  Apple iOS;  Nokia Symbian OS;  Palm WebOS;  Outras plataformas proprietárias.
  • 14.
    Oracle Java ME  Linguagem: Java;  Bastante difundida dentre os celulares para jogos e aplicações de utilidades;  A Java Micro Edition divide-se em: ▪ CLDC: Connected Limited Devices Configuration ▪ MIDP: Mobile Information Device Profile ▪ CDC: Connected Devices Configuration  IDE: Eclipse e Netbeans  SDK: ▪ http://www.oracle.com/technetwork/java/javame/overview/index.html
  • 15.
    Oracle Java ME - Arquitetura
  • 16.
    Microsoft Windows Mobile  Linguagem: ▪ .NET Compact Framework C# e VB.NET;  Bastante difundida dentre as aplicações corporativas pela sua produtividade e integração com outros produtos Microsoft;  Pequena curva de aprendizagem para quem já conhece .NET Framework;  IDE: Visual Studio .NET  SDK: ▪ http://msdn.microsoft.com/en-us/netframework/aa497273.aspx
  • 17.
    Microsoft .NET Compact Framework - Arquitetura
  • 18.
    Google Android  Linguagem: Java, Web;  Criada pela Google para smartphones;  Muitas funcionalidades na API;  Possui loja de venda de aplicações. Desenvolvedor paga anuidade para vender na loja;  Pequena curva de aprendizagem para quem já conhece Java;  IDE: Eclipse  SDK: ▪ http://developer.android.com/sdk/index.html
  • 19.
    Google Android - Arquitetura
  • 20.
    Apple iOS  Linguagem: Objective-C, Web;  Exclusivo para iPhone, iPod Touch e iPad;  Muitas funcionalidades na API, mas a aplicação fica presa numa “sandbox” quando instalada;  Possui loja de venda de aplicações. Desenvolvedor paga anuidade para vender na loja;  Grande curva de aprendizado na linguagem Objective-C, por ser pouco difundida;  IDE: Xcode (apenas Mac OS X);  SDK: ▪ http://developer.apple.com/devcenter/ios/index.action
  • 21.
    Apple iOS - Arquitetura
  • 22.
    Nokia Symbian OS  Linguagem: C++, Qt, Web;  Principalmente encontrado em smartphones Nokia;  Curva de aprendizado média na linguagem C++ com uso de Qt (plataforma para criação de UI) ;  IDE: Fornecida pela fabricante;  SDK: ▪ https://developer-secure.symbian.org/main/tools_and_kits/index.php
  • 23.
    Nokia Symbian OS - Arquitetura
  • 24.
    Palm WebOS  Linguagem: Web, C++;  Somente encontrado em smartphones Palm;  Rápido e bonito, mas com poucos usuários e aplicações até o momento;  Destaque para desenvolvimento em plataforma Web encorajado pelo próprio SDK;  IDE: Eclipse;  SDK: ▪ http://developer.palm.com/index.php?option=com_content&view=article&layo ut=page&id=1788
  • 25.
    Palm WebOS - Arquitetura
  • 26.
    Cada solução móvel exige uma análise detalhada de todos os requisitos que devem ser implementados na aplicação;  De acordo com o objetivo principal da solução, um dispositivo móvel e uma plataforma são indicados como os melhores, que contém as melhores funcionalidades, facilidade e produtividade necessárias para alcançar o objetivo com eficiência e eficácia.
  • 27.
    Case 1: Aplicação móvel para o Censo 2010 do IBGE  Irá exigir uso diário e contínuo durante grande número de horas;  Uso externo, sujeito ao tempo, poeira, quedas;  Boa capacidade de memória;  Recursos de comunicação móvel, 3G e Edge;  Recursos de GPS para localização global;  Grande número de dispositivos em operação;  Sincronização com sistema central;  Facilidade de instalação e manutenção;  Capacidade de produtividade no desenvolvimento.
  • 28.
    Case 2: Aplicação para gestão móvel de ERP  Será utilizado apenas pelos executivos da empresa;  Exige visual arrojado e fácil usabilidade;  Comunicação móvel, 3G, WiFi;  Sincronização apenas sem fio;  Poucos dispositivos em operação;  Reconhecimento de voz para autenticação;
  • 29.
    Case 1: Aplicação móvel para o Censo 2010 do IBGE – Solução  Dispositivo indicado: Coletor Symbol MC50  Plataforma: Windows Mobile .NET Compact Framework
  • 30.
    Case 2: Aplicação para gestão móvel de ERP - Solução  Dispositivo indicado: iPhone 4  Plataforma: Apple iOS
  • 31.
    Umas das formas de comunicação que podem ser usadas pelas aplicações móveis é através da internet;  Utiliza meios de ligações sem fio como 3G, Edge, GPRS ou WiFi;  Solicita e envia informações a serviços web, e-mail IMAP, RSS feeds, API remotas a fim de buscar integração com variados sistemas online.
  • 32.
    Todas as plataformas disponibilizam API para comunicação com os protocolos disponíveis na internet;  Integrações mais comuns:  Redes sociais (Twitter, Facebook etc);  RSS feeds e blogs;  Mapas online;  Meteorologia  Notícias (economia, esportes, política etc).
  • 33.
    Exemplo
  • 34.
    Próxima aula Montagem deambiente da plataforma Google Android
  • 35.