Atenção: esse artigo tem uma palestra complementar. Clique e assista!

Atenção: esse artigo tem um vídeo complementar. Clique e assista!

Do que trata o artigo

Este artigo irá nos mostrar como funciona o framework de desenvolvimento Qt. Este que é framework multiplataforma, mas dá preferência à plataforma de smartphones Symbian, o Sistema Operacional mais utilizado nos modelos da Nokia.

Para que serve

Este artigo visa ajudar desenvolvedores que estejam abertos a aprender novas tecnologias, necessitem desenvolver código multiplataforma para aplicações móveis, ou simplesmente querem conhecer como o framework Qt funciona na plataforma Symbian.

Em que situação o tema é útil

Esse tema é especialmente útil para desenvolvedores que necessitem criar aplicações para a plataforma de Smarthpones Symbian. Mas também pode ser muito útil aos desenvolvedores que desejam conhecer um pouco mais sobre C++ e o framework Qt.

Resumo do DevMan

Sendo Qt um framework multiplataforma, vamos demonstrar como criar aplicações que possam rodar em várias plataformas como: Windows, Linux e Symbian. O Symbian possui seu próprio SDK, mas utilizando Qt não é necessário que o desenvolvedor seja um grande especialista em Symbian para desenvolver boas aplicações.

Antigamente os desenvolvedores escreviam aplicações para rodar praticamente apenas em computadores, sejam eles Mainframes, Minicompuradores ou Microcomputadores, que são os populares PCs que mais usamos hoje.

Hoje o universo para o desenvolvedor é bem maior, além de computadores temos uma quantidade enorme de dispositivos menores, como: Telefones Celulares, Palms, Tablets e outros.

Com tantos dispositivos e tantos sistemas operacionais que rodam nestes dispositivos, é sensato que os desenvolvedores procurem por tecnologias que lhes permitam portar suas aplicações com pouco esforço entre as várias plataformas. E além de ganhar tempo, ganhar dinheiro se for o caso de aplicações comerciais.

Existem tecnologias que oferecem possibilidade de escrever aplicações que possam ser consideradas multiplataforma, entre elas podemos destacar além do Qt, o Java e o .NET.

O Java oferece o J2ME (Java 2 Micro Edtion que possui compatibilidade entre dispositos móveis, porém não é cem por cento compatível com JSE ou J2SE (Java 2 Standard Editon). Por exemplo, se escrevo um aplicativo em J2SE para rodar no meu PC, o mesmo código não vai rodar no meu smartphone sem que seja necessário fazer alguma alteração no mesmo.

É claro que dependendo da aplicação boa parte do código pode ser aproveitada, mas mesmo que seja possível aproveitar todas as classes, no mínimo terei que escrever um Midlet que é o entry point de uma aplicação em J2ME.

O mesmo ocorre para o recem-lançado sistema operacional Android, onde o Java é usado para desenvolver aplicações. Uma aplicação feita para Android (em Java) só roda em Android (já existem emuladores de J2ME para Android). Uma aplicação em J2ME que roda na maioria dos dispositivos móveis não vai rodar diretamente no Android, mesmo que boa parte do código possa ser portada. Do mesmo modo, uma aplicação feita em J2SE para rodar no PC não roda diretamente no Android.

O .NET oferece o CF ou Compact Framework (uma especie de J2ME do Java) para dispositivos móveis, onde a portabilidade entre plataformas também oferece restrições como no caso do Java. Talvez o CF permita mais compatibilidade do que o Java, oferecendo menos restrições de User Interface e de definição de projeto.

O Qt é um framework em C++ com binds em Java, Perl, Phyton e outras linguagens. Para projetos em C++ o Qt oferece uma portabilidade maior que a dos seus concorrentes, pois permite que um mesmo projeto, com interface gráfica ou não, possa ser compilado e executado, com pouca ou nenhuma modificação.

Claro que cem por cento de portabilidade praticamente não existe, mas um desenvolvedor com experiência pode ter um ótimo reaproveitamento na maioria dos casos.

Hoje o Qt pertence à Nokia, é software livre (licença LGPL) e funciona nos seguintes sistemas operacionais: Windows, Linux/X11 e Unix/X11 (veja nota do DevMan), Mac OS, Linux embarcado, Windows CE e Symbian. Além é claro do Maemo, que é o novo sistema operacional da Nokia baseado em Linux.

Outro ponto forte do Qt sempre foi a boa documentação. O Qt é um frameworkconsiderado de fácil aprendizado, oferece alguns recursos adicionais ao desenvolvedor C++, como por exemplo, um tipo interno de Garbage Collector. No Garbage Collector do qt, quando os objetos são destruídos, destroem também todos os seus descendentes. Assim, precisamos apenas destruir os objetos principais ou criá-los na área de Stack, como varáveis locais entre qualquer bloco de chaves {}.

Antes de ser comprado pela Nokia, o Qt já estava presente em telefones celulares baseados em Linux, principalmente no Japão, China e alguns modelos da Motorola.

Nota do DevMan

Smartphones são telefones celulares que possuem pelo menos dois desses seguintes requisitos: Um sistema operacional, como por exemplo o Windows Mobile, Symbian, Android entre outros. Outro requisito é que esses telefones celulares aceitam a instalação de aplicativos nativos para o sistema operacional.

Symbian é um sistema operacional para dispositivos embarcados, usado principalmente em telefones celulares, sendo eles smartphones ou não. Os principais modelos da Nokia usam Symbian, bem como alguns modelos de outros principais fabricantes. Em Maio de 2009, Symbian respondia por praticamente cinquenta por cento de todos os smartphones vendidos no mundo, para se ter uma idéa, este número já foi bem maior e agora temos vários novos sistemas operacionais concorrendo no mercado, e é normal que os números decaiam um pouco.

Nota do DevMan

X Window System, X-Window, X11 ou simplesmente X, é um protocolo e seu software associado possibilita o emprego de uma interface gráfica com o conceito de janelas, trabalhando no modo Cliente-Servidor.

X-Window é o toolkit e protocolo padrão para GUI nos sistemas Unix e assemelhados como o Linux, mas existem versões para outros sistemas operacionais, como o Microsoft Windows e o Mac OS, por exemplo. Ele permite que o uso de estações gráficas (sem CPU), onde vários usuários trabalham ao mesmo tempo, usando um único computador central.

Dispositivos com Linux Embarcado normalmente não utilizam o X, neste caso não existe um ambiente gráfico previamente criado, então o Qt utiliza a tecnologia Framebuffer (memória de imagem, memória de vídeo ou de tela), que é uma memória especializada capaz de armazenar e transferir para a tela os dados de um quadro de imagem completo, criando então o ambiente gráfico.

...

Quer ler esse conteúdo completo? Tenha acesso completo