Tutorial 1: Iniciando com o Symbian (Preview)

1. O que é o Symbian?

Primeiramente, temos que conceituar e definir o Symbian. A plataforma Symbian é 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 em diversos tipos de aparelho no mercado, já que só necessitam apenas de leves adaptações para satisfazer as necessidades de um aparelho específico. O sistema operacional da plataforma Symbian é denominado Symbiam OS e foi desenvolvido para aparelhos celulares do tipo smartphones e tablets inteligentes, que são aparelhos mais sofisticados, pois agregam mais recursos que aparelhos celulares comuns. O Symbian OS é um sistema operacional multi-tarefa com uma interface gráfica amigável e possui uma máquina virtual (KVM) compátivel com JavaME/MIDP. Por possuir tal máquina virtual, pode-se também utilizar JavaME para desenvolvimento de aplicativos para aparelhos Symbian.

1.1 Symbian C++

Uma forma de se desenvolver para o Symbian OS é utilizar a linguagem C++. O Symbiam C++ é uma linguagem nativa para programação desse tipo de aparelhos. Vale destacar que a forma de desenvolver para deskop usando C++ é diferente de desenvolver em celulares em C++. Pois as linguagem foi otimizada para aparelhos celulares, o que provê aplicações muito mais rápidas e acesso a recursos do celular. O Symbian OS permite o desenvolvimento para seu sistema através de uma variada quantidade de SDKS como JavaME, FlashLite, Python e Widgets. Pórem, o Symbian C++ permite a geração de aplicativos que acessam grande parte dos recursos e funcionalidades do celular sem perder desempenho.




1.2 Series 60

A maioria dos aparelhos Symbian são agrupados em plataformas que compartilham características, tais como tamanho da tela, processadores, resolução e 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 as Série 60, Série 80, Série 90 e UIQ. Dentre estas, a plataforma Série 60 é que tem mais fabricantes licenciados e possuimais aparelhos lançados, além de ser a mais popular no Brasil. A escolha de desenvolver em aparelhos Série 60 foi uma decisão lógica já que além de ser popular, o desenvolvimento para as outras plataformas Symbian não seria muito diferente.


2.0 Roteiro para iniciar desenvolvimento

Para começar a desenvolver, é necessário que se tenha um certo conhecimento da linguagem de programação C++. Existe um tutorial bem interessante disponível por Elton Oliveira (um dos integrantes do nosso grupo de estudo de Symbian) onde o link para o mesmo se encontra aqui. Grande parte desse roteiro foi retirado ou baseado nos roteiros propostos pelo Forum Nokia, logo para maiores informações e explicações detalhadas ver os tutoriais fornecidos pelo fórum que tem explicações detalhadas sobre a plataforma Symbian.



2.1 Ferramentas para Desenvolvimento

Para iniciar o desenvolvimento de aplicativos C++, é necessário de um kit de desenvolvimento de software (SDK). O SDK geralmente contém códigos-fonte e bibliotecas, documentação, ferramentas para compilar e linkar os projetos e um emulador do celular para que possa testar os aplicativos no PC. Bom lembrar que para cada plataforma Symbian OS (Séries 60,80,etc.) tem sua própria SDK.
Então o primeiro passo é fazer o download do SDK de acordo com a plataforma que vocë queira desenvolver. A última versão é o S60 SDK for Symbian OS for C++ ( S60 3rd Edition, FP1 SDK). Existem diversas versões a se escolher, dependendo da Edição que escolher (1,2, 3) Do Symbiam, a Nokia disponibiliza esses SDKS para baixar no seu site. É bom que o desenvolvedor tenha em mente para quais aparelhos ele deseja implementar e verificar qual a versão disponível para que ele possa baixar o SDK e o emulador correto. O site que contém todas as especificações dos aparelhos juntamente com as versões do Symbian instaladas encontra-se aqui.

Além do SDK, recomenda-se ter um ambiente de desenvolvimento (IDE) para que possa integrar o compilador junto ao emulador do celular de forma que possa automatizar o processo de desenvolvimento para Symbiam C++. Há um compilador WINSCW, que é necessário para desenvolver aplicativos para o emulador do S60 para PCS. Esse compilador já está integrado em uma IDE, como por exemplo o Carbide.C++ IDE. Felizmente, o Carbide.C++ é uma ferramenta gratuita e disponível pela Nokia. A IDE atualmente está desenvolvida em 2 versões de modo a se integrar com as principais IDEs de desenvolvimento conhecidas hoje : Visual Studio e Eclipse.

