Componentes para Windows Phone – Parte 1: Enriquecendo a aplicação com novos componentes de terceiros

A plataforma do Windows Phone disponibiliza uma diversidade de componentes para enriquecer a interação usuário-dispositivo. Porém, na medida que a experiência dos usuários avança, sente-se mais a necessidade de novos componentes. O modelo de negócio das empresas também pode requisitar controles mais robustos e cabe a “terceiros” que façam seus próprios controles.

No post de hoje abordaremos a utilização de componentes de terceiros. Escolhemos o Silverlight Toolkit pois é um dos mais completos e possui controles muito interessantes para a aplicação.

Imagine aquele bom e velho formulário com diversos campos para preencher, e é óbvio que entre eles, existe o campo DATA. O campo data tem um formato pré-estabelecido e você quer armazená-lo no campo do tipo DateTime em sua model.
Utilizar uma TextBox não seria muito legal, uma vez que o usuário poderia inserir diversos caracteres.

A utilização de uma máscara fazendo a validação é uma, entre diversas outras opções, que podem ser usadas para garantir que os dados informados no campo são compativeis com sua ‘model’. Entretanto, existem formas mais elegantes de um usuário informar a data. Testaremos o DatePicker do Silverlight Toolkit e veremos o resultado final.

Acesse o link abaixo, baixe e instale o pacote do Silverlight Toolkit:
http://silverlight.codeplex.com/releases/view/78435
*********************************************************************
ATENÇÃO!!!!

Partimos do pressuposto que você já possui as bibliotecas e ferramentas instaladas para desenvolvimento de aplicações para o WINDOWS PHONE conforme abordagem anterior feita neste blog.

Caso você não tenha configurado seu ambiente de desenvolvimento para Windows Phone, sugirimos que leiam nosso post do link abaixo e prepare seu ambiente antes de iniciar esta abordagem que exige o Visual Studio 2010, os pacotes de desenvolvimento para Windows Phone. Os códigos serão testados via emulador.

TUTORIAL – Windows Phone – Parte 1 – Hello World
http://bit.ly/sx3hYg

*********************************************************************

Crie uma novo projeto conforme mostra a imagem abaixo:

Na tela seguinte, selecione a versão 7.1

Vá em Choose Toolbox Items

Vá até a aba Windows Phone Components e procure o nome do componente desejado, no nosso caso o DatePicker. Caso ele não esteja presente na lista, lembre-se de clicar em Browser e carregar a DLL do componente, marcá-lo e então clicar em OK.
Nossa DLL se encontra em:
C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Toolkit\Oct11\Bin\ Microsoft.Phone.Controls.Toolkit.dll
Ou no diretório em que apontou a instalação do TOOLKIT.

Abrindo nossa Toolbox, verificamos que o componente já está lá, pronto para ser usado. Vamos arrastar um DatePicker para dentro de nossa Grid, salvar e executar a aplicação.

Ao clicar sobre o campo da data, o controle exibe uma nova tela para seleção da data.

Após testar o funcionamento do controle, vamos adicionar um StackPanel em nossa grid, vamos adicionar um nome para nosso DatePicker ‘MeetingDatePicker’ e movê-lo para dentro do StackPanel .
Em seguida, vamos adicionar um botão de nome ‘CheckDateButton’ e adicionamos um evento de Click para testar nosso controle no ‘code-behind’ de nossa aplicação.

Antes de continuar nossa implementação, note que o namespace Microsoft.Phone.Controls foi adicionado automaticamente pelo Visual Studio no ‘code-behind’ quando arrastamos o controle no modo Design.
Caso você precise utilizar um componente diretamente via código e não precisará adicioná-lo ao layout da página, lembre-se de adicionar o namespace precedido de ‘using’ ao topo do arquivo .cs.
Criamos uma nova instancia do DatePicker apenas para demonstrar como a DLL foi carregada com sucesso. Colocando o mouse sobre a classe DatePicker podemos ver a descrição da mesma.
Nós não utilizaremos essa nova instancia do controle pois já adicionamos anteriormente um DatePicker em nossa tela com o nome ‘MeetingDatePicker’.

No evento de ‘click’ de nosso botão, chamaremos o método CheckValues().
Este método busca o valor de nosso DatePicker e seta os valores de dia, mês e ano, então formata uma mensagem de alerta informando a data do compromisso.

Salve o projeto e execute a aplicação.
Selecione uma data e então clique no botão.
O alerta é exibido trazendo a data informada no DatePicker corretamente.

Conforme visto, é relativamente trivial a utilização de componentes externos em nossa aplicação, entretanto, alguns cuidados podem ser tomados:

