Olá pessoal, está foi a minha apresentação na trilha Windows Phone dev no The Developers Conference Florianopolis 2013 fazendo um deep dive no Windows Runtime.

Aproveitem para ver um pouco mais de detalhes neste outro post sobre o mesmo assunto: http://aka.ms/internals01

Abs,
@daibert

 

http://twitter.com/daibert

Anúncios

Olá pessoal, está foi a minha apresentação na trilha Windows Phone dev no The Developers Conference Florianopolis 2013

 

 

Abs,
@daibert

Oi pessoal, uma dica rápida. Aqui temos um livro de melhores práticas de XAML para Windows 8.

have fun!!!

http://manning.com/pbrown3/

 

pbrown3_cover150

 

Abs,
@daibert

Olá pessoal.

Hoje cedo um cliente me perguntou sobre o processo de instalação das Apps no Windows Phone 8. Ele queria saber o motivo da “demora” na barra de progresso da instalação da App.

Não é o objetivo deste singelo post explicar todo o processo de instalação da App no Windows Phone. Mas o importante aqui é entender os “momentos” em termos de percentual desta instalação.

A instalação da App começa quando a Windows Phone Store chama o método “InstallationManager.AddPackageAsync”. Quando este método é disparado, é iniciado o download do pacote e o processo de instalação.

Desta forma, o pacote da aplicação passa por 4 fases de instalação que são:

  1. 5% completed – Quando a loja mostra a janela perguntando se o usuário deseja instalar o App.
  2. 10% completed – Logo após o usuário aceitar a instalação do App

  3. 55% completed – Quando o pacote do aplicativo foi baixado

  4. 100% completed – Quando o aplicativo foi instalado com sucesso.

 

Bom, por enquanto é só.

 

Abs,

@daibert

http://twitter.com/daibert

Olá pessoal.

Hoje vou falar um pouco sobre o Secure Boot do Windows Phone 8. O Secure Boot é uma tecnologia que faz uma validação na imagem do Windows Phone que esta gravada no firmware do aparelho.

Desta forma, durante o boot é feita uma validação que garante que o sistema operacional que será carregado está integro.

Isto é um dos motivos que faz com que o Windows Phone 8 não tenha virus ou malwares instalados.

