Criando seu primeiro Live Tile com Delphi XE3 – Parte 2

Introdução

Na primeira parte deste artigo falamos sobre os requisitos e configurações necessárias para desenvolvimento de Live Tiles para o Windows 8 com Delphi XE3.  Dando continuidade, vamos agora entender melhor o que são Live Tiles e como eles funcionam em detalhes, permitindo assim que façamos o melhor uso possível desta tecnologia em nossos projetos.

A vida (quase) secreta de um Live Tile

Nas versões anteriores do Windows, um shortcut era apenas um atalho com um ícone para um aplicativo ou arquivo instalado em seu computador, para o qual se deseja rápido acesso a partir do Menu Iniciar ou de sua Área de Trabalho. Live Tiles são muito mais do que isso…

Os Live Tiles foram introduzidos a partir das primeiras versões do Windows Phone 7, e ganharam sua versão desktop a partir do Windows 8, como parte do novo padrão de interface Metropolis.

Live Tiles, ou simplesmente Tiles, são estruturas que “vivem” na tela inicial do Windows 8, e são capazes de apresentar informações de maneira dinâmica sobre suas aplicações favoritas, mesmo que ela não esteja executando. Podemos dizer que o Live Tile tem uma ligação forte com a aplicação de estilo Metropolis que ele representa.

Clicando sobre um Tile, ele irá executar a aplicação ou outro recurso por ele representado, sendo que muitos deles irão simplesmente funcionar como tradicionais ícones (shortcuts). Por outro lado, Tiles são vivos e podem exibir qualquer informação de maneria dinâmica, e este é nosso objetivo aqui.

Considere a aplicação do Calendário. Uma vez configurada uma ou mais contas em seu Windows, este tile passa exibir seus próximos compromissos diretamente no desktop de seu Windows. Na maioria das vezes, esta é toda informação que você necessita, elimitando a necessidade de carregar uma aplicação em tela cheia para obter estes detalhes.

A aplicação de e-mail funciona da mesma maneira, exibindo as últimas mensagens que chegaram em sua caixa postal.

Anatomia de um Live Tile

Um tile pode ser definido em dois tamanhos: 150 x 150 pixels e 310 x 150 pixels. Um tile retângular ocupa o mesmo espaço de dois tiles quadrados, os 10 pixels extras são para acomodar o espaço entre eles quando dispostos na tela inicial do Windows.

É possível ao usuário final desabilitar o auto-update de um tile. Para tal, você deve clicar com o botão direito do mouse sobre o tile e escolher “Turn live tile off” (ou “Desligar o live tile”). Entretando, não existe uma maneira de se desabilitar todos os tiles de uma única vez.

Outro recurso interessante é o “deep-linking”, pelo qual você pode definir detalhes ou um estado para a aplicação que será carregada. Imagine por exemplo que você pode criar um tile que levará você diretamente para a caixa de entrada ou outra pasta específica do Outlook. Este recurso está disponível também para aplicações de terceiros (como a sua!).

Definindo um Live Tile

Existem três diferentes tipos de live tiles: somente texto, somente imagem ou a combinação de ambos. Seja qual for o formato escolhido, cada tile é definido e implementado da mesma maneira.

Um tile será composto basicamente por um XML (AppManifest.xml) e um pasta (Assets). O arquivo “AppManifest.xml” contém todos os atributos referentes ao tile que você estará implementando, como a imagem a ser exibida, descrição, etc. A pasta “Assets” deverá conter todos os arquivos referenciados no XML. Além disso, também haverá uma aplicação (uma espécie de proxy) responsável pelas ações e atualizações deste tile.

O que é importante ficar claro neste momento é o fato de que o live tile não é a aplicação que você está criando no Delphi (ou qualquer outro ambiente) e sim um XML – o qual partirá de um dos templates pré-definidos pelo Windows – e um conjunto de imagens referenciadas, os quais uma vez registrados no sistema operacional, serão considerados o tile de uma determinada aplicação, esta sim um binário gerado pelo seu ambiente de desenvolvimento.

Uma vez compreendidos estes conceitos estamos aptos a iniciar o desenvolvimento de nosso tile a partir do Delphi XE3. Boa parte do trabalho acima será executado de maneira automática e simplificada pela ferramenta, através do componente TLiveTile. É o Delphi – uma vez mais – tornando nossa vida mais simples e mais produtiva!

Na terceira e última parte deste artigo vamos criar, passo a passo, nosso tile em Delphi, e também implementar um mecanismo de update para o mesmo. Até a próxima e fiquem ligados!

Criando seu primeiro Live Tile com Delphi XE3 – Parte 1

Introdução

Neste artigo vou mostrar como criar um Live Tile para Windows 8 utilizando o suporte nativo do Delphi XE3 para a nova interface do Windows 8. Em linhas gerais, Live Tiles são as peças principais da nova tela inicial do Windows 8, concebida sob o novo padrão de interface chamado inicialmente de Windows Metro (de Metropolis) e renomeada antes de seu lançamento para Windows 8 Modern UI (devido questões de patentes referentes a nomenclatura Metro).

Preparando o Ambiente

