Desenvolvendo aplicações Python para Symbian OS
Este artigo objetiva-se introduzir o leitor ao desenvolvimento de aplicativos móveis em smartphones (telefones inteligentes) embarcados com o sistema operacional Symbian Série 60 (S60). A plataforma de desenvolvimento abordada neste artigo é o Python S60, por ser rápida, simples e fácil torna-se a escolha ideal para a criação de aplicativos para dispositivos na plataforma Symbian S60.
Você não gostou da qualidade deste conteúdo?
(opcional) Você gostaria de comentar o que não lhe agradou?
Desenvolvendo Aplicativos Python para Symbian OS
Introdução à programação Python para celulares Symbian S60 - Parte 01
Marcel Pinheiro Caraciolo
O número de telefones inteligentes (smartphones) no mercado vem crescendo gradativamente nos últimos anos, devido, principalmente, às novas maneiras de como as pessoas estão se comunicando, interagindo e trabalhando. Há uma necessidade por provimento de serviços e acesso às informações de forma eficiente e rápida, especialmente no âmbito de dispositivos móveis. Existem, atualmente, mais de bilhões de usuários vinculados a alguma operadora telefônica móvel e a tendência é aumentar ainda mais esses números. Este aumento do número de aparelhos móveis provoca uma demanda por novos serviços e aplicativos em variadas plataformas nos quais eles são desenvolvidos e distribuídos. Hoje, o telefone móvel é considerado como um objeto de posse "pessoal e individual", disponibilizando ao usuário recursos multimídia, listas de tarefas, álbuns de fotos e vídeos capturados e acesso a internet.
Desde o início desta tendência, diversos desenvolvedores de software começaram a escrever aplicativos para plataformas móveis, a fim de lucrar em cima desse novo mercado emergente. Driblando as desvantagens desse vasto campo de possibilidades na área de dispositivos móveis que são bem conhecidas: poder de processamento limitado, telas reduzidas, limitações de memória, dentre outros fatores que passam a exigir uma maior habilidade por parte dos desenvolvedores para a construção de aplicativos eficientes e usáveis.
Diferentes plataformas foram estabelecidas por diversos fabricantes de dispositivos móveis. Algumas desenvolveram o seu próprio sistema operacional, enquanto outras decidiram utilizar sistemas operacionais de terceiros. Essas plataformas podem permitir aos desenvolvedores utilizarem a API nativa do sistema para acesso às diversas funcionalidades e recursos dos aparelhos no desenvolvimento dos seus aplicativos. Dentre esses sistemas, o Symbian OS tornou-se uma das principais plataformas neste mercado de smartphones. Ela é um sistema operacional proprietário para dispositivos móveis desenvolvido pela Symbian e custeado por um consórcio formado por empresas como Nokia, Sony Ericsson e Samsung. Atualmente, ela pertence inteiramente à Nokia e existem informações de que o código fonte dele será disponibilizado como open-source. Mais informações, podem ser encontradas no site oficial do Symbian.
Symbian S60
A linguagem além de ser bastante simples, através da rápida produção de aplicativos, oferece novas oportunidades de desenvolvimento de aplicativos móveis. Não somente os iniciantes na plataforma irão beneficiar-se dessas oportunidades, como também o desenvolvedores experientes que poderão usufruir desse meio para desenvolvimento ágil e poderoso de aplicativos móveis.
Python
Python é uma linguagem de programação de script orientada a objetos, disponível para diversas plataformas e ambientes. O código gerado é interpretado em tempo de execução, diferentemente das linguagens compiláveis como C++, que é compilada para a plataforma-alvo antes da sua execução. A linguagem em questão permite que programas sejam escritos de forma compacta e legível, possibilitando o rápido aprendizado. Os códigos escritos em Python são geralmente menores em comparação a códigos equivalentes em C++ ou Java devido ao seu mecanismo de abstração de tipos o qual permite expressar operações bastante complexas com apenas um comando. Os comandos são agrupados por indentação e não há necessidade de declaração de variáveis.Um pequeno trecho de código é ilustrado na Listagem 1, onde está demonstrado a definição de uma função e em seguida a sua chamada para execução. Como pode ser observado, as variáveis são usadas sem a necessidade de declaração explícita e a delimitação de um bloco de código (while-loop) é definido pela indentação sem a necessidade de chaves ({ }) comuns em linguagens de programação como Java e C++.
Listagem 1. Definição de uma função em Python
1. #define uma função
2. def exponencial (n,exp):
3. a = 1
4. while a < exp:
5. n = n*n
6. a = a+1
7. print n
Listagem 2. Definição de uma classe em Python
1. #define uma classe
2. class Pessoa:
3. idade = 23
4. def nome(self):
5. return ‘Ola Pessoa!’
6.
7. x = Pessoa()
O desenvolvimento com PyS60 é baseado no kit de desenvolvimento para plataformas Série 60 (S60 SDK), que é geralmente usado para escrever os códigos nativos em C++ para o Symbian OS. O SDK vem junto com um emulador, no qual os aplicativos podem ser testados. Apesar de existir um emulador para celulares S60 no SDK C++ da Nokia, ele ainda não implementa todas as funcionalidades disponíveis em um aparelho real (tais como câmera, comunicação via GSM ou conectividade Bluetooth), portanto, se possível, é recomendável dispor de um aparelho S60 real se seu aplicativo requerer acesso a essas funcionalidades.Há duas alternativas de testar os scripts desenvolvidos no PC. Uma alternativa é usar o emulador do aparelho S60. A segunda seria enviar os scripts diretamente para o aparelho através de alguma comunicação PC-Celular (Bluetooth, Cabo de dados, etc). Em ambos os casos o pré-requisito é ter instalado o interpretador PyS60.
Instalando SDK/Emulador
Para iniciar o desenvolvimento na plataforma PyS60, é necessário ter instalado o SDK (Kit de desenvolvimento) para aparelhos S60. O Python para S60 está disponível para S60 2nd e 3rd Edição, mas é recomendável instalar a versão do SDK apropriada de acordo com o aparelho-alvo a se desenvolver. Por exemplo, se for desenvolver para o Nokia N73, deve-se instalar SDK Symbian 3rd Edition, que é a versão do sistema operacional instalada neste aparelho.
Atualmente existem 3 "edições" da Serie 60 e em cada uma delas uma versão diferente do Symbian é usada. Dentro de cada edição ainda existe uma subdivisão de Feature Packs para distinguir entre dispositivos que possuem determinadas funcionalidades (ex. Wi-Fi, Bluetooth, Câmera, etc.). Uma lista completa das edições, FPs e dispositivos podem ser obtidas para consulta em http://www.forum.nokia.com/devices/matrix_all_1.html.Para instalação do PyS60 SDK, é necessário extrair seus arquivos em uma pasta. Os arquivos extraídos consistem em um arquivo compactado .zip (sdk_files.zip) e um script de desinstalação do emulador. O sdk_files.zip contém toda a estrutura necessária para que o emulador do PythonS60 possa ser executado e deve ser extraída na pasta onde está instalado o SDK do Symbian S60. Sugere-se que antes de mover os arquivos diretamente, extraia todos os arquivos em uma pasta temporária e depois mova todos os diretórios que estão dentro da pasta epoc32 (descompactada) para o diretório correspondente dentro do S60 SDK (Ex:C:\Symbian\X.X\S60_3rd_FP1\Epoc32 ou o diretório equivalente dependendo da versão de SDK que você instalou). Por exemplo, para o SDK 2nd FP2, deve-se extrair o sdk_files.zip para o diretório “c:\symbian\8.0a\s60_2nd_fp2\epoc32”. Já para o 3rd Ed FP2 o diretório padrão seria: "C:\Symbian\9.3\S60_3rd_FP2_Beta\epoc32".
Para testar a instalação do PyS60 SDK, inicie o emulador S60 (S60 Developer Tools -> nRdEditionSDK -> C++ Beta -> Emulator). Aguarde até que o emulador exiba todos os ícones na tela. Com o emulador em execução, navegue até a pasta Installed (Figura 1) através dos botões direcionais do aparelho representado pelo emulador. Clique no botão central do telefone e navegue até o aplicativo Python (Figura 2). Para iniciar o interpretador Python, clique em Options -> Open.
O interpretador do Python entrará em execução, exibindo algumas informações sobre a versão e configuração até chegar ao console >>, que significa que o emulador aguarda os comandos do usuário. Existem diversos aplicativos prontos para execução que vê junto ao PyS60 SDK. Para testar um deles, clique em Options -> Run Script, selecione um dos aplicativos e aguarde o aplicativo demonstração ser executado (Figura 03).
Instalando no Celular
Para instalar o PyS60 no seu celular você precisa baixar a versão adequada do PyS60 para seu celular. Será necessário baixar dois arquivos com a extensão SIS:
PythonForS60_1_4_4_VERSAO.SIS
Esse pacote tem o interpretador do Python propriamente dito.
PythonScriptShell_1_4_4_VERSAO.SIS
Esse pacote disponibiliza a opção "Python" no menu "Aplicativos" do seu celular e além de trazer alguns exemplos de código.
Testando programas PyS60
Listagem 4. Definição Olá Mundo
1. #Exemplo 01 - olaMundo.py
2. import appuifw
3. data = appuifw.query(u"Digite o seu nome:", "text")
4. appuifw.note(u"Olá " + data + " !", "info")
Salve o arquivo no diretório "\...\S60_3rd_FP2_Beta\epoc32\winscw\c\python” (esse caminho pode variar conforme a versão ou diretório de instalação do seu S60 SDK. No aparelho celular o equivalente seria: C:\Python ou E:\Python - no caso do seu celular possuir um cartão de memória). É nesse diretório que se encontram os códigos-fonte dos aplicativos demonstração e onde deve-se colocar os scripts desenvolvidos para que o emulador possa reconhecê-los. Lembrando também que o formato salvo do arquivo deve ser .py (Exemplo: HelloUser.py).
Figura 6. Tela Inicial do HelloUser.py Figura 7. Tela Final do HelloUser.py
Podemos observar que o desenvolvimento de aplicativos em PyS60 é bastante simples e rápido, visto que, com apenas três linhas de códigos conseguimos construir nosso primeiro aplicativo. Bem diferente de outras linguagens como Symbian C++ que requer uma complexa estrutura de diretórios e arquivos e além disso, da alta complexidade da linguagem em si.
Até a próxima!
Referências
Marcel Pinheiro Caraciolo
Marcel Pinheiro Caraciolo (caraciol@gmail.com) é mestrando do Curso de Pós Graduação em Ciência da Computação pela Universidade Federal de Pernambuco. Interessado em Computação Móvel e Computação Inteligente. Possui blog na área de computação móvel há 3 anos: http://mobideia.blogspot.com

download