Todos os componentes do sistema operacional possuem uma assinatura digital que é validada pelo chamado pre-UEFI (http://msdn.microsoft.com/en-us/library/windows/hardware/gg463075.aspx). Esta é a garantia que só estes componentes autorizados pelo UEFI podem ser carregados.

Para saber mais sobre este assunto, recomendo a leitura dos links abaixo:

System on a Chip http://blogs.windows.com/windows/b/bloggingwindows/archive/2011/01/05/next-version-of-windows-to-run-on-system-on-a-chip-architectures.aspx 

UEFI e o Windows 
http://msdn.microsoft.com/en-us/windows/hardware/gg463149.aspx

Abraços,

@daibert

http://twitter.com/daibert

Olá pessoal. Esta semana um cliente me pediu uma explicação “bem” detalhada sobre a diferença entre uma aplicação Windows Store feita em HTML5/Javascript versus a mesma aplicação feita em C# (ou VB.Net). Perguntei qual nível ele gostaria de chegar e ele me falou: “Quero saber lá das profundesas”.

Bom, com base nisto, fui resgatar algumas informações importantes que vi em um Deep Dive de Windows Runtime que tive no inicio do ano passado.

A chave para a discussão é saber que, independente da linguagem escolhida o produto final será o mesmo, um binário APPX. Mas, dependendo desta escolha, realmente o modelo de execução das Apps será diferente.

Mas vamos começar pelo começo. Primeiramente, quando você for desenvolver sua Windows Store App, você deve começar por onde você já conhece. Se é um desenvolvedor C#, não vá inventar moda de aprender Javascript + HTML5 + CSS3 para desenvolver sua App. Siga a “lei do menor esforço”.

Sabemos que a criação de aplicações Windows Store pode ser feita em HTM5/Javascript, C#, VB.NET, C++. Mas é importante lembrar que componentes Windows Runtime reutilizáveis, só podem ser criados em C#, VB.NET e C++. E que DLLs estáticas, carregadas por “load library” só podem ser feitas em C++. Isto está representado no quadro abaixo para faciltar:

 

Linguagem

Windows Store app

Componente reutilizável Windows Runtime

Static Library

HTML / JavaScript

X

   

VB .NET

X X  

C# .NET

X X  

C++

X X X

 

Porém, em casos muito específicos, pode ser que você precise seguir nesta linha de “inventar moda”. Como por exemplo, se quiser uma aplicação de extrema performance, deverá seguir pelos caminhos do C++, que é mais performático que o C# e o Javascript, mas por sua vez, nem todo mundo conhece bem o suficiente para desenvolver uma App em C++.

O Windows Runtime, disponibiliza para todas as linguagens suportadas por ele, seus componentes. Isto é o que chamamos de Windows Runtime “in a box”. Além disso, cada linguagem, herda suas específicas como no quadro abaixo:

API específicas

JavaScript

VB.NET/C#.NET

C++

WinJS

X

   

WinRT APIs

X

X X

.NET subset

  X  

Win32 subset

  X X

C Runtime

    X

Platform namespace

    X

 

Por exemplo, pode ser que não existam algumas funcionalidades em .NET subset com APIs equivalentes em C++ ou Javascript.

Um exemplo disto é o namespace System.Net.HTTP no C#. Este componente existe para C# mas não tem um equivalente em C++, e acredite, é bem trabalhoso criar um a partir do zero. Desta forma, podemos utilizar uma arquitetura de componentes aonde a sua aplicação C++ chame um componente feito em C#, para facilitar algumas situações.

Neste post não vou contar a estória do Windows Runtime do começo, mas o importante neste momento é saber que o Windows Runtime é uma evolução e mistura do bom e velho COM.

Desta forma, as Apps Windows Store rodam em um contexto como se fossem uma aplicação COM/DCOM utilizando a arquitetura de componentes do Combase.dll, Ole32.dll, Oleaut32.dll, etc.

Então, ao invés de termos um Co* (Co = Component Object) temos um Ro* (Runtime Object), BSTR para strings no COM e HSTRING no Windows Runtime, assim como no COM, todos os componentes derivam de IUnknow, no Windows Runtime, todos os componentes derivam de IInspectable.

Seria algo como: image

Mas até agora, você está pensando: “O Daibert está me enrolando e não falou ainda da diferença entre as Apps feitas em Javascript e C#”. Pois bem. Contei toda a estória acima para que você possa entender o mecanismo por trás disto tudo.

A grande diferença entre as Apps feitas em Javascript para as feitas em C# é o contexto em que elas rodam.

 

image

As aplicações feitas em Javascript rodam dentro de um container chamado de Windows Web Application ou WWAHost .

Como o Javascript não é compilado, precisamos de um surrogate (neste caso o WWAHOST.EXE) para hospedar o container que executa o Javascript, no caso do Windows o engine chamado de Chakra. Esta combinação, permite que a aplicação feita em Javascript consuma componentes Windows Runtime. Da mesma forma como esta arquitetura não permite que criemos componentes reutilizáveis em Javascript (Viu agora que aquela estória toda lá em cima não foi em vão?).

Já as aplicações feitas em C# e XAML são realmente compiladas e tranformadas em código binário.

 

Bom, espero ter ajudado vocês a entenderem um pouco mais de como funcionam por dentro as Windows Store Apps.

 

Abraços,

@daibert

http://twitter.com/daibert

 

Referências:

COM Surrogate:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms691260(v=vs.85).aspx

http://msdn.microsoft.com/en-us/library/windows/desktop/ms682432(v=vs.85).aspx

http://msdn.microsoft.com/en-us/library/windows/desktop/ms695225(v=vs.85).aspx

MIDL – Microsoft Interface Definition Language

http://msdn.microsoft.com/en-us/library/windows/desktop/aa367091(v=vs.85).aspx

Olá pessoal.

Nesta segunda edição do Windows Talks, o convidado é o Danilo “Cobrinha” Perez.

O Danilo é um desenvolvedor que criou o jogo chamado Snake, para Windows Phone. O Snake é uma versão moderna para o antigo jogo da cobrinha da Nokia.

A grande sacada do Danilo para monetizar a App, foi colocar o ADK – Advertising Development Kit http://www.microsoft.com/en-us/download/details.aspx?id=8729.

E o Danilo focou seu desenvolvimento para Plataforma Windows, pois conseguiu perceber o verdadeiro valor da maior plataforma de Sistemas Operacionais do Mundo, o Windows (http://aka.ms/Mercado01)

 

Monetizando sua App com Advertising com o Danilo “Cobrinha” Perez

 

Mais informações sobre advertising você encontra aqui: http://advertising.microsoft.com/mobile-apps

Abs,

@daibert

http://twitter.com/daibert

Olá pessoal!

Neste outro post http://aka.ms/PhoneNFC  falei um pouco sobre o NFC. Hoje vou falar sobre o Wallet, ou a Carteira Eletrônica, que é uma tecnologia nativa presente em todos os dispositivos Windows Phone 8.

Muitas vezes, o NFC e o Wallet são confundidos um com o outro, por muitas soluções utilizarem um misto entre eles.

Mas agora vamos entender o que é o Wallet.

A Wallet é uma tecnologia implementada nativamente pelo Sistema Operacional do Windows Phone 8. Ela serve como um repositório para aplicações guardarem, de forma segura, informações simples ou transacionais para utilização em serviços de pagamento.

Com a Wallet você pode: image

  • Armazenar no seu telefone cupons, cartões de crédito, programas de fidelidade.
  • Gerenciar e fazer pagamentos em web sites ou na xbox music
  • Utilizar a Wallet para fazer compras em Apps no seu telefone
  • Integrar a Wallet com NFC para fazer trazações entre o seu telefone e um dispositivo externo, como uma máquina de crédito ou débito.

 

Outra questão importante a saber sobre a Wallet, é que cada aplicativo possui uma instancia de sua própria Wallet. Desta forma, cada aplicativo só consegue interagir com os itens e transações criados por eles próprios.

Alguns cenários são fortes candidatos a utilizarem a Wallet, NFC e um misto das tecnologias. No quadro abaixo, apresento alguns cenários e as tecnologias que são fortes candidatas a implementa-los.

Cenário

Wallet

NFC

Cartões de fidelidade

X

 
Promoções de cupons online

X

 
Transações bancarias online

X

 
Transações bancarias em terminais ATM

X

X

Trasnferência de informações entre dispositivos  

X

Trasnferência de música e videos entre dispositivos  

X

 

Outro cenário a ser pensado, é a utilização de um misto entre Apps + NFC + Wallet.

Imagine a seguinte situação:

Você entra em uma App de uma loja que existe fisicamente e recebe um cupom de desconto para compra na loja física. Você salva este cupom na sua Wallet do seu Windows Phone 8.

Então, na hora do seu almoço, você se dirige a loja física, pega o produto e vai ao caixa. Ao chegar no caixa, você abre a sua Wallet no seu Windows Phone 8 e passa o telefone sobre um leitor NFC. Este leitor lê o seu cupom, o remove de sua Wallet e aplica o desconto ao produto.

Wallet01      Wallet02

Esta foi só uma introdução ao que é o Wallet no Windows Phone 8. Em outros posts vou entrar na questão do desenvolvimento de Apps utilizando Wallet.

Para saber mais sobre a Wallet no Windows Phone 8, acesse aqui ó: http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj207032(v=vs.105).aspx

Abs,

@daibert

http://twitter.com/daibert

Olá pessoal, esta é só uma rapidinha do dia.

No Windows Phone 8, temos agora 3 tipos de Live Tiles. São eles:

FlipTileData:

image

CycleTileData:

image

IconicTileData:

image

Para saber mais sobre os novos Live Tiles, acesse: Tiles for Windows Phone

Abs,

@daibert

http://twitter.com/daibert

 

Olá pessoal,

vocês sabiam que a Plataforma Windows é a maior plataforma de sistemas operacionais existente no mundo? Hoje temos mais de 1 Bilhão de usuário rodando Windows em seus dispositivos. Com dados de março de 2012 ainda, posso dizer a vocês que foram vendidas quase 700 milhões de cópias de Windows 7.

E por que estou falando de Windows 7? Simplesmente porque o Windows 8 foi feito para rodar em qualquer máquina que hoje roda o Windows 7, e melhor. Duvida?

Ao se instalar o Windows 7 em uma máquina com 1 Gb de memória Ram, ele consome cerca de 400 Mega de memória. Já instalando o Winddows 8 nesta mesma máquina, o consumo será de apenas 221 Mega. Ou seja, só de você sair do Windows 7 e atualizar para o Windows 8, você já sai ganhando.

Mas você ainda deve estar duvidando de mim, que o Windows é a maior plataforma de Sistemas Operacionais no mundo. Este gráfico do IDC,  de março de 2012, mostra este comparativo com as plataformas da Apple e do Google.

Grafico IDC

Se compararmos, existiam cerca de 117 milhões de dispositivos a mais rodando Windows do que se somarmos dispositivos rodando Android + iOS + MacOS.

Acredita em mim agora?

Desta foma, quando a Microsoft lançou o Windows 8 com uma campanha agressiva de preços para atualização do Windows 7 para o 8, atingiu uma porção grande deste mercado já existente.

Então quando alguns novos desenvolvedores de aplicações móveis me perguntam para qual plataforma começar, sempre apresento estes números e os deixo decidir.

Outro ponto importante a saber é a abrangência deste mercado. Hoje é possível vender Apps Windows 8 e Windows Phone em mais de 200 mercados diferentes, atingindo pessoas que falam mais de 100 linguas diferentes.

 

Mercados

Para saber mais sobre os mercados suportados pela Plataforma Windows, visite http://blogs.msdn.com/b/windowsstore/archive/2012/01/05/global-reach.aspx

Só para deixar aquele gostinho, hoje é véspera do AppDay e estou em Natal. Escrevi este post com esta vista super inspiradora!!!

 

644709_10151358339476487_1110798874_n

 

Abs,

@daibert

http://twitter.com/daibert

Atualizações Twitter