- Download do projeto de exemplo compilado para Palm OS - 4 Kb
- Download do projeto de exemplo compilado para Windows Mobile - 46 Kb
- Download código-fonte do projeto de exemplo - 57 Kb

Introdução
Existem diversas tecnologias para desenvolvimento de softwares para dispositivos móveis, algumas mais apropriadas para PDAs, outras para celulares, algumas que podem ser utilizadas em ambos, enfim, opção é o que não falta. Neste artigo, vamos falar sobre uma tecnologia que vem crescendo, e muito, nos últimos anos e que está se consolidando no mercado como uma das melhores opções para o desenvolvimento para dispositivos móveis, principalmente PDAs, o SuperWaba.
O SuperWaba
O SuperWaba é um projeto brasileiro, criado por Guilherme Campos Hazan, e é baseado no projeto Waba, criado por Rick Wild. O "SW", como é chamado pelos usuários da tecnologia, possui uma sintaxe muito semelhante ao Java (praticamente igual, a única diferença é não possuir a implementação para o comando synchronized), mas não pode ser chamada de Java por questões legais. Por ter esta incrível semelhança, você pode desenvolver aplicativos em qualquer IDE de desenvolvimento para a linguagem Java, como Eclipse e NetBeans, ou ainda com o bom e velho Bloco de Notas, por exemplo.
Podemos executar um mesmo aplicativo desenvolvido com o SuperWaba em PDAs sistema operacional com Palm OS 3.0 (ou superior), Windows CE (HPC 2000, Pocket PC, HPC 211 ou superior), em celulares com Symbian OS 7 (ou superior), em computadores desktop com Windows (Windows 98 ou superior) ou Linux e também em browsers que suportam a tecnologia de Applets (a maioria).
Para desenvolver utilizando o SWSDK (SuperWaba Software Development Kit), você terá que esquecer a API do JavaSE e utilizar a API desenvolvida pela equipe do SuperWaba. Esta API é pequena comparada à API do JavaSE, mas possui muitos recursos e possibilita a construção de aplicações bastante completas, sem necessitar de outras ferramentas para o auxilio.
O SuperWaba possui duas versões, a Community e a Professional, ambas open-source. A primeira está sob a licença GPL, que obriga que o código-fonte de sua aplicação seja disponibilizado publicamente, e a outra está sob a licença LGPL, que permite a construção de aplicativos sem a necessidade de disponibilizar o código-fonte. Existem diferenças na API disponibilizada nas duas versões, enquanto a versão Community possui o "básico" para se desenvolver e versão Professional trás uma série de classes já testadas que auxiliarão, e muito, no desenvolvimento do seu aplicativo. Assim, se você quiser apenas testar a ferramenta e/ou desenvolver pequenos projetos para uso pessoal, a versão Community é perfeita para você. Já para desenvolver aplicativos comerciais o ideal é adquirir a licença Professional.
Ferramentas Necessárias
Para desenvolver softwares utilizando a plataforma SuperWaba, você deverá ter instalado os seguintes componentes em seu computador:
- Java SE Development Kit (JDK) 6u1 ou superior;
- Ambiente de Desenvolvimento Integrado (IDE) Eclipse 3.2.2 ou superior;
- SuperWaba 5.73 Community ou superior.
Caso não possua estes componentes instalados, utilize os links acima para efetuar o download.
Importante: Para efetuar o download do SuperWaba 5.73 Community, você deverá se cadastrar no site para ter acesso ao link de downloads. Ao término do download, basta executar o instalador e seguir os passos. Por padrão, o SuperWaba é instalado na pasta C:\SuperWabaSDK, e esta é a estrutura de diretórios criada pelo instalador:

Configuração do Ambiente de Trabalho (workspace)
Para este, e outros artigos, vamos trabalhar com a IDE Eclipse, e embora exista um plugin chamado SuperWaba-IDE que auxilia no processo de configuração do ambiente, neste artigo mostraremos como configurar tudo passo-a-passo, para que você saiba o que está sendo feito para construir seu ambiente de trabalho. A instalação da IDE não é abordada neste artigo.
Inicie o Eclipse, para darmos início à configuração da IDE. Acesse o menu File > New > Project.