>> Preste muita atenção se a versão da DLL é compativel com a versão do framework de sua aplicação.

>> Utilizando DLL’s você deverá cuidar o caminho de suas referências. Caso você abra o projeto em outros computadores, a DLL precisa estar no mesmo caminho referenciado previamente no projeto.

No próximo post, vamos aprender como criar nossos próprios componentes e sua utilização em projetos. Fique ligado!

Escrito por Luiz Roberto Lethang Rodolpho

TUTORIAL – Windows Phone – Parte 1 – Hello World

Mobiltec, nosso blog e 2012:
Olá! Fico feliz em escrever o primeiro post de 2012 e antes de abordar o assunto que lhe trouxe até aqui, gostaria de destacar a iniciativa da Mobiltec em criar esse blog, onde membros de nossa equipe podem compartilhar experiências com o público.
Redigir estes artigos nos permitem repassar determinados assuntos, esmiuçando-os antes de trazê-los em forma de post e refinar o conhecimento já existente.
Espero que todo nosso esforço possa agregar valores para nossos leitores!
Desejamos que o ano de 2012 seja de muita alegria, saúde, sucesso e crescimento profissional!

O mercado de trabalho está constantemente a procura de profissionais com conhecimentos em C#.
Com a chegada do Windows Phone para impulsionar novamente a Microsoft no mercado mobile e tudo apontando para tablets com Windows 8, somados ao novo fôlego dado ao Silverlight, quem é que não gostaria de desenvolver aplicativos para esses dispositivos?
O post de hoje vai abordar de forma prática e objetiva os primeiros passos para iniciar o desenvolvimento de aplicações para Windows Phone , no estilo TUTORIAL.
Este post é o primeiro de uma série que estamos escrevendo para as plataformas móveis. Se você é ligado também em Android e iOS, aguarde pois estes sistemas operacionais também serão abordados no blog por nossos programadores.
Chega de LERO-LERO e LET’S GO!

Pré-requisitos:

Sistemas operacionais suportados:

  • Windows Vista (x86 and x64) com Service Pack 2 – qualquer edição exceto Starter Edition
  • Windows 7 (x86 and x64) – qualquer edição exceto Starter Edition

Hardware:

  • A instalação requer 4GB de espaço em disco
  • 3GB RAM
  • Placa de vídeo com suporte ao DirectX 10 e driver WDDM 1.1

O download abaixo contém:

  • VISUAL STUDIO 2010 EXPRESS FOR WINDOWS PHONE
  • Windows Phone Emulator
  • Windows Phone SDK 7.1 Assemblies e extensions para XNA
  • Silverlight 4 SDK e DRT
  • Microsoft Expression Blend
  • WCF Data Service Client para Windows Phone
  • Microsoft Advertising SDK para Windows Phone

Faça o download e realize a instalação:
:: DOWNLOAD DO VISUAL STUDIO 2010 EXPRESS FOR WINDOWS PHONE ::

Ambiente de desenvolvimento:
Embora colocar a mão no código seja a parte mais legal da história, não adianta se apressar.
Desenvolver em qualquer linguagem de programação exige que você “prepare” o ambiente de desenvolvimento, algo muito comum de se ouvir em empresas de T.I.

- Mas Luiz, o que isso quer dizer?
Preparar o ambiente nada mais é do que analisar pré-requisitos do seu computador e instalar as devidas ferramentas.
A preparação da IDE de uma linguagem, muitas vezes, exige outros complementos como SDK’s ou outros tipos de updates.
Para uma abordagem conceitual sobre IDE visite nosso post nesse LINK.

- Certo, mas o que é SDK?
SDK é a sigla de Software Development Kit (Kit de Desenvolvimento de Software) e está presente em diversas linguagens de programação.

Agora, com as devidas ferramentas em mãos, vamos começar!!!

1 – O primeiro passo – Executando o Visual Studio e criando um novo projeto
2 – Em seguida, selecione o tipo de projeto (Windows Phone Application), framework(.NET Framework 4.0) e nome da solução (opcional)

3 – Caso você tenha instalado o SDK de ambas as versões 7.0 e 7.1, deverá optar por uma durante a criação do projeto

4 – Familiarizando-se com a interface e a estrutura básica do código XAML

5 – Abra a toolbox e arraste um controle do tipo textblock e button para dentro da grid chamada ContentPanel

6 – Em seguida, atribuimos um nome para os controles e também adicionamos algumas propriedades para ajuste de layout
Colocaremos a textblock ao topo da tela com texto ao centro e o botão na parte inferior

