SmartPhones

Desenvolvendo Aplicativos para SmartPhones

Basicamente um SmartPhone é a união de dois depósitos, o Pocket PC e o Celular bem conhecidos no mercado, o SmartPhone foi desenvolvido usando as melhores características dos dois dispositivos.

O desenvolvimento para a linha SmartPhone é muito atrativo e fácil, mas devemos tomar alguns cuidados, pela sua interface pequena. Os SmartPhones foram planejados levando como requisitos o tamanho da tela de um celular e as melhores qualidades do Pocket PC.

A Interface de usuário(Tela ou UI – User Interface) tem aproximadamente 176X200 pixel com aproximadamente 65.535 tonalidades de cores, permitindo  trabalhar com design de aplicação como se fosse um Desktop.

Na hora de desenvolvermos aplicações para SmartPhones, devemos nos preocupar com o modo de desenvolvimento, pelos recursos de navegação limitado, que o usuário usará apenas uma mão(one-hand), a navegação é feita sob a forma de ícones, etc.

O SmartPhone traz muitos recursos do Pocket PC como Outlook, ActiveSync, MediaPlayer, instalação de aplicativos facilitada e o principal o Compact Framework já instalado.

Com SmartPhone temos informação em qualquer lugar e a qualquer momento, nesse artigo mostrarei como fazer um Aplicativo que consuma um WebService, esse aplicativo irá exibir um relatório de vendas do dia, a prazo e a vista e lucro do dia, de uma Empresa.

A Figura 1 demonstra um SmartPhone.

 

 

Figura 1. Sistema do SmartPhone em execução

SQL referente a Base de Dados Sql Server

Devemos criar a Tabela que armazenará o resultado de vendas diárias da Empresa, essa tabela será acessada pelo o WebService, a Listagem 1  contem o Script SQL.

 

Listagem 1. Script SQL

create database webmobile;

create table resumodia(data datetime primary key, vendavista decimal(9,2),

vendaprazo decimal(9,2), lucro decimal(9,2));

insert into resumodia values('01/02/2005', 5000, 4500, 2500);

insert into resumodia values('02/02/2005', 8000, 6500, 4000);

 

Criando o WebService “WSResumoDia”

Pronto, agora com o nosso banco de dados criado devemos criar o webservice que acessará os dados do SQL Server, o nosso WebService conterá uma simples método que retornará um tipo DataSet(trafega em formato de XML) resultado da Consulta SQL, será passado como parâmetros nesse Método uma Data, a data será informada no SmartPhone.

Criaremos um ASP.net WebService, clique em File->New|WebSite escolha a linguagem C#, depois escolha o template ASP.net WebService, em Location selecione HTTP e digite (http://localhost/WSResumoDia), clique em OK, será criado o Projeto, temos que fazer uso dos seguintes namespaces  System.Data.OleDb e System.Data, veja o código do WebMethod na Listagem 2.

 

Listagem 2. Código do WebMethod

  [WebMethod(Description = "Retorna um DataSet com Resumo de Venda do Dia")]

    public DataSet ResumoDia(DateTime Data)

    {

        OleDbConnection conexao = new OleDbConnection("Provider=SQLOLEDB;Data Source=localhost;User ID=sa;Initial Catalog=webmobile");

        OleDbCommand comando = new OleDbCommand("SELECT * FROM resumodia WHERE DATA = '" + Data.ToString() + "'", conexao);

        OleDbDataAdapter Adaptador = new OleDbDataAdapter(comando);

        DataSet ds = new DataSet();

        Adaptador.Fill(ds, "ResumoDia");

 

        return ds;

 

        conexao.Close();

        conexao.Dispose();

        comando.Dispose();

        Adaptador.Dispose();

        ds.Dispose();

    }

Instalando o SDK SmartPhone