Para desenvolver e testar seu Live Tile você precisará de:

  1. Sistema rodando Windows 8 (versão final)
  2. Windows 8 SDK instalado (http://msdn.microsoft.com/windows/desktop/aa904949)
  3. Habilitar o Sideloading para aplicações baseadas no Windows Runtime
  4. Criar um certificado de desenvolvedor (free)
  5. Adquirir uma licença de desenvolvedor para Windows 8 (free)
  6. Instalar o LaunchAgentHost e o Metropolis Service

Habilitando o Sideloading no Windows 8

Sideloading é uma técnica que permite instalar aplicações baseadas no Windows Runtime diretamente da linha de comando, sem que ela necessite estar disponível no Windows Store (a loja de aplicativos do Windows). Para tal faz-se necessário alterar uma diretiva padrão de segurança do Windows 8 permitindo assim a instalação manual de uma aplicação deste tipo. Siga os seguintes passos:

– Abra a janela “Run” do Windows (tecla Windows + R) e execute o Group Policy Editor:

– Navegue para Local Computer Policy > Computer Configuration > Administrative Templates > Windows Components > App Package Deployment:

-Altere a propriedade Allow all trusted apps to install para Enabled:

Criando um certificado de desenvolvedor

Será necessário assinar seu Live Tile antes de distribuí-lo, e para fins de desenvolvimento e testes você pode criar um Self-Signed Certificate seguindo os seguintes passos:

– Crie um novo arquivo texto com o seguinte conteúdo, salvando-o como “makecerts.bat”

@echo off
if not exist "%1.pvk" (

echo Making Root CA
makecert.exe -n "CN=%1" -r -sv "%1.pvk" "%1.cer"

echo Making Root CRL
makecert.exe -crl -n "CN=%~1" -r -sv "%~1.pvk" "%~1.crl"

echo add to currentUser
makecert.exe -sk "%1" -iv "%1.pvk" -n "CN=%1" -ic "%1.cer" -sr currentuser -ss My

echo Installing Root CA
certmgr.exe -add "%~1.cer" -s -r currentUser root
certmgr.exe -add "%~1.cer" -s -r localMachine root

echo Installing Root CRL
certmgr.exe -add "%~1.crl" -s -r currentUser root
certmgr.exe -add "%~1.crl" -s -r localMachine root

) else (
	echo certificates already exist, skipping creation of self-signed certificates
)

– Abra um prompt de comando como Administrador e navegue para “C:Program Files (x86)Windows Kits8.0binx86”;

– Execute o batch criado acima passando como parâmetro o nome do certificado que deseja criar, por exemplo “mycert.test”. Será solicitado que você entre com uma senha para este certificado por três vezes, repita a mesma senha todas as vezes que solicitado;

Adquirindo (ou aceitando) uma licença de desenvolvimento para Windows 8

Também é preciso dizer ao Windows 8 (e a Microsoft) que você aceita os termos de licença de desenvolvimento para Windows 8. Para tal execute o seguinte comando, em um prompt com direitos de Administrador:

> powershell -Command Show-WindowsDeveloperLicenseRegistration

Será necessário entrar com um Windows Live ID e aceitar os termos da licença.

Instalando o LaunchAgentHost e o Metropolis Service

– Crie uma chave de registro (vazia) com o seguinte nome: “HKEY_LOCAL_MACHINESOFTWAREWow6432NodeEmbarcaderoMetropolis”

– Adicione o LaunchAgentHost (Embarcadero.Metropolis.LaunchAgentHost.exe)  no Startup do seu Windows. Este aplicativo está  instalado por padrão em <BDS>binlivetile, portanto crie um atalho para ele e adicione no Startup do sistema para que o mesmo seja carregado todas as vezes que o sistema reiniciar. Execute o atalho e verifique se o Metropolis launcher aparece na bandeja de seu Windows;

– Instale o Metropolis Service (Embarcadero.Metropolis.ServiceHost.exe). Para tanto, abra um prompt de comando como Administrador, vá para <BDS>binlivetile e execute o comando “InstallTileSvc /install“. Para verificar se o serviço foi corretamente instalado, procure na lista de serviços de seu Windows pelo nome “Embarcadero Metropolis Service”, o mesmo deverá estar iniciado;

Próximos passos

Na segunda parte deste artigo vamos entender como todos estes componentes se relacionam e também criar nossa primeira aplicação para o Live Tile, portanto, fiquem ligados!

Suporte a Windows 8 no Delphi e C++ Builder

O Delphi e o C++ Builder receberam uma intensa atualização para suportar o novo sistema operacional da Microsoft. Com a versão XE3 você também é capaz de distribuir sua aplicação para o novo tablet da Microsoft, o Surface Pro, o que abre um novo mundo de possibilidades para os fornecedores de software para Windows.

Nosso suporte ao Windows 8 inclui ainda:

  • Migração facilitada de aplicações existentes para o estilo Metropolis do Windows 8
  • Suporte a processadores Intel e Atom, 32 e 64 bits
  • Pronto para os tables Surface Pro e Slate
  • Aplicações com o estilo Windows 8 rodando em XP, Vista, Seven e Windows 8
  • Padrões de layout Grid e Split
  • Integração com Live Tile
  • Recursos de hardware como Touch, Gyro, Accelerometer, Location, Camera

Muito bom não é mesmo!

No vídeo abaixo apresento estes recursos em detalhes:

Windows 8 com Delphi e C++ Builder