Na lista de seleção de tipos de projetos, escolha o item Java Project, e aperte o botão Next.

Em seguida, dê um nome ao seu Projeto e clique novamente no botão Next. Neste exemplo, o nome do projeto é OlaMundoSW.

Na guia Libraries, clique no botão Add External JARs para incluir a API do SuperWaba no seu projeto. Procure os seguintes arquivos:
- C:/SuperWabaSDK/lib/SuperWaba.jar;
- C:/SuperWabaSDK/lib/SuperWabaTools.jar.

O próximo passo é anexar o código-fonte e também o javadoc (documentação) da API do SuperWaba, para que possa servir de consulta rápida para nossos projetos. Vamos expandir o item "SuperWaba.jar", clicando no sinal "+" que está ao lado esquerdo da linha "SuperWaba.jar". Em seguida selecione Source attachment, clique em Edit e selecione o diretório C:/SuperWabaSDK/src/java.

Em Javadoc location, clique em Edit e selecione o diretório file:/C:/SuperWabaSDK/docs/html/, e clique em Finish.

Criação do Exemplo "Olá Mundo SW"
Vamos agora, criar um diretório para "armazenar" nossos códigos. Clique com o botão direito sobre o projeto, vá em New > Source Folder e dê um nome para o diretório. Neste exemplo, o nome deste diretório é src.

Após a configuração do ambiente, vamos criar um pequeno exemplo para que possamos verificar se nossa configuração esta correta e, posteriormente, executar o aplicativo diretamente do Eclipse e gerar os arquivos para a instalação do mesmo no PDA.
Clique com o botão direito sobre o diretório que conterá os fontes e vá em New > Class.

Embora o foco do artigo não seja explicar como funciona a estrutura de um aplicativo SuperWaba, vale lembrar que uma aplicação desenvolvida com o SuperWaba deve ter uma, e somente uma, classe que extenda a classe MainWindow, que pertence ao namespace waba.ui. Esta será a interface entre a VM (Máquina Virtual) e o seu programa SuperWaba. Portanto, para continuarmos a construção do nosso exemplo, vamos criar uma classe, por exemplo, com o nome OlaMundoSW que irá extender a classe waba.ui.MainWindow. Após informar os valores dos campos Name e Superclass, clique em Finish.

Após a criação da classe OlaMundoSW, vamos criar o construtor da classe, especializar o método onStart e também o método onEvent. O método onStart será executado após a máquina virtual "instanciar" a classe OlaMundoSW e estará encarregado de adicionar os controles na tela. Já o método onEvent, é responsável pela manipulação dos eventos que correrão no aplicativo. Em nosso exemplo, ele será responsável por "capturar" o clique no botão e fechar o aplicativo.
O código abaixo, mostra a construção completa da classe OlaMundoSW
import waba.ui.Button;
import waba.ui.ControlEvent;
import waba.ui.Event;
import waba.ui.Label;
import waba.ui.MainWindow;
public class OlaMundoSW extends MainWindow {
private Label lblOla = null;
private Button btnClose = null;
public OlaMundoSW()
{
// Executa o construtor da classe MainWindow (super classe)
super();
}
public void onStart()
{
// Executa o método onStart da classe base (super classe)
super.onStart();
// Cria um objeto do tipo "Label" para exibir um texto na tela
lblOla = new Label ("Olá Mundo, sou um novo aplicativo SW!");
// Cria um objeto do tipo "Button", para exibir o botão "Fechar"
btnClose = new Button("Fechar");
// Posiciona o Label com a mensagem no centro da tela,
// tanto na horizontal quanto na vertical
add(lblOla, CENTER, CENTER);
// Posiciona o Label com a mensagem no centro da tela,
// tanto na horizontal, e no final da tela na vertical
add(btnClose, CENTER, BOTTOM);
}
public void onEvent(Event event)
{
// Executa o método onEvent da classe base (super classe)
super.onEvent(event);
// Um botão foi clicado?
if (event.type == ControlEvent.PRESSED)
{
// É o botão btnClose?
if (event.target == btnClose)
{
// Finaliza a aplicação
exit(0);
}
}
}
}
Feita a implementação do exemplo, vamos criar uma configuração para que possamos executá-lo diretamente do Eclipse, no Windows, em forma de Applet. Vá em Run > Run.... Clique com o botão direito em cima de Java Application e depois em New.