<TextBlock x:Name="ContentTextBlock"
    VerticalAlignment="Top"
    HorizontalAlignment="Stretch"
    TextAlignment="Center" />
<Button x:Name="ShowTextButton" Content="OK"
    VerticalAlignment="Bottom"
    Click="ShowTextButton_Click" />

7- Para criar o evento de toque do botão você pode dar dois cliques sobre o botão na interface de visualização da tela (onde a seta indica na imagem abaixo) e o código do evento será inserido automaticamente * O Visual Studio adicionou o evento de nome Click, entretanto, por se tratar de um dipositívo móvel, esse evento muitas vezes pode ser chamado de Tap. A interação usuário-dispositivo pode trazer outros tipos de eventos, chamados Gesture Listeners, que enriquecem o uso da aplicação, entretanto, são pauta para um novo post, específico, pois a abordagem é extensa.
8 – O Visual Studio abrirá o code behind automaticamente, já com o novo método, onde adicionaremos o seguinte trecho de código para exibir a mensagem “Hello world!” em nosso textblock

ContentTextBlock.Text = "Hello World!";

9 – Para rodar a aplicação no dispositivo, vamos selecionar no menu superior a opção Windows Phone Emulator, e em seguida clicar no símbolo verde tipo PLAY, conforme imagem abaixo, para compilar o projeto e executar o emulador

10 – Após executar o emulador, clicamos em OK para conferir o resultado
Como podemos ver, os primeiros passos para o desenvolvimento em Windows Phone é relativamente simples!
Na medida que o grau de exigência de determinados projetos aumenta é que nos deparamos com situações novas e mais complexas, porém, para um “Hello world!” em um ambiente configurado, isso é o suficiente!

Espero que tenham gostado! Fiquem ligados e acompanhem o restante da série de TUTORIAIS que vêm por ai!

Escrito por Luiz Roberto Lethang Rodolpho.

Tecnologia Push em sistemas iOS e Windows Phone (Parte 2/2 – MPNS)

Na semana passada, nosso post abordou Tecnologia Push em sistemas iOS e Windows Phone. Para darmos continuidade, essa semana vamos conhecer como funcionam as notificações de push no novo sistema operacional mobile da Microsoft, o Windows Phone.

Vamos dar uma passada por todo o ciclo dessa infraestrutura!

Pré-requisitos e Infraestrutura

As notificações de push no Windows Phone podem ser testadas no emulador, dispensando a aquisição de uma licença de desenvolvedor. Entretanto, para uso no dispositivo, é necessário realizar o processo de cadastramento do aparelho no APP HUB da Microsoft. Nesse momento, focaremos nosso exemplo no uso do emulador.

Com esse cenário, também será necessário um servidor ou provider como citado na parte 1 desse post [veja o post], aqui chamado de cloud service.

No Windows Phone, o processo de comunicação entre cloud service e MPNS é bem mais simples. A conexão com o servidor de notificações da Microsoft é feita via HTTP.

Diferentemente do iOS, na plataforma da Microsoft, o cloud service não precisará de um certificado para estabelecer a conexão com o MPNS.

O processo básico desse cenário é o seguinte:

  • No dispositivo, a aplicação com notificações de push ativado estabelece uma conexão com o MPNS via HTTP e recebe um token.  (etapas 1 e 2)
  • Esse token será informado pelo dispositivo ao cloud service. Uma vez atualizado o token no cloud service, o ciclo está completo e as notificações de PUSH podem ser enviadas.
    (etapas 3 e 4)
  • O cloud service envia as notificações de push para o MPNS e esse, por sua vez, analisa o token e encaminha para o respectivo dispositivo. No dispositivo interpreta-se a notificação e toma as ações desejadas.
    (etapas 5 e 6)

Na estrutura desse token existe o endereço para o qual o cloud service deverá fazer a requisição HTTP e o identificador do dispositivo.

Recebendo uma notificação

Existem três tipos de notificações que podem ser enviadas ao dispositivo, cada uma com sua finalidade específica.
São elas RAW, TILE e TOAST.

TILE MESSAGE:

São usadas para atualizar informações de aplicações que estão em PIN (na área de trabalho) do dispositivo. Pode-se atualizar a imagem ou valores da TILE.

Vamos exemplificar com uma aplicação para leitura de RSS. Toda vez que novas notícias estão disponíveis a aplicação pode atualizar a TILE via notificações de push, mostrando quantas novas existem.
Não nos aprofundaremos nesse tipo de mensagem pois vamos dar foco à TOAST MESSAGE.

RAW MESSAGE:

