Translate

4 de setembro de 2009

tecnologias para o desenvolvimento de aplicações móveis

Principais tecnologias para o desenvolvimento de aplicações móveis

1 Linguagens para dispositivos móveis

1.1 Jini

Paradigma: POO para coordenação de dispositivos;

A tecnologia Jini, da Sun Microsystems, é um framework de coordenação evoluído e adaptado de pesquisas acadêmicas e implementado especificamente para Java. Jini usa o termo federação para representar a coordenação entre dispositivos. Uma federação é uma coleção de dispositivos autônomos os quais podem tornar-se cientes uns dos outros e cooperar se for necessário. Um subsistema Jini contém serviços de consulta que mantêm informação dinâmica sobre dispositivos disponíveis. Esses serviços são a chave para o funcionamento adequado do sistema Jini.

1.2 Universal Plug and Play

Paradigma: POO para detectar dispositivos para se comunicarem entre si;

O Plug and Play Universal - UPnP, desenvolvido pela Microsoft, é um framework definido num nível mais baixo que o Jini. Embora seja considerado, em alguns aspectos, uma extensão do Plug and Play, que detecta automaticamente a existência de dispositivos novos no barramento de PCs, para o ambiente de redes, seu framework de implementação é muito diferente do Plug and Play. O UPnP trabalha basicamente com as camadas mais baixas dos protocolos de rede TCP/IP, implementando padrões nesse nível ao invés do nível de aplicação. Isto envolve a adição de protocolos adicionais ao conjunto de protocolos implementados nos dispositivos. Ao contrario do Jini, que focaliza na autonomia, o UPnP focaliza na padronização de protocolos específicos e a aderência dos fabricantes a estes novos padrões. Com a definição desses protocolos, o UpnP permite que os dispositivos construam suas próprias APIs que implementam esses protocolos, em qualquer linguagem ou plataforma que desejarem.

1.3 Android

Paradigma: POO para programar dispositivos com java e bibliotecas da google;

Google Android é um sistema operacional baseado em kernel Linux. Ele foi inicialmente desenvolvido pela Google e posteriormente pela Open Handset Alliance, ele permite os desenvolvedores escreverem software na linguagem de programação Java controlando o dispositivo via bibliotecas desenvolvidas pela Google. Ele suporta uma grande variedade de tecnologias de conectividade incluindo Bluetooth, EDGE, 3G, e Wi-Fi.

1.4 J2ME

Paradigma: POO para programar dispositivos portáteis com java e bibliotecas J2ME;

(Java 2 Micro Edition): Mantida pela Sun, J2ME é a plataforma Java direcionada para dispositivos com recursos de hardware e software limitados. É suportado pela grande maioria dos aparelhos, pois, basta que o aparelho possua uma JVM (Java Virtual Machine) que atenda as especificações da Sun instalada para que ele possa executar aplicativos na linguagem J2ME.

É uma plataforma gratuita, com diversas IDEs (Integrated Development Environment) disponíveis e a maior comunidade de desenvolvedores dentre as tecnologias aqui citadas. Sendo assim, é a plataforma mais popular e suportada pela maior quantidade e diversidade de aparelhos.

1.5 .NET

Paradigma: POO para programar dispositivos com C#;

Compact Framework: Plataforma nativa do sistema operacional Windows Móbile da Microsoft. O desenvolvimento de seus aplicativos é feito na linguagem C# utilizando a ferramenta Visual Studio, também da Microsoft.

Oferece um bom suporte ao desenvolvedor e é simples de se trabalhar devido às facilidades oferecidas pelo Visual Studio. Porém é suportada apenas por aparelhos que possuem o sistema operacional Windows Móbile. Apesar desta limitação, a quantidade de aparelhos com este sistema tem crescido consideravelmente e tende a continuar crescendo, tendo em vista a força e influencia da Microsoft.

1.6 Brew

Paradigma: POO para programar dispositivos com C++;

Brew C/C++ (Binary Runtime for Wireless Environment): O Brew, desenvolvido pela Qualcomm, é um sistema operacional e uma plataforma para desenvolvimento de aplicativos móveis na linguagem C/C++ através das ferramentas fornecidas pela Qualcomm, é a plataforma mais difundida entre os aparelhos CDMA.

Em 2003 a Qualcomm assinou um acordo com a Sun e anunciou suporte a Java que passou a fazer parte dos chips CDMA produzidos pela Qualcomm, incorporando então o suporte J2ME ao sistema operacional Brew. Mas veja bem, isso implica apenas que o Brew suporta aplicativos J2ME, ele funciona como uma JVM, mas a linguagem nativa do Brew continuou sendo o C/C++. Essa parceria foi feita por questões estratégicas, pois a Qualcomm percebeu que estava perdendo espaço para os sistemas que suportavam o J2ME.

1.7 iPhone

Paradigma: POO para programar dispositivos iphone com Objective C;

O iPhone, da Apple, possui sua própria plataforma de desenvolvimento e suporta apenas aplicativos desenvolvidos na linguagem Objective C, utilizando o iPhone SDK. O Objective C é uma linguagem orientada a objetos variante do C utilizada principalmente para desenvolver aplicativos para os sistemas da Apple, como o iPod, iPhone e o Mac OS.

Iniciar o desenvolvimento para iPhone é um pouco mais penoso e caro, pois além de ser uma linguagem que não está entre as mais comuns, é necessário ter um computador Mac ou um Macbook com o MAC OS instalado, pois o iPhone SDK não possui versões para Windows ou Linux. Porém, apesar do grande número de aplicativos existentes e do custo para iniciar o desenvolvimento, há uma crescente demanda por profissionais que desenvolvam para iPhone e tornar-se desenvolvedor iPhone pode ser um bom negócio.

