"> Existem atualmente várias possibilidades de desenvolvimento de aplicativos para aparelhos celulares. As mais comuns são J2ME/MIDP e BREW. A plataforma BREW tem a desvantagem de ser proprietária, deixando o custo de desenvolvimento muito elevado. Já o Java é livre, porém, pela característica de rodar sobre uma máquina virtual, a performance é debilitada. Além disso, o Java fornece acesso limitado aos recursos do telefone.

A plataforma Symbian (Nota 1), não tão conhecida quanto as duas acima, é composta de um sistema operacional, um hardware e um ambiente de desenvolvimento. A vantagem de se ter uma plataforma é que as aplicações não precisam ser reescritas para os diversos tipos de aparelho no mercado – necessitam apenas de leves adaptações para satisfazer as necessidades de um aparelho específico. O sistema operacional da plataforma Symbian é denominado Symbian OS e foi desenvolvido para aparelhos celulares do tipo smartphones e communicators, que são aparelhos que agregam mais recursos que aparelhos celulares comuns. O Symbian OS é um sistema operacional multitarefa, específico para o ambiente móvel, com uma interface gráfica intuitiva e possui uma Java Virtual Machine compatível com J2ME/MIDP. Por possuir uma JVM, podemos utilizar J2ME/MIDP para desenvolvimento de aplicações para um aparelho Symbian.

Uma outra forma de desenvolvimento de aplicação para Symbian OS, e que será abordada neste artigo, é realizada através da utilização de C++. Vale destacar que existem algumas diferenças do uso do C++ para celular do C++ para aplicações desktop. Por isso, a linguagem será chamada aqui de Symbian C++. Por ser nativa para o aparelho Symbian, aplicações desenvolvidas utilizando essa linguagem são mais rápidas e têm acesso a mais recursos do celular.

Neste artigo discutiremos algumas características do sistema operacional Symbian OS e descreveremos como montar um ambiente de desenvolvimento de aplicações para este sistema operacional. Após isto, iremos abordar o desenvolvimento de aplicações para Symbian OS utilizando Symbian C++, e descreveremos alguns recursos disponibilizados por esta forma de desenvolvimento, apresentando uma aplicação simples para ilustrar estes conceitos.

Symbian OS

A história do Symbian começa em 1991, quando a Psion realizou o lançamento da primeira versão do sistema operacional EPOC para handhelds. Em 1997 foi lançado o Psion Series 5, o primeiro handheld a utilizar o sistema operacional EPOC32 (de 32 bits). Este aparelho chamou a atenção dos fabricantes de aparelhos celulares, que já vislumbravam a tendência desses aparelhos de agregar novas tecnologias e funcionalidades.

Em 1998 foi fundada a companhia Symbian, por um consórcio formado pela Nokia, Motorola, Ericsson e pela própria Psion. O objetivo da companhia era desenvolver uma versão do EPOC32 específica para aparelhos celulares – que foi chamado de Symbian OS. O aparelho-alvo deste sistema operacional são os smartphones (aparelhos centrados em voz, com capacidade para dados) e communicators (aparelhos centrados em dados, com capacidade para voz). O primeiro smartphone com Symbian OS foi lançado em novembro de 2000, o Ericsson R380. Em junho de 2001 foi lançado o primeiro communicator, o Nokia 9210. Outras companhias se juntaram ao Symbian mais tarde, adquirindo propriedade da companhia, enquanto a Motorola vendeu sua parte em 2003, após o lançamento do MPx200, aparelho com o sistema operacional Windows Mobile.

Muitas outras companhias possuem licença para fabricar aparelhos com este sistema operacional, e o próprio modelo de negócios possibilita isso: a empresa não cobra uma alta taxa de licença de desenvolvimento para a produção de um determinado aparelho – ao invés disso, ela cobra uma taxa por unidade produzida. Isso dá a chance a companhias menores de lançarem seus produtos com competitividade com relação a companhias maiores.

O Symbian OS foi projetado para rodar em telefones celulares, ou seja, ele lida com a limitação de recursos. Em primeiro lugar, telefones celulares são dispositivos com recursos limitados em todos os sentidos, por exemplo, consumo de energia. Essa limitação se reflete em todos os outros elementos de hardware e mesmo de software:

·         o processador não pode ser tão rápido quanto a tecnologia permite, pois quanto mais rápido, mais energia é consumida;

·         as telas são projetadas de uma forma que consuma o mínimo possível de energia;

·         o próprio sistema operacional gerencia este recurso, além de estar preparado para uma eventual falta de energia sem perda de dados.

 

Outro ponto de destaque aqui é o tipo de usuário ao qual o sistema operacional se destina. Usuários de PCs são geralmente acostumados a reiniciar seus computadores todos os dias, ou ao menos regularmente. Um usuário de um telefone celular não tem este pensamento – é comum que sistemas rodando Symbian OS executem por meses sem nunca reiniciar.

 

Nota 1. Plataformas de desenvolvimento

A maioria dos aparelhos Symbian são agrupados em plataformas que compartilham algumas características, tais como tamanho da tela, processadores, resolução e a versão do sistema operacional. Isso ajuda o desenvolvedor pois generaliza a plataforma alvo, aumentando o número de dispositivos alcançados por uma determinada aplicação. As plataformas mais populares são Série 60, Série 80, Série 90 e UIQ. Dentre estas, a plataforma Série 60 é a que tem mais fabricantes licenciados e possui mais aparelhos lançados, além de ser a mais popular no Brasil. Por essa razão o desenvolvimento abordado no artigo enfoca a Série 60. Apesar disso, o desenvolvimento para outras plataformas Symbian não seria muito diferente, sendo válidos muitos dos comentários feitos ao longo do artigo.

Symbian C++

Para explicar as principais peculiaridades do Symbian C++ iremos utilizar a aplicação mais simples que o sistema operacional permite. É uma aplicação em console que escreve “Hello World!” na tela do dispositivo  para plataforma Série 60 (ver Nota 1).

Inicialmente gostaríamos de falar que a sintaxe para incluir bibliotecas, fazer comentários, definir classes e funções é a mesma da linguagem C++ para desktops, e, se você não é conhecedor desta linguagem, qualquer bom guia deverá ajudá-lo a  entender o código.

Uma primeira diferença é que o Symbian C++ define seus próprios tipos primitivos (além de utilizar os do C++), e encoraja o desenvolvedor a utilizá-los. A razão para isso é que eles têm consistência no Symbian OS, tendo garantias de seu comportamento independente da implementação (por exemplo, um TInt tem sempre 32 bits). Esses tipos primitivos podem ser vistos na Tabela 1.

 

Tabela 1. Principais tipos básicos no Symbian C++.

Tipos Primitivos

Descrição

TInt8

TUint8

 

Inteiros de 8 bits com e sem sinal.

TInt16

TUint16

 

Inteiros de 16 bits com e sem sinal.

TInt32

TUint32

 

...

Quer ler esse conteúdo completo? Tenha acesso completo