07 setembro 2009

Desenvolvimento de software para Celular - parte 1

Sempre que vou trabalhar com a disciplina de laboratório de programação (atualmente trabalhando com desenvolvimento de aplicativos para celular), abordo um pouco sobre as problemáticas existentes. Assim, este post objetiva dar uma visão geral sobre isso.





De forma geral, o desenvolvimento de software é um processo de criação de programas para quaisquer dispositivos computacionais, capaz de projetar e produzir tarefas automatizadas, sistematizadas ou pré concebidas, para realização de alguma atividade por meio do uso dos recursos de harware e software existentes.

O processo de desenvolvimento de sofware para celular tende a ser bastante influenciado pelas escolhas das tecnologias utilizadas, desde a Plataformas de Software de Celular (PSC) e dos seus dispositivos-alvos, bem como, de ferramentas de desenvolvimento utilizando tecnologias das Plataformas de Desenvolvimento de Celular (PDC). Podemos citar como exemplos os seguintes casos:

  • PSC (ex. Symbian, Windows Mobile, iPhone OS, Android);
  • PDC (ex. Java ME, BREW, Flash Lite).

Essencialmente, uma PDC é uma solução tecnológica para garantir compatibilidades
para implementações de software nas PSC. Embora, de maneira geral, portar aplicativos para outras PSC é um processo custoso.

O desenvolvimento de aplicativos para as PSC podem ser divididos de três diferentes formas:
  • aplicações nativas: aplicações voltadas exclusivamente para a PSC;
  • aplicações intermediárias: voltada para PDC;
  • aplicaçoes Web (widgets): rodam dentro dos navegadores web dos dispositivos.

Os aplicativos nativos, são tecnicamente mais complexos de desenvolver, e são dependentes da tecnologia da PSC. Por exemplo, aplicações nativas de Symbian devem usar a linguagem Symbian C++, e o seu conjunto de bibliotecas disponíveis. Em geral, a vantagem é que todos os recursos do celular podem ser utilizados sem quaisquer restrições. Porém, a principal desvantagem recai sobre a curva de aprendizado das PSC específicas, bem como, a dificuldade de portabilidade futura.

As aplicações intermediários são voltados para as PDC, propondo melhorar a portabilidade e compatibilidade das aplicações desenvolvidas nas diferentes PSC. Por outro lado, existem dificuldades para acessar todos os recursos do dispositivo, uma vez que cada fabricante oferece uma implementação de suporte para a PDC, sensivelmente diferentes ou específicas para um conjunto de hardware de seu portfólio. Isso acaba por restringir as possibilidades que um aplicativo poderia explorar, diante das aplicações nativas. O maior benefício deve-se à boa curva de aprendizado por parte dos desenvolvedores.

As limitações dos navegadores e o tamanho das telas fazem com que a maior parte dos aplicativos intermediários fiquem inutilizáveis. Ou seja, alguns tipos de aplicações como Gmail continuam acessíveis, enquanto que serviços como Google Talk, não.

Já os software que rodam dentro de navegadores (web), são conhecidos como widgets, e podem incluir serviços como Gmail, Meebo, entre outras, e são voltados para as PSC. Alguns exemplos bastante utilizados são widgets para iPhone e Opera Widgets. Os widgets são, em geral, aplicativos simples, que exibem algumas informações específicas. Alguns widgets, embora rodem dentro do navegador, substituem as funções e até mesmo, a aparência de aplicativos nativos, mas não permitem ir muito longe em termos de programação. A principal vantagem é a portabilidade, pois basta o celular ter um navegador compatível. Porém, será necessário conexão com a internet, pois os widgets são projetados para interações com serviços na web. De forma geral, para tarefas mais complexas, a melhor opção é desenvolver um aplicativo nativo.

O desenvolvimento de serviços e aplicações para celular são baseados em arquiteturas específicas, usando componentes não-reutilizáveis. Em razão disso, faz-se necessário considerar a PSC, o celular-alvo e, ferramentas de desenvolvimento específicas. Além disso, por conta da grande variedade de dispositivos, há uma grande diversidade de plataformas e, consequentemente, diferentes ferramentas de desenvolvimento.

O desenvolvimento de uma aplicação para celular possui algumas dependências e representa inúmeros desafios para os desenvolvedores. As dependências técnicas existentes são a principal fonte dos problemas, e estão presentes na cadeia de valor de uma aplicação de celular. Ou seja, tipicamente uma aplicação de celular é restrita para uma combinação específica de PSC, o dispositivo de celular, além da rede da operadora.

Existem pelo menos três maneiras diferentes para desenvolver aplicativos no celular:

  1. via desenvolvimento de códigos nativos da PSC;
  2. usando aplicações intermediárias através das PDC;
  3. utilizando widgets para rodar pequenas aplicações dentro do navegador do celular.

Além disso, a escolha das tecnologias de PSC, os dispositivos-alvos e a infra-estrutura de rede
da operadora, influenciam positiva ou negativamente no desenvolvimento do software.

Em futuro post, apresentarei o ciclo de desenvolvimento de software para celular.
Posted by Picasa

2 comentários:

Leandro Severino disse...

Parabéns pelo artigo !.
Faltou citar o Python que é uma excelente alternativa para a plataforma Symbiam.

Ricardo disse...

Parabéns pelo artigo, muito bom, no site Scriptcase tem algumas informações e outros post bem interessante tbm.