Desenvolvimento de Aplicativos para Windows...

18
Desenvolvimento de Aplicativos para Windows Phone Cláudio Oliveira Benedito Petroni Ângela Lühmann

Transcript of Desenvolvimento de Aplicativos para Windows...

Desenvolvimento de Aplicativos para Windows Phone

Cláudio OliveiraBenedito PetroniÂngela Lühmann

�������������� ������������������� ����������

������������ ������������� ������� ���� !"#

����������������������� ����������������������� �� ������������������������������������������ ������!�"#$%���#!&'&#!!(%���)� ��������� ���������*����������+���% � ���� ����� ��������% ���� �,�� ,�� � �� � �-����% � �.����% �����/���0����������%�� �����1���������+�23�%����������%�����������

�������4�� ������1�4�����,������� ������������ ���5��������,������������������������ ��6�����4����)���������� �7������������ ������ �7���������������,������8�����������

5*���� ������� ������������ ����� � �� � ������ � �� � ����� � ���� � �� � ,���� � � � � ���� � ��� � �� � � � ��/�� �� � ,� � ������ � ��� � ������ � ��9� ���23�% � �� � ����� � � ��� �� � �� � ������� � ��� � � ��% � � � ���� � �� ��� � ������ �+����������� �������������/������������%� �:�/�����9� �������������������������������%�� ����23������/������������������������ �+�23���;�� ,���� )��2�� ��� ����0������������� ������*� ����������8�����

������� �!"#�$����

�$�%&�%'�����() ���)*��&���+���,'$-%��.��� ����������������� �+ ��/0��--��1������������� ��$������

�������������� ������������������� ���������

������7�����<����������8����������������%�'$#=�

#����/�� *�����>���� �

�6?�<�!@(A(BAC!!A$B==A@�������������������������������������������������������������$$#�"='��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

���������%�����������!���&�&���������������'()*����+���������,������'�,*-��������./&01/231/ ���4.35../32))).6��7�4.35../32)80)�2���!�!��9!��&�"�&-�:::&!��&�"�&-�/)63(

Aos meus pais, Maria Creyde e Manoel, que sempre

acreditaram no “poder” da educação e dos livros.

À minha esposa Claudia e à minha filha

Franciele que são a razão do meu viver.

À Ângela e Benedito, dois grandes

amigos que a vida me presenteou.

(Cláudio Oliveira)

Aos meus pais, Oraida (in memorian) e Angelo Petroni

pelo exemplo e dignidade passados para os filhos.

À Érica, minha esposa e companheira e aos nossos corações que batem fora

de nosso peito: Ana Julia Petroni e Angelo Petroni Neto - o princípio de tudo.

Ao Prof.Cláudio, pelo exemplo de profissional, amigo e conselheiro.

À Profª Ângela por todo companheirismo de trabalho.

(Benedito Petroni)

Agradeço especialmente ao Cláudio, dentre tantas outras coisas,

por me incentivar e proporcionar tantas oportunidades.

Também agradeço à minha mãe,

Profª Nilce Bortoloti, por ter me mostrado com suas

ações a importância da educação e da dedicação.

Ao Benedito por compartilhar de mais esta obra.

E ao Cássio, meu marido, por viver ao meu lado a

mais empolgante das aventuras, que é a vida!

(Ângela Lühmann)

Sobre os Autores

Cláudio Luís Vieira OliveiraMestre em Sistemas de Computação pela Pontifícia Universidade Católica

de Campinas (2005) e graduado em Análise de Sistemas pela Universida-

de Metodista de Piracicaba (1990). Apresenta larga experiência na área de

Ciência da Computação, com ênfase em Sistemas de Computação, atuando

principalmente nos seguintes temas: sistemas de bancos de dados, linguagens

de programação Java, C++, C#, programação para a web (HTML, XML, ASP,

PHP, JSP e Servlets), plataforma .NET, desenvolvimento de aplicações para

dispositivos móveis, redes de computadores, sistemas distribuídos, arquitetura

orientada a serviços, agentes inteligentes, redes neurais artificiais e sistemas tu-

tores inteligentes. Coordenador de Curso e Docente da Faculdade de Tecno-

logia de Jundiaí (FATEC), Docente na Faculdade de Tecnologia de Bragança

Paulista (FATEC) e na Faculdade Anhanguera de Jundiaí (FAJ).