Mensagens que chegam silenciosamente ao dispositivo. Imperceptível ao usuário, só será processada se a aplicação estiver em execução, caso contrário é descartada.

TOAST MESSAGE:

Se a sua aplicação não está em execução, será exibida uma mensagem de alerta no topo da tela do dispositivo informando o recebimento da notificação. O usuário pode tocar na alert bar para que a aplicação seja executada e a notificação processada.

Caso transcorram alguns segundos sem que o usuário toque na alert bar, a notificação será descartada.
Se a aplicação já estiver em execução, a notificação é recebida sem o alerta na alert bar e é imediatamente processada sem necessidade de intervenção do usuário.

 Abaixo segue trecho do método responsável pela construção da mensagem e envio:

...
//token recebido anteriormente na abertura do canal do dispositivo com MPNS
string subscriptionUrl = _token;

//criando mensagem associando ao token
HttpWebRequest sendNotificationRequest  = (HttpWebRequest)WebRequest.Create(subscriptionUrl);

//cabeçalho da mensagem
sendNotificationRequest.Method = "POST";
sendNotificationRequest.ContentType = "text/xml";
byte[] notificationMessage = new byte[] { };

//chamada do método que constrói mensagem do tipo TOAST
notificationMessage = TOASTMESSAGE(_text1, _text2);

//solicita entrega imediata
sendNotificationRequest.Headers.Add("X-NotificationClass", "2");

//informa o tipo de notificação
sendNotificationRequest.Headers.Add("X-WindowsPhone-Target", "toast");

//informa tamanho da mensagem
sendNotificationRequest.ContentLength = notificationMessage.Length;

//preparando mensagem para envio
using (Stream requestStream = sendNotificationRequest.GetRequestStream())
{
    requestStream.Write(notificationMessage, 0, notificationMessage.Length);
}

//envio da notificação
HttpWebResponse response =
    (HttpWebResponse)sendNotificationRequest.GetResponse();

//conferindo resposta do envio
string notificationStatus = response.Headers["X-NotificationStatus"];
string notificationChannelStatus = response.Headers["X-SubscriptionStatus"];
string deviceConnectionStatus = response.Headers["X-DeviceConnectionStatus"];
...

Estrutura de uma mensagem do tipo TOAST:

<?xml version="1.0" encoding="utf-8"?>
<wp:Notification xmlns:wp="WPNotification">
    <wp:Toast>
        <wp:Text1>{0}</wp:Text1>
        <wp:Text2>{1}</wp:Text2>
    </wp:Toast>
</wp:Notification>

* Onde {0} = header e {1} = payload
** O tamanho máximo para o header é de 1 kb e o payload 3 kb. Mensagens com tamanho superior serão simplesmente descartadas.

Conclusões

É notável que o processo para envio das notificações de push é muito mais simples no Windows Phone, todavia, muito se assemelha ao iOS.
O entendimento de todo o cenário de funcionamento do mecanismo de PUSH é crucial para o seu desenvolvimento e facilita o processo de implementação.

Intrínsecas funcionalidades de MDM (Mobile Device Management) não estão disponíveis na versão do Windows Phone 7, o que acaba sendo um pouco frustrante.

Além disso, a limitação para processar notificações recebidas apenas por aplicações em execução em primeiro plano, também deixam a desejar e tornam a realidade do MDM um pouco distante do ideal, se comparado ao antigo Windows Mobile.

Nesse caso, todo o foco das notificações de push ficam atreladas apenas às aplicações que estão em execução. Por tratar-se de um sistema operacional novo, aguardamos por novidades nas próximas versões.

Por enquanto, jogamos com as cartas da mesa para expor tudo que é possível até o momento, na esperança de que, logo ali na frente, as novidades cheguem e possamos ir mais além!

Participe de nosso blog deixando comentários com sugestões, dúvidas, análises.

Abraço e até o próximo post!

Escrito por Luiz Roberto Lethang Rodolpho

Introdução ao Windows Phone 7

Robusto e original, com conceito visual remodelado, layout simples e acabamentos detalhistas, o Windows Phone 7 têm atraído para si os olhares de profissionais da área de T.I. É assim que o Sistema Operacional Windows Phone 7, sucessor do Windows Mobile, tem sido visto em seu período de disseminação ao redor do mundo.

Enquanto iOS e Android travam uma briga épica na preferência dos usuários, muitos não acreditavam que a Microsoft pudesse entrar na corrida pela liderança entre os dois gigantes sistemas operacionais de mobilidade.