Para baixar o Carbide C++, aqui estão os links:
Para esse tutorial, iremos utilizar o Carbide.c++ Express integrado ao Eclipse. Bom lembrar que existem diversas versões do Carbide.c++, então bom procurar a versão EXPRESS, já que a mesma é gratuita para aqueles que estão iniciando o desenvolvimento para esse tipo de plataforma. Após instalar o Carbide C++ Express é necessário também instalar o ambiente Perl (Perl enviroment) para que se possa iniciar a execução da IDE.
Para aqueles que terão dificuldade em instalar o Carbide (como eu tive quando fiz pela primeira vez sozinho sem saber da existência desse vídeo), a Nokia disponibilizou um vídeo para download que explica passo a passo a instalação do carbide no seu Eclipse e como instalar o Perl e ambientes que forem necessários. Logo, recomendo a todos que baixem esse vídeo !

Para baixar o aplicativo desenvolvido no seu aparelho, tem que baixar também o Nokia PC Suite que faz a conexão do seu aparelho com o PC permitindo a transferência de arquivos.



2.2 Vamos ao nosso Hello World !

Primeiramente, irei explicar passo a passo como colocar em funcionamento o nosso primeiro Hello World no emulador do celular com Symbian OS. Usaremos o Carbide.C++ Express integrado ao Eclipse como base desse tutorial. As explicações mais a fundo do que significa esses arquivos e estruturas ficarão para o nosso próximo tutorial.


2.2.1 Introdução ao Carbide.c++

O Carbide.c++ tem a vantagem de usar o framework da IDE do Eclipse através de módulos de Pluggin. Nokia e o Symbian criaram plug-ins com o suporte de desenvolvimento para o Symbian OS. Esses pug-ins modificam a tela da IDE que já vem como padrão o ambiente de desenvolvimento Java, adicionando novas ferramentas e funcionalidades à IDE. A figura 1 abaixo mostra a tela principal do Carbide.c++. Notem que o ambiente para C/C++ é bem semelhante ao ambiente Java no Eclipse.

Figura 1: Ambiente do Carbide.c++ no Eclipse


Entretanto, o Carbide.c++ também mudou alguns aspectos da interface do Eclipse. Embora o visual seja o mesmo, a IDE é totalmente voltada para C++. Para os menus, configurações o Carbide.c++ foi totalmente adaptado para o Symbian OS C++. Isso permitiu que a IDE se tornasse uma ferramenta bem completa que dá suporte a diversos SDK - desde o S60 ao UIQ tanto na parte de compilação quanto Debugging.


2.2.2 Iniciando o desenvolvimento com o Carbide.c++

O carbide.c++ provê vários menus que ajudam a iniciar um projeto Symbian C++. Para iniciar, selecione File -> New do menu, e os itens de projeto mostrados na figura 2 abaixo, serão exibidos.


Figura 2 : Menu Inicial do Carbide.c++ Express

Para construir um projeto usando um dos utilitários de ajuda providos pelo Carbide.c++, selecione o item Symbian OS C++ Project. Uma nova tela de ajuda de projeto New Symbian OS C++ Project irá ser exibida, conforme a figura 3. Um número de opções são dispostas para geração de Aplicativos genéricos para o SYmbiam OS, inclusive com interface gráfica. Como pode-se ver na figura 3, os vários tipos de projetos que podem ser criados dependem dos SDKS instalados no PC. Iremos escolher o S60 3rd Edtion Gui Application (Lembrando que essa opção só estará disponível se você instalou o SDK com a versão 3rd, se for outra versão aparecerá S60 nrd Edition, etc). Com essa opção, o sistema cria um simples Hello World GUI, o qual através desse código pode-se mostrar como usar a interface gráfica e funcionalidades do S60.

Figura 3: Novo Projeto do Carbide.c++ Express


A janela de tutorial de ajuda de Novo Aplicativo 3rd Ed. GUi é exibido. Esse é o primeiro passo, onde deve ser definido o nome do projeto e o local onde os arquivos serão armazenados no PC, como mostra a figura 4.

Figura 4: Tela de Ajuda de Definição do Projeto


Na próxima etapa, a tela de ajuda pergunta ao desenvolvedor qual SDK vai ser utilizada para compilar o aplicativos. Como mostrado na figura 5, ele exibe todos os SDKS instalados no PC, embora para esse caso o emulador seleciona o SDK mais recente (S60_3rd_FP1_4) como configuração a ser utilizada. Com isso, as opções de emulador de debug e aparelho também são selecionadas automaticamente permitindo que o aplicativo possa ser compilado e testado em emuladores S60 3rd Edition e conseqüentemente rodar em tais dispositivos.

