Levando os aplicativos do "Windows 8" até a nuvem com o SkyDrive

Criando o Windows 8

Nos bastidores com a equipe de engenharia do Windows

Levando os aplicativos do "Windows 8" até a nuvem com o SkyDrive

Rate This
  • Comments 0

Dando continuidade à última postagem sobre como entrar no Windows 8 com um Windows Live ID, queremos agora falar um pouco sobre o uso do SkyDrive nos novos aplicativos com estilo Metro do Windows 8. Embora os aplicativos utilizem um pouco do "uso automático" do SkyDrive para fazer o roaming das configurações, e os aplicativos em si façam roaming, sabemos que os desenvolvedores estão ansiosos para que os clientes de seus dispositivos possam fazer facilmente o roaming dos dados criados entre dispositivos. O SkyDrive é uma ótima maneira de fazer isso, já que todo Windows Live ID possui uma unidade gratuita baseada em nuvem. Esta postagem fala sobre como os desenvolvedores podem criar aplicativos com estilo Metro que usam o armazenamento do SkyDrive diretamente dos aplicativos. Esta é a nossa primeira postagem com códigos - haverá muito mais! Mike Torres, gerente de programas de grupo da equipe de roaming e dispositivos do SkyDrive, é o autor desta postagem. --Steven

Apesar da tendência a se ter vários dispositivos por pessoa, muitas pessoas ainda armazenam todos os seus arquivos importantes em um único PC ou dispositivo de armazenamento, sem ter acesso a esses arquivos usando outros dispositivos. Esses arquivos estão associados a um “local”: um PC desktop, laptop ou chave USB. Se você não tiver acesso a esse local, você não terá acesso aos seus documentos ou fotos. Não é só difícil (ou, às vezes, impossível) acessar os seus arquivos, compartilhá-los com alguém em uma rede diferente pode ser tão complicado quanto.

Agora, com a nuvem, é possível (e fácil!) acessar seu conteúdo de praticamente todos os lugares. Os arquivos ficam em um único local e podem ser acessados de qualquer dispositivo que se conecte à Internet, de qualquer parte do mundo. O compartilhamento de fotos e a colaboração nos documentos em tempo real também ficou bem mais fácil com uma única cópia do arquivo na nuvem. Entretanto, a nuvem ainda não é a principal forma de se acessar conteúdo.

No discurso de abertura da conferência //build/, Chris Jones falou sobre como todo cliente do Windows 8 terá um SkyDrive: uma nuvem única para todos, onde os arquivos importantes de uma pessoa estarão disponíveis de forma centralizada, poderão ser acessados instantaneamente e estarão prontos para serem compartilhados. Durante toda a conferência, também ocorreram sessões sobre como os desenvolvedores do Windows 8 podem preparar seus aplicativos para a nuvem com o Live Connect e o Live SDK. Quando usados juntos, os aplicativos com estilo Metro podem usar a nuvem Live para habilitar o logon único com o Windows Live ID e acessar dados pessoais como documentos, fotos e vídeos no SkyDrive com a permissão do usuário.

Se você está pensando em criar um aplicativo para o Windows 8 com estilo Metro, esta postagem mostra como habilitar o logon único e acessar os dados de um usuário no SkyDrive para dar um toque mais pessoal nos seus aplicativos com o estilo Metro - com a permissão do usuário, é claro.

Conectando os seus aplicativos à nuvem Live

Como desenvolvedor, quando você decidir criar o melhor aplicativo que o mundo já viu, você enfrentará constantemente dois tipos de problemas em qualquer plataforma:

  • Habilitar a entrada e a inscrição dos usuários. Os usuários não gostam de ter que entrar em sites e aplicativos, mas os desenvolvedores sabem que a lealdade aos seus aplicativos aumenta depois que um usuário entra. A entrada permite que você personalize a experiência do usuário e que seu aplicativo guarde os dados e personalizações do usuário.
  • Trazer facilmente o conteúdo do usuário até o seu aplicativo para enriquecer a experiência. Tarefas que parecem simples, como pedir ao usuário que defina uma imagem do perfil, podem logo ficar complicadas, considerando que as fotos dos usuários estão espalhadas em diversos dispositivos e na nuvem.