1.8 Symbian

Paradigma: POO para programar dispositivos móveis com Symbian C++;

Symbian C++: Linguagem de desenvolvimento de aplicativos do sistema operacional Symbian da Nokia. É uma variante da linguagem C++, possuindo algumas adaptações para que possa ser suportado por dispositivos com recursos limitados que rodem o sistema Symbian S60 da Nokia.

É livre, sem custos para desenvolvimento, e utilizando-a é possível explorar todos os recursos do S60, porém, ficamos limitados aos aparelhos com S60 da Nokia. Seu desenvolvimento pode ser feito na IDE Carbide.c++ que é baseada no Eclipse.

SymbianOS é um sistema operacional muito versátil, permite o desenvolvimento de aplicativos em diversas linguagens como:

• Symbian C/C++

• JavaME

• FlashLite

• Perl

• Python

• Ruby

• Lua

• Acelarometer

1.9 Open C/C++

Paradigma: POO para programar dispositivos com Open C/C++;

Plataforma de desenvolvimento de aplicativos do sistema operacional Symbian S60 da Nokia. O Open C/C++ permite que desenvolvedores C/C++ que não tenham experiência com Symbian C++ possam desenvolver aplicativos para o S60 de forma fácil, em um ambiente mais familiar e sem ter que se aprofundar muito nas particularidades do Symbian S60. Também é uma plataforma livre, sem custos, porém, também está limitada a aparelhos com o S60 da Nokia.

1.10 Qt Software

Paradigma: POO para programar dispositivos com C++;

Qt Software: Plataforma de desenvolvimento de aplicativos desktop e aplicativos móveis da Nokia. Antiga Trolltech, foi adquirida pela Nokia em 2008 e teve o nome alterado para Qt Software. Utiliza a linguagem C++ para o desenvolvimento dos aplicativos e apresenta uma forte interface gráfica que visa facilitar o desenvolvimento de seus aplicativos, além disso, tem como princípios a reusabilidade do código e facilidade no desenvolvimento. É suportada pelos aparelhos com Symbian S60 da Nokia, por sistemas Linux embarcados e Microsoft Windows CE.

1.11 Python for S60

Paradigma: POO para programar dispositivos móveis com Python;

O Python é uma linguagem popular entre os desenvolvedores Web e agora pode ser utilizada para desenvolver aplicativos móveis para dispositivos com o Symbian S60 da Nokia. O desenvolvimento é feito utilizando a linguagem Python nas ferramentas disponibilizadas pela própria Nokia. Assim como o Symbian C++, o Open C/C++ e o Qt, os aplicativos ficam limitados a rodar nos aparelhos com S60 da Nokia. Alias, com exceção do Qt que também é suportado pelo Linux e pelo Windows CE.

1.12 Flash Lite

Paradigma: POO para programar dispositivos móveis com flash;

Plataforma para desenvolvimento de aplicativos móveis baseada na plataforma Flash e mantida pela Adobe. Seu desenvolvimento é feito na linguagem ActionScript utilizando a ferramenta Adobe Flash. Ainda é uma plataforma pouco explorada, apesar de que muitos desenvolvedores Web que trabalham com Flash já terem experimentado o Flash Lite. Até a data em que este artigo foi escrito era suportado por 188 aparelhos de diversos fabricantes e sistemas operacionais diferentes, como Symbian (S40, S60 e UIQ) e Brew.

2 diferenças entre o desenvolvimento de aplicações móveis e Desktop

2.1 Compatibilidade

É necessário definir em qual linguagem e para qual plataforma desenvolver.

Cada plataforma possui suas particularidades, suporta determinadas linguagens e possui um leque de aparelhos compatíveis. É importante ressaltar que estamos falando das linguagens e das plataformas que as suportam e não de sistemas operacionais, apesar de que os dois estão diretamente relacionados.

No mundo móvel predominam vários sistemas operacionais e todos eles possuem plataformas para desenvolvimento e execução de seus aplicativos. Algumas plataformas suportam mais de uma linguagem, como é o caso do Symbian que suporta as linguagens J2ME, Symbian C++, Python, etc.

2.2 Conectividade

É necessário um sistema de comunicação para o dispositivo móvel.

Destacando as principais características de Comunicação e Rede:

  •  Comunicação serial – SLIP e PPP (via cabo e infravermelho) ;
  • – API IrSock – suporte a comunicação infravermelha (via IrDA – Infrared Data Association)
  •  Conexões de Rede (protocolos da Internet e de troca de arquivos) ;
  • – API WinInet (HTTP e FTP) ;
  • – API WinSock (sockets que suportam TCP/IP)
  • – RAS – Remote Access Service suporta upload/download de arquivos (via PPP para conectar no servidor)
  •  API Telephony – suporta comunicação via modem para um hospedeiro remoto;

2.3 Poucos recursos de hardware

Dispositivos móveis possuem pouca capacidade de memória e processamento.

O desenvolvimento da tecnologia de portáteis é orientado, em parte, pelos telefones inteligentes, câmeras digitais, tocadores MP3 e PDAs. Este possuem pouca capacidade de memória, expandível por cartões e pendrives flash. Possuem pouco processamento e um teclado reduzido ou inexistente, substituído por um similar virtual, tela sensível ao toque (touchescreen), ou reconhecimento de voz e/ou escrita a mão.

Referências:
http://facamovel.wordpress.com/2009/07/30/em-qual-plataforma-desenvolver/
http://www.leopoldina.cefetmg.br/moodle/file.php/23/PFC/computacao_ubiqua.pdf

Nenhum comentário :

Postar um comentário