Figura 5 : Configurando o SDK do Projeto


Chegando nesse ponto, é possível clicar em FINISH e criar o projeto. Para criar projetos mais avançados, a tela de ajuda tem mais 2 passos. Esses passos permite que possam ser escolhidos o UID da aplicação (Explicado em um próximo tutorial) e a localização de vários componentes do projeto e outras opções específicas a serem selecionadas. Para esse projeto em especial, esses passos foram pulados. Quando o botão de Finish é clicado, o Carbide.c++ constrói o projeto, criando todos os componentes do mesmo. Uma vez criado, os arquivos são exibidos em 2 views, A View C/C++ Projects e a View Symbian Project Naviagator. A View C/C++ Projects, mostrada na figura 6, contém toda a estrutura de pastas que armazena toda a estrutura do MyFirstProject, como os códigos-fonte do aplicativo e a pasta de configuração do sistema Symbian (SIS) contendo suas definições.

Figura 6: Estrutura de Arquivos do Projeto


A View Symbian Project Navigator, exibido na Figura 7, provê acesso à definição do projeto como os arquivos de configuração do Symbian como os MakeFiles (makmake files e o ícone da aplicação Icons_scalable_dc.mk.

Figura 7: View de Arquivos de Configuração do Projeto



2.2.3 Codificando seu Projeto

Nessa etapa, uma aplicação funcional foi construída a partir da tela de ajuda do Carbide.c++. Esse aplicativo pode agora ser modificado para gerar um aplicativo conforme o desejo do desenvolvedor. Para isso, há diversas tarefas que devem realizadas, os quais incluem:

  • Editar os códigos-fonte (.cpp) e os arquivos- cabeçalho (.h)
  • Compilar o projeto e criar um código executável
  • Testar o código executável em um emulador.
  • Empacotar a aplicação em um instalador para ser colocado no celular.
2.2.3.1 Editando o código- fonte e arquivos-cabeçalho

Para implementar uma determinada funcionalidade do seu aplicativo, é necessário editar o código fonte e os arquivos cabeçalho. Os arquivos-fonte encontram-se armazenados na pasta /src e os arquivos cabeçalho - incluindo os *.h e *.hrh - estão na pasta /inc, como mostrados na figura 6. Selecionando um arquivo da View C/C++ Project, abre-se uma tela de edição de código como mostrado na figura 8.


Figura 8: Editando o Código - Fonte


O editor Carbide.C++ permite que possa escrever códigos Symbian C++ de forma eficiente e rápida. Ele dispõe de um utilitário assistente que permite facilitar o acesso à variável criada e a chamada de métodos da API do sistema. Essa estrutura de todo o código fonte é exibido no Outline View mostrado na figura 9. Ele é importante para revisar a estrutura do código de forma rápida e pular para partes específicas do código de forma eficiente.

Figura 9 : Estrutura do Código- Fonte da Aplicação



2.2.3.2 Compilando seu projeto

O projeto criado usando um dos utilitários de ajuda do Carbide.c++ contém todas as informações necessárias para compilar o projeto. Uma vez editado seu código-fonte, o desenvolvedor precisa definir quais plataformas - alvo ele deseja compilar. Selecionando Project -> Build All Targets do Menu, permite compilar para todas as plataformas disponíveis. Inicialmente, é mais fácil compilar apenas para o emulador. Isso pode ser facilmente feito através do toolbar, mostrado na figura 12, no menu de contexto do projeto.

Figura 10: Menu de Compilação do Target - Alvo


Quando a plataforma-alvo é o emulador, a View Console provê todos os detalhes do processo de compilação. Quaisquer problemas identificados são exibidos na View de Problems, como mostrado na figura 11. Essas 2 Views são os primeiros lugares de indicam se teve alguma falha durante a compilação do projeto. Clicando em uma das mensagens da View Problems, abre-se o editor na linha de código referente ao problema encontrado.

Figura 11: Console de Problemas durante a Compilação do Aplicativo


O processo de compilação é gerenciado por um arquivo de projeto: o makmake file. Esse arquivo pode ser acessado da View SYmbian Project Navigator (ver Figura 7). O editor de informações de compilação e o editor MMP permitem que o desenvolvedor possa alterar quaisquer aspectos do processo de compilação do projeto, incluindo funcionalidades como o linkador do C++ (gera o executável) e o compilador como mostrado na figura 12. Já que o Carbide.c++ usa a estrutura padrão para criação de arquivos de configuração (makmake files) para controlar o processo de compilação, é possível criar tais arquivos tanto usando o editor do Carbide.c++ ou via linha de comando. O uso do Carbide.c++ é interessante quando deseja automatizar a criação de tais arquivos durante o desenvolvimento.


Figura 12: Editando os arquivos de configuração do Projeto

2.2.3.3 Testando seu projeto

Uma vez que o aplicativo foi compilado com sucesso, o próximo passo é testá-lo no emulador S60. Aplicativos podem rodar diretamente a partir do botão RUN encontrado no toolbar, conforme mostrado na figura 13 ou a partir do menu de contexto do projeto.

Figura 13: Testando seu Aplicativo no Emulador


Usando esse simples método de inicialização de execução, uma tela do emulador será exibida e o aplicativo precisa ser localizado na pasta Installed folder antes de ser executado. O modo como os projetos são executados é através da configuração de execução, um conjunto de parâmetros - como o nome do projeto a ser utilizado, a localização do emulador, as variáveis de ambiente - que definem como projeto deve ser executado no emulador. A figura 14 exibe a configuração padrão quando o botão RUN é clicado a partir do toolbar.

Figura 14: Tela de Configuração para Execução do Projeto no Emulador


Enquanto a configuração padrão criada é adequada para maior parte das circunstâncias, configurações customizadas podem ser úteis. Uma configuração customizada é criada a partir do menu de contexto do projeto a partir da seleção Run As - Run.

Assim que clicado o botão RUN da tela de configuração de execução, o emulador do aparelho é exibido na tela e o aplicativo é posto em execução. O Hello World é exibido e você tem sua primeira aplicação desenvolvida em Symbian C++.



Figura 15: Emulador em Execução



3. Conclusão

Como pode-se ver o processo de desenvolvimento de um aplicativo usando a ferramenta Carbide.C++ é bem fácil e facilita bastante o teste em emuladores. Graças a uma interface amigável e a sua integração ao SDK e aos emuladores da Nokia, o processo de desenvolvimento é bastante simplificado. A maior dificuldade encontra-se no entendimento da sintaxe do Symbian C++ e dos arquivos de configuração para geração dos arquivos executáveis. Nos próximos tutoriais iremos explorar mais a sintaxe do Symbian C++ e a estrutura de um aplicativo SYmbian C++, a depuração de um código C++ usando o Carbide.C++ e a geração de um arquivo executável para um dispositivo real.

4. Referências

  • The Eclipse Foundation — www.eclipse.org.
  • The Eclipse CDT (C/C++ Development Tools) Project — www.eclipse.org/cdt/.
  • The Forum Nokia Carbide Development Tools for Symbian OS C++ Web page —www.forum.nokia.com/carbide_cpp.
  • The Carbide section of the Forum Nokia Wiki - http://wiki.forum.nokia.com/index.php/Category:Carbide

  • Plug-ins:
    • The Eclipse project’s repository — www.eclipse.org/downloads/index_topic.php.
    • Eclipse Plugin Central (EPIC) — www.eclipseplugincentral.com.
    • Eclipse Plugins — www.eclipse-plugins.info/eclipse/plugins.jsp.

3 comentários:

Anônimo disse...

Olá primeiramente gostaria de lhe agradecer pelo otimo tutorial.
Bom fiz tudo como dito e ainda segui tambem as orientações do video e mesmo assim quando ghega na etapa de SELEST A TYPE OF PROJECT e no campo CHOOSE A TEMPLATE não esta aparecendo a pasta (S60 rd Edition e nem a pasta UIQ)>FIGURA 3< e tambem na hora de escolher o SYMBIAN SDK >FIGURA5< não aparece nada no campo.
Vc sabe o que esta errado...

Meaningful thoughts disse...

Olá,

Você mencionou:

"Existe um tutorial bem interessante disponível por Elton Oliveira (um dos integrantes do nosso grupo de estudo de Symbian) onde o link para o mesmo se encontra aqui"

Poderia fornecer esse link para que eu possa pegar o tutorial da linguagem?

Att.

Neill

Unknown disse...

E ai, blz

Estou baixando ainda o SDK...

Será que vo conseguir fazer os passos do seu tutorial no ubuntu?

flw

top