No Windows 8, nós encontramos soluções para esses dois problemas nos nossos próprios aplicativos, como o Fotos e o Mail. Os seus aplicativos com estilo Metro podem usar a mesma plataforma e tecnologia. Especificamente, foi assim que lidamos com os problemas acima:

  1. A identidade baseada em nuvem do usuário agora é um sistema operacional primitivo que pode ser acessado universalmente por sites e aplicativos, com a permissão do usuário de um logon único. Isso significa que o seu aplicativo pode herdar o estado de "conectado" de um usuário e a sua identidade, sem que você precise se preocupar com um processo de autenticação separado. E é muito importante para resolver o segundo problema.
  2. Disponibilizamos o acesso ao conteúdo do usuário na nuvem Live a aplicativos que usam os protocolos padrão da indústria, como o OAuth para a autenticação e autorização, o JSON como cargas para os dados devolvidos durante o acesso ao SkyDrive e ao Hotmail e o XMPP para interoperabilidade com o Windows Live Messenger. Além disso, oferecemos o Live SDK para o Windows 8 Developer Preview para facilitar o desenvolvimento em WinRT, com integração com o Visual Studio 11 Express.

Depois que um usuário conectar o seu aplicativo ao Windows Live ID pela primeira vez, esse usuário terá uma experiência de logon único contínua em qualquer PC com o Windows 8 em que ele esteja conectado com um Windows Live ID. O mesmo vale para o seu site, onde o usuário obterá uma experiência de logon único se estiver conectado ao PC com um Windows Live ID ou conectado a qualquer site que ofereça suporte ao Windows Live ID, como o Hotmail e SkyDrive.

A maneira mais fácil de usar um logon único com o Windows Live ID e integrar o conteúdo do SkyDrive ao seu aplicativo com estilo Metro é usar o Live SDK.

Isso não quer dizer que o seu aplicativo precisa usar qualquer um desses serviços. Essa é uma escolha do desenvolvedor. Não há nada que exija que os aplicativos do Windows 8 tenham quer entrar com um Live ID ou usar um armazenamento baseado em nuvem. Eles são apenas serviços disponíveis que os desenvolvedores podem usar como preferir.

Usando o Live SDK no seu aplicativo

Em primeiro lugar, caso ainda não o tenha feito, você precisará instalar o Windows 8 Developer Preview e o Live SDK Developer Preview no seu PC. Isso também instalará o Microsoft Visual Studio 11 Express para Windows Developer Preview. Depois, visite o site de gerenciamento de aplicativos do Windows Push Notifications e Live Connect (em inglês) para configurar o seu aplicativo com estilo Metro para acessar a nuvem Live. Siga as etapas no site e registre o seu aplicativo para usar o Live Connect.

Depois que o seu aplicativo estiver configurado para usar o Live Connect, adicione uma referência ao Live SDK. O Live SDK está disponível para o desenvolvimento em C#, JavaScript e VB. Você pode adicioná-lo ao seu projeto clicando com o botão direito do mouse no Projeto e selecionando [Add Reference] (Adicionar Referência). Selecione [Extension SDKs] (SDKs de Extensão) na lista e a entrada do Live SDK, como mostrado abaixo:

Em um aplicativo JavaScript, você só precisa adicionar a seguinte referência de script à Default.html:

    <script src="ms-wwa:///LiveSDKHTML.5.0/js/wl.js" ></script>

Em C#, adicione a seguinte referência para permitir o aproveitamento do Live SDK no seu código:

 using Microsoft.Live;

E, em VB, basta adicionar esta instrução de importação:

 Imports Microsoft.Live

Isso é apenas um exemplo de como damos suporte à programação na linguagem de sua escolha durante a criação de aplicativos com estilo Metro para Windows 8.

Usando o Windows Live ID em seu aplicativo com estilo Metro