Primeiro, vamos dar um nome para nossa configuração, neste exemplo, chamo de "OlaMundoSW - Windows". Na guia Main definiremos o projeto (já estará preenchido por padrão) como "OlaMundoSW", o nome da Main Class como waba.applet.Applet e vamos habilitar o checkbox cujo o label tem o seguinte conteúdo "Include libraries when searching for a main class", para que o Eclipse consiga localizar a classe que definimos como a classe principal.

Na guia Arguments, precisamos definir os argumentos necessários para a execução do projeto no Windows. Os argumentos utilizados podem ser:
- /w - Largura (Width) em pixels;
- /h - Altura (Heigth) em pixels;
- /scale - Escala (de 1 a 4);
- /bpp - Bits por pixel (2, 4, 8 ou 16);
- /t - Título na janela que será aberta.
- ClassName - Nome da classe que extende a
MainWindow.
O último argumento corresponde ao nome da classe que extende a MainWindow, ou seja, OlaMundoSW. Neste exemplo, utilizaremos os seguintes argumentos, onde defino que o Applet será executado com tamanho de 240 x 320, escala 1, 16 bits por pixel, e com o título "OlaMundoSW_Windows":
/w 240 /h 320 /scale 1 /bpp 16 /t OlaMundoSW_Windows OlaMundoSW
Após definir os argumentos, clique em Apply e depois em Run.

Neste momento, o projeto é compilado e executado a partir do Windows, em forma de Applet. É dessa forma que os projetos são executados durante o processo de desenvolvimento. Quando o projeto chega ao fim, e já se tem uma versão estável, geramos versões específicas para a(s) plataforma(s) onde desejamos executar nosso aplicativo. Em outras palavras, durante o processo de desenvolvimento não precisamos utilizar emuladores ou PDAs. Podemos efetuar todos os testes no Windows, executando a aplicação em forma de Applet, até chegarmos à versão que será distribuída.

Geração dos Executáveis para cada Plataforma
Agora já temos nosso ambiente de trabalho configurado. O próximo passo é gerar os arquivos que serão instalados nos PDAs, por exemplo, gerar o arquivo .PRC para Palm OS e o .CAB para Windows Mobile. O processo de geração dos executáveis para cada plataforma, requer a criação de um arquivo XML que descreve como o projeto deve ser compilado e para quais plataformas. A descrição detalhada deste arquivo XML não é descrita neste artigo, no entanto foi disponibilizado um exemplo deste arquivo XML, e explico os principais itens que devem ser modificados em outros projetos. Efetue o download do arquivo XML de exemplo, e grave em uma pasta de seu computador que seja diferente da pasta do projeto. Em seguida, clique com o botão direito sobre o projeto e vá em Import.... Expanda o item General clicando no sinal "+" à esquerda de "General", clique em File System e depois em Next. Selecione o diretório onde foi gravado o arquivo XML acima citado e importe-o para dentro de seu projeto selecionando-o dentro da estrutura do diretório e clicando em Finish.

Abra o arquivo importado para que possamos analisar o que devemos mudar neste e em novos projetos. Na tag project altere o atributo name para o nome do seu projeto, e o atributo basedir para o diretório anterior ao diretório do seu workspace. Logo abaixo, nas tags property vamos definir a classe que extende a classe MainWindow e também o diretório do nosso workspace. Se você utiliza o produto LiteBase, que é um SGBD (Banco de Dados) fornecido pela equipe do SuperWaba, apenas retire o comentário que existe no arquivo.
Para executar a sequência de comandos definidas no arquivo XML clique com o botão direito sobre o mesmo (no Package Explorer), vá em Run As Ant Build (o atalho é Alt+Shift+X,Q).