Benedito Cristiano Aparecido Petroni Mestre em Sistemas de Computação pela Pontifícia Universidade Católica

de Campinas (2006), Pós Graduado em Design e Aplicações para Internet

pela Universidade São Francisco Itatiba (2001), e Graduado em Análise de

Sistemas pela Universidade São Francisco - Itatiba (1998). Possui ampla ex-

periência na área de Ciência da Computação, com ênfase em desenvolvimento

de sistemas em Instituições de Ensino Superior, plataformas para Ensino à

Distância (EAD). Pesquisa a área de Sistemas Inteligentes através da técni-

ca de Inteligência Artificial, Agentes Inteligentes (AI) e Interação Humano

Computador (IHC). Atualmente, desenvolve conteúdos para assessoramento

e treinamento de ferramentas para análise e desenvolvimento de sistemas. Do-

cente da Faculdade de Tecnologia de Jundiaí e Bragança Paulista (FATEC),

Universidade Paulista (UNIP).

VI � Desenvolvimento de Aplicativos para Windows Phone

Ângela Cristina de Oliveira LühmannMestre em Ciência da Computação pela Universidade Estadual de Cam-

pinas (2003) e graduada em Análise de Sistemas pela Universidade São Fran-

cisco (1997). Possui ampla experiência profissional atuando como Analista de

Sistemas, principalmente em Análise e Projeto de Sistemas, também em im-

plantação e suporte de Sistemas Integrados de Gestão Empresarial. Atuou na

Faculdade Anhanguera de Jundiaí como Coordenadora Pedagógica dos cur-

sos de Ciência da Computação e Tecnologia em Análise e Desenvolvimento

de Sistemas. Nessa mesma Instituição de Ensino Superior foi professora dos

cursos de Ciência da Computação, Engenharia da Computação, Sistemas de

Informação e Tecnologia em Análise e Desenvolvimento de Sistemas. Atual-

mente é professora da Faculdade de Tecnologia de Jundiaí. Áreas de Pesquisa:

Sistemas de Informação e Engenharia de Software com ênfase em Análise e

Projeto de Sistemas, Testes de Software e Interação Humano-Computador.

Introdução ................................................................................ 1Requisitos de Software e Hardware ............................................ 1Microsoft Visual Studio ............................................................ 2Projetos .................................................................................... 3Tipos de Dados ......................................................................... 8Classes para Tipos de Dados ...................................................... 9Objetos para a Interface com o Usuário .....................................10Sintaxe do C# ...........................................................................15Exercícios ................................................................................16O método ToString ..................................................................16Introdução a Orientação a Objetos ...........................................20Exercícios ................................................................................27Criando e Utilizando uma Classe ..............................................27Exercícios ................................................................................33Orientação a Objetos: Polimorfismo e Herança .........................33Exercícios ................................................................................38Navegação entre Páginas ..........................................................39Botões de Rádio .......................................................................42Exercícios ................................................................................44Botões de Verificação ................................................................45Exercícios ................................................................................49Gerenciamento do Layout ........................................................49Imagens ...................................................................................57Barras de Rolagem ...................................................................59Mapas .....................................................................................60Vinculação de Dados ................................................................68Vinculação de Controles ...........................................................70Controles Panorama e Pivot .....................................................71ListBox ....................................................................................79Exercícios ................................................................................91Armazenamento de Dados ........................................................92

Sumário

VIII � Desenvolvimento de Aplicativos para Windows Phone

Armazenamento de Dados com Settings ...................................92Armazenamento de Dados em Arquivos ..................................101Armazenamento em Banco de Dados Relacional .....................112Acesso às Funções do Aparelho ...............................................120Envio de SMS (Short Message Service) ...................................120Efetuar Ligações ....................................................................126Acesso a Câmera ....................................................................129Serviços em Rede ...................................................................132Acesso Através da Classe WebClient .......................................132Manipulação de Dados em XML .............................................136Acesso Através da Classe HttpWebRequest .............................139

Introdução

O Windows Phone oferece um conjunto de soluções que facilita o desen-

volvimento de aplicativos para a plataforma. Fundamentado sobre o conceito

de desenvolvimento da interface sobre um padrão XML, no caso, o Microsoft

Silverlight, e utilizando a linguagem de programação C#.

A linguagem de programação C#, atualmente, é amplamente utilizada para

o desenvolvimento dos mais diversos tipos de aplicações. A seguir, citaremos