Para aproveitar o SSO (logon único) no seu aplicativo, você precisa colocar um botão Entrar em algum lugar do seu aplicativo. Quando o usuário clicar no botão Entrar, ele entrará automaticamente se estiver conectado no PC com um Windows Live ID. Caso contrário, ele será solicitado a entrar. Depois disso, o usuário recebe uma solicitação de consentimento para permitir que o aplicativo acesse os seus dados, como fotos no SkyDrive. Esse fluxo de trabalho é conduzido automaticamente para você. Basta adicionar o botão Entrar. Lembre-se de que seus clientes ainda precisam confirmar o logon no seu aplicativo. Eles não são conectados automaticamente — esse é um ponto importante do design.

Este é o HTML de exemplo para o botão Entrar (note que é apenas um DIV e precisará ser configurado).

 <div id="signinbutton" style="width: 251px; margin-left: auto; margin-top: 40%; height: 64px; top: 0px;"></div>

Depois que você adicionar um botão Entrar à página, você terá que fazer as conexões já que tudo que o HTML de exemplo faz é alocar o espaço necessário na página. E precisamos configurar o botão Entrar com os escopos necessários ao seu aplicativo. Um escopo define o que o aplicativo poderá acessar e aquilo que o usuário tem que permitir. Para acessar os dados do SkyDrive, o seu aplicativo precisará destes dois escopos:

  • wl.signin - Esse escopo habilita a entrada automática no seu aplicativo.
  • wl.skydrive - Esse escopo concede acesso de leitura às fotos e álbuns do usuário no SkyDrive (observação: seu aplicativo deve usar o wl.skydrive_update se você estiver planejando carregar conteúdo para o SkyDrive).

Este é o código JavaScript de exemplo para inicialização, supondo que você já tenha criado um botão Entrar na página com a ID “signinbutton”:

function init() {
WL.init();

WL.ui({
name: "signin",
element: "signinbutton",
scope: ["wl.signin", "wl.skydrive"],
});
}

E este é o código JavaScript de exemplo para tratar do logon:

WL.Event.subscribe("auth.login", onLoginComplete);

function onLoginComplete() {
var session = WL.getSession();
if (!session.error) {
signedInUser();
}
}

Ao clicar no botão Entrar, o usuário recebe uma solicitação de consentimento para permitir que o aplicativo acesse seus dados. Como mencionado anteriormente, se o usuário estiver conectado no PC com um Windows Live ID, o logon único estará ativo e o usuário não precisará entrar novamente. Em vez disso, eles irão direto para esta tela de consentimento:

Acessando o conteúdo do SkyDrive usando o seu aplicativo

Quando o usuário tiver concedido ao aplicativo acesso aos dados, os tokens de acesso do OAuth 2.0 serão devolvidos ao seu aplicativo e poderão ser usados para fazer chamadas à RESTful API ante a nuvem Live. Veja como é o código para acessar uma foto em JavaScript:

function downloadPicture(folderId) {

var path = folderId + "/files"

// Submit request
WL.api({ path: path, method: "GET" }, onEnumerateFolderComplete)

};

Em uma série das chamadas acima, um aplicativo pode inserir o conteúdo do SkyDrive em suas experiências, como slides do PowerPoint, vídeos, planilhas do Excel ou simples fotos, como mostrado abaixo no aplicativo de exemplo.

Como você pode ver, integrar o logon único e os dados do usuário do SkyDrive ao seu aplicativo requer apenas algumas linhas de código com o Live SDK. Seu aplicativo fica com um toque mais pessoal e pode aproveitar ao máximo as fotos e os documentos de um usuário na nuvem. O código-fonte completo do aplicativo de exemplo mostrado nesta postagem de blog pode ser baixado aqui.

Para obter mais informações sobre como usar o Live SDK para habilitar o logon único no seu aplicativo e aproveitar os benefícios das APIs do SkyDrive, assista à sessão de Dare Obasanjo, Potencialize o seu aplicativo com os serviços do Live e a sessão de Steve Gordon, O guia completo do desenvolvedor para a API do SkyDrive, apresentadas na conferência BUILD. Você também pode saber mais conferindo em http://dev.live.com e baixando o Live SDK Developer Preview. Boa codificação!

Mike Torres