Cláudio Oliveira Benedito Petroni Ângela Lühmann Desenvolvimento de Aplicativos para Windows Phone
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 Oliveira Mestre em Sistemas de Computação pela Pontifícia Universidade Católica de Campinas (2005) e graduado em Análise de Sistemas pela Universidade 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 tutores inteligentes. Coordenador de Curso e Docente da Faculdade de Tecnologia 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 experiê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écnica 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. Docente 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ühmann Mestre em Ciência da Computação pela Universidade Estadual de Campinas (2003) e graduada em Análise de Sistemas pela Universidade São Francisco (1997). Possui ampla experiência profissional atuando como Analista de Sistemas, principalmente em Análise e Projeto de Sistemas, também em implantação e suporte de Sistemas Integrados de Gestão Empresarial. Atuou na Faculdade Anhanguera de Jundiaí como Coordenadora Pedagógica dos cursos 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. Atualmente é 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.
Sumário Introdução... 1 Requisitos de Software e Hardware... 1 Microsoft Visual Studio... 2 Projetos... 3 Tipos de Dados... 8 Classes para Tipos de Dados... 9 Objetos para a Interface com o Usuário...10 Sintaxe do C#...15 Exercícios...16 O método ToString...16 Introdução a Orientação a Objetos...20 Exercícios...27 Criando e Utilizando uma Classe...27 Exercícios...33 Orientação a Objetos: Polimorfismo e Herança...33 Exercícios...38 Navegação entre Páginas...39 Botões de Rádio...42 Exercícios...44 Botões de Verificação...45 Exercícios...49 Gerenciamento do Layout...49 Imagens...57 Barras de Rolagem...59 Mapas...60 Vinculação de Dados...68 Vinculação de Controles...70 Controles Panorama e Pivot...71 ListBox...79 Exercícios...91 Armazenamento de Dados...92
VIII Desenvolvimento de Aplicativos para Windows Phone Armazenamento de Dados com Settings...92 Armazenamento de Dados em Arquivos...101 Armazenamento em Banco de Dados Relacional...112 Acesso às Funções do Aparelho...120 Envio de SMS (Short Message Service)...120 Efetuar Ligações...126 Acesso a Câmera...129 Serviços em Rede...132 Acesso Através da Classe WebClient...132 Manipulação de Dados em XML...136 Acesso Através da Classe HttpWebRequest...139
Introdução O Windows Phone oferece um conjunto de soluções que facilita o desenvolvimento 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 classes. 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 comportamentos 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 gratuitamente 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 características e ferramentas de apoio ao desenvolvimento de programas. Oferece suporte ao RAD (de Rapid Application Development ou Desenvolvimento 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 projeto. 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 funcionamento básico do Visual Studio, consiste em uma Windows Phone Application 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 fonte 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 (extensible Markup Language) e permite a especificação do layout e dos componentes 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 <TextBlock x:name= PageTitle Text= page name Margin= 9,-7,0,0 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 seguida, 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 emulador 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 mostrado abaixo. 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 programaçã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 boolean Um 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 10 38 double Valor numérico com precisão decimal de 64 bits ±5.0 10 324 a ±1.7 10 308 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 classes que permitem a implementação de objetos que representam tipos de dados. A vantagem da utilização dessas classes consiste na possibilidade de utilizar métodos que permitirão conversões, comparações e verificações aos valores armazenados nos objetos. Classe String Float Double DateTime Objetivo Cadeia de caracteres Definir um objeto para o tipo de dado float Definir um objeto para o tipo de dado double 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.