algumas de suas principais características:

Orientação a Objetos: Um programa escrito em C# é organizado em clas-

ses. Cada classe define um conjunto de métodos, e a partir desses métodos

pode-se formar o comportamento de um objeto. Uma classe pode herdar com-

portamentos de outra classe. Com exceção de tipos simples, como números e

variáveis booleanas, a maior parte das coisas em Java é objeto.

Tipos de Dados Estáticos: Na linguagem de programação C# todo objeto

deve ser definido antes de ser utilizado.

Diversidade de Tipos de Aplicações: Dentro da plataforma .Net, em C#,

é possível a criação de aplicações console (modo texto), gráficas (Windows

Forms), para a Internet (ASP.Net), para smartphones que utilizam o sistema

operacional Windows Phone e também para o console de jogos Xbox 360.

Requisitos de Software e Hardware

Para o desenvolvimento dos exemplos desta obra, o leitor deverá instalar a

versão atual do Visual Studio Express for Windows Phone, disponível gra-

tuitamente em http://dev.windowsphone.com.

2 � Desenvolvimento de Aplicativos para Windows Phone

Microsoft Visual Studio

O Microsoft Visual Studio é um IDE, do inglês Integrated Development

Environment ou Ambiente Integrado de Desenvolvimento, que reúne caracte-

rísticas e ferramentas de apoio ao desenvolvimento de programas.

Oferece suporte ao RAD (de Rapid Application Development ou “ De-

senvolvimento Rápido de Aplicações”) visando uma maior produtividade no

desenvolvimento de aplicações.

Cláudio Oliveira Benedito Petroni Ângela Lühmann ��3

Projetos

A base de funcionamento do Visual Studio é o conceito de projeto. Um

Projeto (Project) pode ser entendido como um grupo de classes, formulários e

recursos diversos, como arquivos de imagens e sons entre outros, necessários à

criação de um programa.

Desta forma, após abrir o Visual Studio, a primeira etapa na construção de

um aplicativo para Windows Phone consiste em realizar a criação de um pro-

jeto. Para isso, escolha no menu principal a opção File e depois New Project:

4 � Desenvolvimento de Aplicativos para Windows Phone

Nosso primeiro exemplo, que será criado com o intuito de ilustrar o funcio-

namento básico do Visual Studio, consiste em uma “Windows Phone Appli-

cation” e será chamada de “Ola”. Em seguida, selecione a plataforma desejada:

O Visual Studio irá exibir a aplicação criada. Conforme ilustrado na figura

a seguir, à esquerda podemos observar como a mesma será exibida na tela de

um smartphone com Windows Phone.A parte central consiste no código fon-

te da página principal em Silverlight for Windows Phone. À direita temos a

Solution Explorer e a Properties.

Cláudio Oliveira Benedito Petroni Ângela Lühmann ��5

Quando trabalhamos com o Silverlight for Windows Phone, a base de

qualquer aplicativo são as páginas XAML (eXtensible Application Markup

Language), que consiste uma uma linguagem fundamentada sobre XML (eX-

tensible Markup Language) e permite a especificação do layout e dos compo-

nentes da página.

Quando criamos uma página, a estrutura básica já é apresentada. Desta

forma, identifique no código fonte da aplicação o seguinte trecho:

<!--LayoutRoot is the root grid where all page content is placed-->

<Grid x:Name=”LayoutRoot” Background=”Transparent”>

���������� ��������

������� �������� ������������

������� �������� ����������

����������� ��������

<!--TitlePanel contains the name of the application and page

title-->

<StackPanel x:Name=”TitlePanel”

Grid.Row=”0” Margin=”12,17,0,28”>

6 � Desenvolvimento de Aplicativos para Windows Phone

������ ����"#��$%&' ���((��"&������� ��

� ����)*��++/34��35%��

6�9� ��;6�&��" ���" �+�� � ��%�'&�6�9� ?���

<TextBlock x:Name=”PageTitle” Text=”page

name” Margin=”9,-7,0,0”

6�9� ��;6�&��" ���" �+�� � ������ A6�9� ?���

����6�&"#+&� ��

���CDD4�� ��+&� ��D�(�&" �&������&��"�� ���� � DD�

���������$%&' ��4�� ��+&� �����������A��)&������AEFHFAEFH����

Grid>

�������

Esse código representa a definição dos gerenciadores de layout que serão

adotados, este exemplo, Grid e StackPanel. A área reservada para o título da

aplicação e para o título da página utilizará o elemento TextBlock, a qual permite

a exibição de texto estático na página. Altere a propriedade Text do TextBlock

chamada ApplicationTitle para “EXEMPLO DE APLICATIVO” e, em segui-

da, modifique a propriedade Text do TexBlock chamada PageName para “olá”.

Após concluir as alterações no programa, grave as alterações realizadas. O

passo seguinte consiste em compilar a solução. Para isso, podemos utilizar a

opção do menu Build e depois Build Solution, também podemos utilizar a

tecla de atalho F6 para realizar o mesmo processo.

Após finalizar a construção da aplicação é importante observar na parte

inferior da IDE se ocorreram erros ou avisos.

Cláudio Oliveira Benedito Petroni Ângela Lühmann ��7

Quando a compilação não apresentar erros, a mesma poderá ser executada

através do menu Debug utilizando os itens Start Debugging (F5). O emula-

dor será iniciado e o resultado da execução do programa deverá ser similar ao

ilustrado pela figura a seguir.

Vamos adicionar um novo TextBlock ao ContentPanel, conforme mostra-

do abaixo.

�CDD4�� ��+&� ��D�(�&" �&������&��"�� ���� � DD�

�������$%&' ��4�� ��+&� �����������A��)&������AEFHFAEFH��

���� ����"#�� ����� 'DI�������

�������

Na figura a seguir podemos visualizar a execução do aplicativo na tela do

emulador, sendo importante observar que todo novo objeto da página deve ser

colocado dentro do ContentPanel para que seja exibido.

8 � Desenvolvimento de Aplicativos para Windows Phone

Tipos de Dados

No desenvolvimento do próximo exemplo vamos incluir também a pro-

gramação em C#. Desta forma, inicialmente, vamos revisar alguns conceitos

básicos da linguagem.

Uma variável, atributo ou até mesmo o valor de retorno de um método,

deve ser previamente declarado devendo apresentar um tipo de dado. Abaixo

são apresentados os principais tipos de dados definidos pela linguagem C#:

Tipos de Dados

Descrição Valores

booleanUm bit contendo o valor verdadeiro (true) ou falso (false) true ou false

char Caractere de 16 bits U+0000 a U+ffff

int Valor inteiro com sinal de 32 bits-2.147.483.648 a 2.147.483.647

float Valor numérico com precisão decimal de 32 bits ±1.5 × 10−45 a ±3.4 × 1038

double Valor numérico com precisão decimal de 64 bits ±5.0 × 10−324 a ±1.7 × 10308

string Representa uma cadeia de caracteres Unicode -

Cláudio Oliveira Benedito Petroni Ângela Lühmann ��9

Desta forma, a declaração de uma variável deve apresentar o seu tipo de

dado, o nome que a variável terá e, opcionalmente, o seu valor inicial. Por

exemplo, para declararmos uma variável inteira que possua o nome “x” teremos

a seguinte sintaxe:

int x;

Caso seja necessário atribuir um valor inicial, podemos realizar a declaração

da seguinte maneira:

int x = 10;

Classes para Tipos de Dados

Além dos tipos de dados suportados pela linguagem, também existem clas-

ses que permitem a implementação de objetos que representam tipos de dados.

A vantagem da utilização dessas classes consiste na possibilidade de utili-

zar métodos que permitirão conversões, comparações e verificações aos valores

armazenados nos objetos.

Classe Objetivo

String Cadeia de caracteres

Float Definir um objeto para o tipo de dado float

Double Definir um objeto para o tipo de dado double

DateTime Definir um objeto que permite armazenar data e/ou hora

Por exemplo, para declararmos um objeto que irá armazenar o nome de

uma pessoa devemos declará-lo da seguinte maneira:

10 � Desenvolvimento de Aplicativos para Windows Phone

String nome = “Maria”;

Ou também poderia ser declarado assim:

Double preco = new Double();

Objetos para a Interface com o Usuário

Com base nestes primeiros conceitos, iremos desenvolver um aplicativo

que, a partir do ano de nascimento fornecido pelo usuário, realize o cálculo

da idade do mesmo. Para isso vamos criar um novo projeto com o nome de

“Idade”, por exemplo:

Em seguida, vamos ajustar os títulos da aplicação e da página que estão

dentro do TitlePanel.