Neste exemplo, serão gerados os arquivos executáveis a serem instalados em PDAs Palm OS e Windows Mobile. Este arquivos serão gerados na pasta "[caminho do workspace]/[nome do projeto]/dist". Na figura abaixo, pode-se notar realçados na cor verde, os arquivos utilizados para a instalação no Windows Mobile (.CAB) e em cor azul os arquivos utilizados para a instalação no Palm OS (.PRC e .PDB). Se fosse necessário gerar executáveis também para a plataforma Symbian OS, bastaria configurar o XML e recompilar o projeto, lembrando que as APIs para trabalhar com a plataforma Symbian estão disponíveis apenas na versão Professional do SuperWaba.

Instalando a Máquina Virtual do SuperWaba no Simulador Palm OS
Os arquivos utilizados para a instalação da Máquina Virtual SW (VM) variam de dispositivo para dispositivo, neste artigo vamos instalar a VM do SuperWaba no Palm OS Garnet 5.4 Simulator (PSIM), para simular a execução do exemplo na plataforma Palm OS 5.0, e também instalaremos a VM PDA Pocket PC, para demonstrar a execução da aplicação na plataforma Pocket PC / Windows CE.
Acesse a pasta C:\SuperWabaSDK\lib\vm para visualizar os diretórios de cada uma das plataformas e também o diretório xplat que contém os arquivos comuns a todas elas.
Execute o Palm OS Simulator, e dentro da pasta C:\SuperWabaSDK\lib\vm, acesse o diretório xplat e, literalmente, arraste o arquivo SuperWaba.pdb para cima do simulador. Em seguida, novamente dentro da pasta C:\SuperWabaSDK\lib\vm acesse o diretório palm\68k\PalmOS5_or_4_with_16bits_screen e arraste os arquivos SuperWaba.prc e SWNatives.prc para o simulador.
Após a instalação, é recomendado reiniciar o simulador, por isso, clique com o botão direito sobre o ele, vá em Reset e clique em Soft, para que que o simulador inicie as configurações do novo software.

Após reinicializar o simulador, na categoria Unfiled você verá o ícone de um aplicativo com o logotipo do SuperWaba, execute este aplicativo e veja informações sobre a máquina virtual que você acabou de instalar.

Instalando o programa exemplo no Simulador Palm OS
Após instalar a máquina virtual do SW, acesse o diretório dist, que está dentro do diretório do projeto, e arraste os arquivos com extensão .PDB e .PRC para cima do simulador (Em nosso exemplo, os arquivos são OlaMundoSW.prc e OlaMundoSW.pdb). Novamente, reinicialize o simulador, para completar a instalação do nosso exemplo. Finalizada instalação, assim como aconteceu com a VM, será mostrado um ícone correspondente ao aplicativo do nosso projeto. Execute esta aplicação e veja o resultado.

