Dev (Back & Front)ARTIGO

Desenvolvendo aplicativos móveis para múltiplas plataformas

Texto original de Dennis Newel,
disponível em http://www.getelastic.com/developing-mobile-apps-for-multiple-platforms/

?

Um dos maiores obstáculos ao se desenvolver aplicativos móveis
hoje é o número de diferentes aparelhos de telefone que devem ser suportados.

Apesar de o iPhone
ser a mais popular plataforma para aplicativos atual, não é mais
suficiente ter suporte só para ele. O Android é um competidor valioso, e o iPad
apresenta diferentes opções e possibilidades que muitas vezes garantem o
desenvolvimento de sua própria experiência em aplicativos. Para oferecer,
verdadeiramente, uma oferta móvel, você também deve suportar Symbian,
Blackberry, Windows Mobile e Palm apenas para cobrir os smartphones mais
usados. Mas como você desenvolve para múltiplas plataformas?

Atuais
abordagens para o desenvolvimento de aplicativos móveis

A habilidade de
criar um aplicativo e o fazer “magicamente” funcionar em todos os
aparelhos móveis não está disponível no momento, apesar de existirem várias
empresas trabalhando duro para chegar lá. Enquanto isso, existem duas
abordagens diferentes, com uma terceira a caminho.

Uma delas é oferecer um “driver”
para cada telefone que oferece acesso a, por exemplo, acelerômetro e GPS a
partir de linguagens como JavaScript, Ruby e Python. Dessa maneira, um
desenvolvedor pode escrever o aplicativo em uma linguagem (juntamente com HTML
e CSS), que pode ser executado em todos os telefones que têm o
“driver”.

Outra é escrever o aplicativo em uma linguagem e, então, o
“traduzir” para outras linguagens que podem ser usadas em outros
telefones. O desenvolvedor então criaria o aplicativo (p.e. para o iPhone) e o
executaria através de uma ferramenta para produzir versões que podem ser
executadas em outras plataformas.

A nova maneira de
criar aplicativos está surgindo através do HTML 5, que é uma grande extensão
das especificações HTML atuais e que, entre outras coisas, poderia oferecer
APIs diretas para GPS e outros recursos móveis específicos. O principal
problema do HTML 5 é que o padrão ainda não foi finalizado, e poucos telefones
o suportam. Quando ele se tornar largamente suportado, no entanto, você
poderá, teoricamente, criar um aplicativo que será executado em todos os
telefones e browsers (que suportam HTML5).

Prós e contras

Existem prós e
contras para ambas as opções atuais e futuras. As principais vantagens em usar
essas tecnologias são velocidade de entrada no mercado e fácil manutenção de um
aplicativo em vez de múltiplos aplicativos.

Outras vantagens
são visual e sentido uniformes em todos os dispositivos, suporte para layout
flexíveis (usando HTML e CSS, pelo menos) e uso de tecnologias conhecidas. Ainda
não é fácil encontrar ótimos desenvolvedores para dispositivos móveis, mas é muito fácil achar
bons desenvolvedores web que estão familiarizados com  HTML, CSS,
JavaScript, Ruby, Python e outras linguagens.

A principal
desvantagem, além de não suportar todas as plataformas, é que você fica
restrito ao que o “driver” e o “tradutor” são capazes de
lidar. Você provavelmente não será capaz de acessar o armazenamento local (isso será
parte do HTML5), Bluetooth, Wi-Fi ou similares que não estiverem acessíveis em
todos os telefones. Existe também a questão da performance, uma vez que o
código (seja traduzido ou escrito em uma linguagem que precisa ser
interpretada) pode não ser otimizado para um determinado telefone.

Frameworks disponíveis

Titanium

  • Usa
    tecnologias web como HTML, CSS, JS, Python, Ruby e PHP
  • Pode
    construir aplicativos móveis e para desktop
  • Possui
    built-in analytics
  • Pode
    acessar recursos do telefone como GPS e native UI
  • Suporta
    iPhone, iPad e Android

Ramp

  • Usa uma máquina virtual no telefone para executar aplicativos
    escritos em UXML,
    CSS e JS
  • Constrói
    aplicativos móveis e para desktop
  • Tem
    grande foco em segurança
  • Suporta
    anúncios dentro dos aplicativos
  • Tem
    um server-side que permite integração com sistemas internos da empresa
    como intranets ou CRM
  • Suporta
    uma vasta gama de telefones

J2ME Polish

  • Usa
    o padrão J2ME para aplicativos e tem uma ferramenta que pode transportar o
    aplicativo para vários outros telefones, incluindo iPhone, Blackberry e
    Android usando seus componentes native UI.

PhoneGap

  • Usa
    HTML e JavaScript para construir aplicativos
  • Oferece
    acesso a recursos do telefone como GPS
  • Suporta
    iPhone/iPad, Android, Palm, Blackberry e Symbian

Grapple

  • Usa
    HTML, CSS e JavaScript para construir aplicativos
  • Oferece
    uma série de serviços profissionais como criação de aplicativos,
    hospedagem, gerenciamento etc

Open Plug

  • Usa
    Flex para construir aplicativos
  • Suporta
    iPhone/iPad, Android, Windows Mobile, Symbian, mas pode ter problemas com
    o último Contrato de Licença da Apple devido ao seu uso de Flex e à sua
    ligação com a Adobe)

Rhomobile

  • Usa
    HTML5 e Ruby
  • Hospeda
    o IDE (Integrated Development Environment)
  • Suporta
    iPhone, Windows Mobile, RIM, Symbian e Android
  • Oferece
    acesso a recursos do telefone como GPS e câmera

 

Matérias especiais e reportagens conduzidas internamente pela Redação iMasters. Acompanhe no Twitter @imasters e no Instagram/Threads @portalimasters

Ver perfil