Porém, a realidade é outra. O Windows Phone 7 Mango tem surpreendido, pois traz inovações que o diferenciam dos demais sistemas operacionais e se torna forte candidato a situar-se entre os OS para dispositivos móveis mais usados.

Aspecto Visual

Visual de telas do Windows Phone 7

Conhecido como METRO, um novo conceito visual é aplicado no layout das aplicações. A ideia básica é encontrar a simplicidade sem perder a beleza.

A disposição e organização do conteúdo também são diferentes. Imagens de fundo que acompanham os movimentos de paginação, LIVE TILES (atalhos) que tem detalhes atualizados constantemente, dando vida à tela e conteúdo agregado para fácil acesso são as mais notáveis novidades visuais. Ainda é cedo para afirmar que os usuários vão aprovar os novos conceitos, mas uma coisa é certa, já rendeu muitos elogios!

Aplicações Nativas

O Windows Phone 7 traz aplicações como Agenda de Contatos e Gerenciador de Fotos, ambos integrados com Windows Live e Facebook, Calendário, Localização via GPS, Sistema de Mapas, Navegador Internet Explorer, Zune (Aplicação de sincronização de músicas, fotos e videos com seu computador), Xbox Live e marketplace. As aplicações são intuitivas e de fácil entendimento, até mesmo para usuários com pouca experiência, e mantém os conceitos de METRO STYLE.

Quem já usa o Windows Live e Facebook, sente-se muito mais confortável na utilização do sistema. Os contatos de ambas as redes sociais são sincronizados no dispositivo e associados na agenda de contatos, trazendo foto e e-mail dos usuários, bastando apenas adicionar o número de telefone.

Marketplace

O Marketplace do Windows Phone é muito semelhante ao do Android e iOS. O usuário cadastra seu cartão de crédito apenas na primeira compra, as seguintes utilizam o cartão já cadastrado.

Um ponto negativo é que o marketplace não é global e muitas aplicações ainda estão em processo de aprovação para venda à usuários do Brasil, logo, nem sempre será possível encontrar as aplicações desejadas.

Desenvolvimento

A linguagem de programação utilizada é C# e o framework do Windows Phone tem como base o Silverlight. A linguagem de interface é XAML que é uma linguagem declarativa baseada no XML.

Quem já teve contato com desenvolvimento de aplicações em Silverlight estará familiarizado com o Windows Phone 7.

Uma grande notícia é que a Microsoft disponibilizou gratuitamente a versão Visual Studio 2010 Express for Windows Phone.

Não há custo inicial para quem deseja desenvolver aplicações para o Windows Phone e um emulador já acompanha o SDK 7.1.

Os custos aparecem quando o desenvolvedor optar por realizar deploy de suas aplicações em um dispositivo ou vendê-las no marketplace.

Para isso é necessário uma licença de desenvolvedor que deve ser adquirida no site MSDN APP HUB. Essa licença é válida tanto para desenvolvimento de aplicações, quanto para desenvolvimento de jogos.

Develop for Windows Phone & XBOX 360

Confira o link >> http://create.msdn.com/en-US/home/membership.

Estudantes podem obter uma “licença de estudante” através do Dreamspark, iniciativa da Microsoft para incentivo aos estudantes através da liberação de aplicações e licenças.

Microsoft DreamSpark

Confira o link >> https://www.dreamspark.com

Recursos como coleta de pontos do GPS, acelerômetro, câmera fotográfica, notificações de push, entre outros, estão disponíveis para utilização do programador. Alguns recursos com restrições, outros disponibilizados integralmente.

Para o gerenciamento de dispositivos móveis (ver MDM) alguns pontos são positivos, outros negativos, mas é certo que muita coisa precisa evoluir no sistema operacional para que se faça um gerenciamento completo.

Fique ligado em nosso blog pois em breve será liberado um post completíssimo sobre notificações de push e MDM para Windows Phone 7.

Conclusão

O Sistema Operacional é agradável para uso pessoal, chegou impressionando e atende praticamente todas as expectativas, tanto para lazer como para organização pessoal. A integração com as redes sociais também serve como estímulo para os novos usuários.

No cenário corporativo, temos aplicativos como e-mail, agenda e outros para fins específicos no marketplace.

A facilidade para desenvolvimento na plataforma também é um incentivo extra, que pode ser fator decisivo na escolha de empresas pelo Windows Phone. Ainda observamos que desenvolvedores com experiência em C#, mesmo sem conhecimento de Windows Phone, passam por um processo mais fácil de adaptação.

Fiquem ligados nos próximos posts sobre Windows Phone 7!

Escrito por Luiz Roberto Lethang Rodolfo