Instalando a Máquina Virtual do SuperWaba no em um PDA Pocket PC
Já sabemos como testar o nosso aplicativo diretamente no Eclipse e também no Palm OS Simulator, agora vamos ver como é feita a instalação em um PDA com Pocket PC / Windows CE. Neste exemplo, mostro a instalação do SuperWaba em um PDA iPAQ Pocket PC h2210.
Para instalar o SuperWaba, já com o PDA conectado ao seu PC, apenas acesse a pasta SuperWabaSDK\bin\installers\vm\ce e execute o arquivo _CEinstall-RunMe.bat.
Instalando o programa exemplo no PDA Pocket PC
Para transferir o exemplo para o PDA vá à pasta dist do nosso projeto e execute o arquivo OlaMundoSW_Install.bat e a instalação será feita automaticamente.
Lembre-se que você deve ter o Microsoft ActiveSync instalado no seu PC!
Conclusão
Este artigo teve como objetivo ensinar ao desenvolvedor a configurar um ambiente de desenvolvimento SuperWaba e mostrar como fazer o deploy (distribuição / instalação) da aplicação desenvolvida.
Nos próximos artigos, vamos desenvolver um pequeno aplicativo com duas "pontas", uma em SuperWaba (PDA) e outra utilizando Java (retaguarda).
Abraço e até a próxima.
Histórico
- 01/07/2007 - Primeira versão deste artigo.
Sobre o Autor
José Volmei Dal Prá Junior é Analista de Sistemas, Bacharel em Ciência da Computação pela UnoChapecó, e Pós Graduando em Desenvolvimento de Software Com Java pela Unoesc Xxe. Trabalha atualmente com as tecnologias Progress, Java (SE e EE) e SuperWaba.
Veja o todos os artigos publicados por José Volmei Dal Prá Junior no PDAExpert.
Artigos Relacionados
15 Comentários »
Comentários via RSS TrackBack URI
-
Marco Zoqui em 05/07/2007 15:03
Excelente tutorial, obrigado.
Após o incentivo, configurei o netbeans com a biblioteca do superwaba, e pude simular com sucesso o seu código.
Ela rodou bem dentro da IDE, através de applet, porém após instalar (tbem com sucesso) em um symbiam OS (nokia e92)
nao consegui fazer com que a tela fosse mostrada.
Quando o usei o warp, um warning foi lancado dizendo que o pdb poderia ser usado, porém meu sdk era superior ao 1.3 e eu deveria usar o 1.1.
O Exegen funcionou sem problemas…Não sei se os problemas estao relacionados, vc tem uma idea?
-
Jr Dal Pra em 05/07/2007 18:11
Cara, não saberia te dizer. Até mesmo porque eu nunca fiz testes com a plataforma Symbian, pois meu foco sempre foi PDAs com Windows e Palm OS. Infelizmente não poderei ajudar. Ats, Junior.
-
Fernando Ribeiro em 25/08/2007 19:21
Consegui executar normalmente o progrma no eclipse, porém não consegui gerar os arquivos .CAB para instalar em meu PDA. Baixei o arquivo XML executei o procedimento e nada. O que pode esta dando errado.
Meus diretorios
—- C:\SuperWaba\GPL_SuperWabaSDK\
——————————————————- lib
——————————————————- docs
——————————————————- src
——————————————————- binC:\Documents and Settings\Ribeiro\workspace
-
Fernando Ribeiro em 26/08/2007 23:15
Fiz todo o procedimento, mas quando da criação dos arquivos para instalação no PDA os arquivos .CAB não são gerados no diretorio \dist. Quando o .XML é executado da o seguinte erro:
BUILD FAILED
C:\Documents and Settings\Ribeiro\workspace\OlaMundoSW\build_superwaba.xml:52: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDKTotal time: 1 minute 5 seconds
-
Edler Santos em 10/09/2007 15:28
Gostaria se possível uma solução para uma dúvida: Após ter executado o Palm OS Simulator, e arrastado os arquivos SuperWaba.pdb, SuperWaba.prc e SWNatives.prc para o simulador. Reiniciei o simulador e o mesmo apresentou uma mensagem de erro “Sys 0505 (0,60)” e a VM Superwaba não funcionou.
Utilizo como sistema operacional o XP professional, por acaso poderiam me ajudar?
Desde já agradeço!
Edler -
Edler Santos em 11/09/2007 16:21
Prezado Júnior, agradeço pela pronta resposta e agora a VM está funcionando no Emulador. Outra dúvida que tenho é que seguindo teu artigo, minha implementação consegue gerar o arquivo “MinhaClasse.prc”, mas o arquivo “MinhaClasse.pdb” é gerado com 0Kb. E ao arrastar esses arquivos para o Emulador, o sistema me dá a mensagem “dmErrCorruptDataBase” dizendo que o Banco de Dados está corrompido. Já repeti a operação seguindo o artigo várias vêzes, porém ele sempre acusa a mesma msg.
Tem alguma idéia?
desde já agradeço.
Edler -
Robson em 12/09/2007 10:29
Olá, muito bom o artigo!
poderia me recomendar um modelo de palm para trabalhar com sw ?abraços!!!
-
Thiago em 12/09/2007 14:56
Muito bom o artigo. Segui os passos descritos até executar a aplicação no simulador. Porém, a VM me lança a seguinte excessão: “Can’t inicialize application”. O que poderia estar errado.
[]´s
-
Aldo Jean em 25/10/2007 18:08
Prezado Junior,
Quero lhe parabenizar pela atitude e pela legibilidade referente à esse artigo. Todos que executarem os passos descritos no mesmo, conseguirão facilmente chegar até o final com sucesso! Muito Obrigado.
Estava procurando algo semelhante sobre o assunto, pois estou desenvolvendo uma plataforma de coleta de dados de flores, para um projeto de pesquisa que está sendo realizado em parceria com a EMBRAPA-MEIO NORTE, CNPQ e UFCG, chamado: biofertilização de flores com efluentes domésticos.
Quando publicar os artigos relacionados à plataforma de coleta de dados, com certeza irei citar seu nome.Um grande abraço.
-
Bernardo Brandão em 01/11/2007 09:58
O José,
Parabéns pelo artigo, muito bom.
Estou com um problema com minhas aplicações de SW.
Estou usando um PALM TX, e quando tenho qualquer aplicação aberta (até mesmo a interface da VM) e o palm é desligado, quando é ligado novamente o PALM reseta por completo. Isso não acontece com nenhuma outra aplicação do PALM, apenas com SW.
Instalei uma VM chamada PalmOS5_AvoidAutoReset que resolveu este problema, porém a aplicação não funciona corretamente, o que já era de se esperar pois é incompatível com o ARM do TX.Você saberia me dizer como corrigir esta situação?
Abraço
-
José Neto em 20/11/2007 16:32
Amigo, muito bom artigo!!! Mas estou com o mesmo problema de outros comentarios. O PDB gerado está com 0kb. Obrigado pela atenção,
Abraço.
-
Renato Henrique Elias Rosa em 16/02/2008 00:37
Estou com o mesmmo problema do Elder Após ter executado o Palm OS Simulator, e arrastado os arquivos SuperWaba.pdb, SuperWaba.prc e SWNatives.prc para o simulador. Reiniciei o simulador e o mesmo apresentou uma mensagem de erro “Sys 0505 (0,60)” e a VM Superwaba não funcionou.
Utilizo como sistema operacional o XP professional.
Renato H. -
Julio Cesar em 16/02/2008 07:35
Pra acontece o seguinte da erro em todas as linhas, dentro eclipse,
estou usando as ultimas versoes de todos os programas, e nao roda nenhum .jar na minha maq.
que sera que pode ter ocorrido? -
Emerson Moura em 23/03/2008 16:21
Fiz o exemplo como descrito acima, mas quando dou Build meu arquivo build_superwaba.xml está sendo excluido da pasta e da o seguinte erro: Variable references non-existent resource : ${workspace_loc:/OlaMundoSW/build_superwaba.xml}
Alguem sabe o que possa ser ??????
-
Flávio Rocha em 08/08/2008 15:24
Excelente, Junior !
Muito bem explicado.Fiz todos os passos e deu certinho até no emulador.
Usei o emulador do Zire 72.O pessoal que não obtiver algum êxito seguindo o tutorial, é preciso
checar os paths mencionados, pois as vezes pode ficar um pouco diferente dependendo das versões que se está trabalhando.T+ pessoal




Envie seu comentário
ATENÇÃO: A área de comentários deve ser utilizada apenas para dúvidas sobre este artigo. Para dúvidas não relacionadas a este artigo, utilize o Fórum PDAExpert.net.