Antes de começarmos a desenvolver nossa Aplicação no Visual Studio devemos instalar o SDK, que é um complemento do Visual Studio para desenvolvimento de Aplicações para SmartPhone, (http://www.microsoft.com/downloads/details.aspx?familyid=a6c4f799-ec5c-427c-807c-4c0f96765a81&displaylang=en). Após o SDK instalado já podemos desenvolver aplicativos para SmartPhones em C++, VB.net ou C#.

Criando Aplicação SmartPhone

Para criarmos a primeira Aplicação abra o Visual Studio 2005 que foi usado nesse artigo na versão 2003 funciona perfeitamente, clique em File->New|Project, selecione o tipo do Projeto(Project Type) como Visual C# Projects e o Template Smart Device Application, defina o nome da aplicação para ResultadoDia, e clique em OK, será aberta uma segunda caixa (Figura 2) de seleção aonde especificaremos a plataforma que iremos desenvolver e o tipo do projeto, na plataforma selecionaremos SmartPhone e no tipo do projeto Windows Application, clique em OK, será criado uma nova Aplicação SmartPhone, por padrão vem instalado no Visual Studio dois SDK para desenvolvimento de Smart Devices, para Pocket PC e Windows CE.

 

Figura 2. Lista de SDK’s instalados.

Percebe-se com a criação da nova aplicação que temos um formulário pequeno. Desenvolver para SmartPhones é quase a mesma coisa que desenvolver para Pocket PC, mas cada dispositivo tem suas adaptações.

Olhando na ToolBox percebe-se que muitos controles estão desabilitados para desenvolvimento em SmartPhones, já em Pocket PC poucos estão desabilitados. O controle DataGrid está habilitada, mas seu uso não é suportado.

Os controles que estão habilitados para desenvolvimento de aplicações SmartPhones estão listados na (Tabela 1).

 

Controle

Descrição

Label

Pode ser usado para identificar campos ou para exibir textos.

TextBox

Campo de entrada de dados. É usado para receber informações do tipo texto, em uma linha simples ou mult-linha.

MainMenu

Usado para adicionar menus nos formulários.

CheckBox

Usado para criar caixas de checagem do tipo bi/tri.

PictureBox

Usado para inserir imagens no device.

Panel

Usado para agrupar controles dentro dos formulários.

DataGrid

Este controle não é suportado pelo SmartPhone 2003. Controles DataGrid, quando populados com grandes quantidades de dados tem um consumo de memória muito elevado por isso, O SDK SmartPhone 2003 não suporta o uso de DataGrids, pois possui apenas 16 MB de Ram.

ComboBox

Usado para exibir listagens de valores para o usuário.

ListView

Usado em associação com o ImageList, serve para criar listagens.

TreeView

Usado em associação com o ImageList, serve para criar árvores de listagens.

HScrollBar

Usado para criar barras de rolagens horizontais no form ou em controles específicos.

VScrollBar

Usado para criar barras de rolagens verticais no form ou em controles específicos.

Timer

Este controle não é visível em tempo de execução. Permite que uma determinada ação seja executada em intervalos pré-definidos no controle.

ProgressBar

Usado para exibir uma barra de progressão caso uma tarefa longa esteja sendo executada.

ImageList

Este controle não é visível em tempo de execução. Seve para cria uma listagem de imagens que serão usadas em controles que possuam esse recurso.

Tabela 1. Descrição dos controles Padrões disponível para desenvolvimento de SmartPhones.

Vamos criar os menus da nossa Aplicação, por padrão o controle MainMenu já vem adicionado em nosso formulário, vamos criar dois menus(colunas), uma Sair e a outra Consultar, não é possível criar sub-menus na primeira coluna, altere a propriedade Name do formulário principal para frmPrincipal e a propriedade Text para Resultado do Dia, renomeie o arquivo Form1.cs para Principal.cs.

Coloque 7 controles Labels e 1 TextBox altere o Nome(Name) para txtData, as propriedades dos controles Labels devem ficar idêntica a (Tabela 2).

 

Name

Text

ForeColor

TextAlign

lblConsulta

Data Consulta

ControlText

TopLeft

Label1

Avista:

ControlText

TopRight

Label2

Aprazo:

ControlText

TopRight

Label3

Lucro:

ControlText

TopRight

lblAvista

0,00

Blue

TopLeft

lblAprazo

0,00

Blue

TopLeft

lblLucro

0,00

Blue

TopLeft

Tabela 1. Propriedades dos controles Labels.

O formulário principal deve ficar idêntico a (Figura 3).

 

Figura 3. Após as devidas alterações o formulário principal irá ficar parecido com esse.

Consumindo o WebService “WSResumoDia”

No Solution Explorer clique com o botão direito em References e clique em Add Web Reference após ter configurado a URL e a Web Reference name clique em Add Reference observe a Figura 4.

 

Figura 4. Processo de referência a um WebService e suas configurações

Agora vamos colocar os código da aplicação, no evento Click do MenuItem Sair coloque o código:

 

Application.Exit();

 

A Listagem 3 contem o código responsável por acessar o WebService e buscar as informações para um DataSet local, e exibi-los na tela do dispositivo.

 

Listagem 3. Código do evento click do MenuItem Consultar.

WSResumoDia.Service1 ws = new WSResumoDia.Service1();

DataSet ds;

ds = ws.ResumoDia(Convert.ToDateTime(txtData.Text));

if (ds.Tables[0].Rows.Count > 0)

{

       lblAPrazo.Text = ds.Tables[0].Rows[0]["vendaprazo"].ToString();

       lblAvista.Text = ds.Tables[0].Rows[0]["vendavista"].ToString();

       lblLucro.Text = ds.Tables[0].Rows[0]["lucro"].ToString();

}

 

Agora basta compilar e executar a aplicação e informar a Data de Consulta e clicar em Consultar que serão exibidas as informações referente aquele dia, o Resultado Final da Empresa. Veja a ilustração do exemplo em execução na Figura 5.

 

Figura 5. Exemplo em execução

Conclusões

Tivemos nesse artigo uma introdução do que é SmartPhone e um exemplo de como consumir WebServices em SmartPhones. Com o uso de WebService podemos disponibilizar as nossas regras de negócios para qualquer dispositivo móvel com extrema facilidade.

Foi utilizado para a construção do exemplo do artigo:

·         Microsoft SQL Server 2000

·         Microsoft Visual Studio 2003

 

Um Grande Abraço a Todos