Artigo WebMobile 9 - Conectividade com SuperWaba

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

Artigo Originalmente publicado na WebMobile 9.

Esse artigo faz parte da revista WebMobile edição 09. Clique aqui para ler todos os artigos desta edição

Capa_WM09_M.gif

imagem_pdf.jpg

Conectividade com SuperWaba

Leitura obrigatória: WebMobile 7, Introdução ao SuperWaba.

 

No último artigo fizemos uma descrição sobre a história do SuperWaba, uma plataforma de desenvolvimento para dispositivos móveis, e também apresentamos uma pequena aplicação demonstrando a sua utilização. Porém, como pudemos notar no artigo “Introdução ao SuperWaba”, o SuperWaba não está restrito simplesmente à construção de interfaces para aplicações de dispositivos moveis, pode ser utilizado para inúmeras outras finalidades, tais como aplicação de força de vendas com envio de pedidos on-line, atendimento interno de clientes de restaurante, contagem de estoque on-line e etc.

Neste artigo, vamos criar uma aplicação baseada no artigo anterior cujo objetivo é prover acesso rápido aos filmes em cartaz nos cinemas mais próximos, onde vamos apresentar diversas novidades, dentre elas: novos componentes visuais (Button, ListBox, Window), a criação de uma aplicação baseada em janelas e também como obter dados via internet utilizando a biblioteca que implementa as funcionalidades do protocolo de comunicação com servidores web.

Os componentes visuais do SuperWaba pouco se diferem de componentes visuais existentes no Swing ou no AWT. Você pode mudar várias de suas características, tais como o texto descritivo, cor, dimensões e posicionamento na tela. Um detalhe curioso está no componente Window, que cria janelas popup que podem ser arrastadas pela tela da mesma forma que arrastamos em um computador normal. Geralmente, esse tipo de funcionalidade não está presente em outros runtimes utilizados em Palmtops. É uma exclusividade oferecida pelo SuperWaba.

Opções de conectividade

Antes de abordarmos a conectividade com a internet, vamos apresentar as opções de conectividade oferecidas pelo SuperWaba:

·         GPS: o SuperWaba dispõe de bibliotecas que permitem o acesso a informações de posicionamento global embutidos em Palmtops, como é o caso dos dispositivos portáteis da Garmim. Com isso, é possível desenvolver aplicativos que lhes auxiliem a identificar rotas para entrega de encomendas, rotas de viagem e etc.

·         USB: você pode desenvolver soluções que acessem a porta USB à qual seu dispositivo está conectado, permitindo sincronismo de dados e etc.

·         Bluetooth: é possível ter acesso à rede Bluetooth. Com isso você pode obter dados de celulares, notebooks e computadores de mesa.

·         Infravermelho: caso você tenha um celular com modem e porta infravermelha, você pode usá-lo em conjunto com o seu Palmtop. Para isso, sua aplicação SuperWaba estabelece a conexão, envia e recebe dados normalmente através deste tipo de conectividade.

·         TCP/IP: como o SuperWaba possui a implementação do protocolo TCP/IP, podemos concluir que o desenvolvedor pode construir inúmeras aplicações de transmissão de dados sobre a internet, tais como clientes de IRC, mensagens instantâneas, clientes de FTP, e-mail e etc.

·         http: baseado na implementação do protocolo TCP/IP, este protocolo possui inúmeras facilidades para comunicação com servidores web, tais como o Apache e o IIS. O protocolo HTPP será o protocolo utilizado neste artigo.

 

O SuperWaba é um projeto bastante ativo, pois novas versões são disponibilizadas a cada mês e novos dispositivos são adicionados à lista de dispositivos que permitem a execução de aplicações desenvolvidas com esta plataforma. Além disso, a comunidade de desenvolvedores de aplicações SuperWaba é muito atuante, contribuindo com correções de bugs e portando o SuperWaba para outras plataformas. Com isso, acredito que em breve outras alternativas de conectividade irão surgir oferecendo recursos ainda mais avançados para as aplicações desenvolvidas nesta plataforma.

O protocolo HTTP

A implementação do protocolo HTTP está representada na classe superwaba.ext.xplat.io.http.HttpStream. Esta classe deve ser utilizada em conjunto com a classe superwaba.ext.xplat.io.http.HttpStream.Options que define o método de solicitação de dados no servidor web (GET, POST), o tempo limite para as requisições, o cabeçalho das requisições para informar qual aplicação está solicitando os dados e informações para acesso ao servidor via proxy. Ambas possibilitam a criação de aplicações de transmissão de dados com o mínimo de codificação possível.

No nosso caso, usaremos o protocolo HTTP para obter informações contidas em um arquivo texto. Entretanto, o desenvolvedor pode escolher outros formatos como xml, html e arquivos de imagem como jpeg, png e etc.

Existe ainda a classe superwaba.ext.xplat.xml.XmlReadableSocket que implementa as funcionalidades da classe HttpStream. Porém, é voltada para o processamento de dados retornados do servidor que estão codificados em formato xml. Esta classe faz uso de um parser xml que utiliza a api SAX (Simple Api for XML) que permite um processamento muito rápido e eficiente do conteúdo XML.

Codificando a aplicação

A aplicação apresentada no artigo anterior abordou a criação de uma tela principal para uma aplicação em SuperWaba. Também foi considerada a criação de menus e como o SuperWaba implementa suporte a eventos de cliques em itens de menu. Pudemos também entender como o SuperWaba cria janelas de mensagens para o usuário.

Nossa aplicação sofreu algumas mudanças desde o artigo anterior. Observe os comentários sobre o código alterado e/ou adicionado nas Listagens 1 e 2.

 

Listagem 1. Código da Janela principal com o menu modificado.

package br.com.mobilez;

/*

 * Cinemaz

 */

 

import waba.sys.Settings;

import waba.sys.Vm;

import waba.ui.ControlEvent;

import waba.ui.Event;

import waba.ui.MainWindow;

import waba.ui.MenuBar;

import waba.ui.MessageBox;

 

public class Cinemaz extends MainWindow

{

1.       private MenuBar menu;

"

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?