Palestra Windows 10 Developer Readiness, realizada no Brasil, como início dos estudos para desenvolvimento de apps para Windows 10, com o novo Universal Windows Platform.
1. Windows 10 Developer
Readiness - Brasil
- Powered by MVPs
Alexandre Chohfi – chohfi@outlook.com
Rodolfo Fadino - rodolfo.fadino@gmail.com
2. http://windows.Microsoft.com
Agenda
Uma única plataforma
Um Windows | Múltiplos dispositivos
Experiência do desenvolvedor
Ferramentas | .Net Native
Uma loja + Estratégias de Monetização
Propaganda | Compras
XAML
A plataforma de UI com XAML (Fundamental + Avançado)
Template 10
Template da comunidade para desenvolvedores Windows 10
4. http://windows.Microsoft.com
Windows Core
Um Core comum refatorado
Uma plataforma de hardware
Formato unico de acesso ao hardware
Rede e I/O padronizadas
Phone
Dispositivo
Xbox
Dispositivo
Desktop
Dispositivo
Windows Core
Desktop
SKU
Phone
SKU
Xbox
SKU
9. http://windows.Microsoft.com
Uma loja +
Um Dev Center
Reuso de
código
existenteUma SDK +
Ferramenta
Interface de
Usuário
adaptativa
Inputs de
Usuário
naturais
Uma Plataforma Universal do Windows
(One Universal Windows Platform)
10. http://windows.Microsoft.com
Universal Windows Platform
Um único conjunto de APIs
Um conjunto garantido de APIs
O mesmo em todos os dispositivos
Phone
Dispositivo
Xbox
Dispositivo
Desktop
Dispositivo
Windows Core
Universal Windows Platform
11. Aplicativos não têm como alvo o
Windows 10, aplicativos tem como
alvo a plataforma
14. http://windows.Microsoft.com
Windows app
Um único binário(pacote)
Rodando em qualquer dispositivo
Testando por capacidades(capabilities)
Ajustando para dispositivos
Phone
Dispositivo
Xbox
Dispositivo
Desktop
Dispositivo
Windows Core
Universal Windows Platform
Windows App
15. http://windows.Microsoft.com
A história do desenvolvedor
Quando desenvolve para iOS,
O desenvolvedor escreve para iPad & iPhone
Quando desenvolve para Android,
O desenvolvedor escreve para todos os dispositivos suportados
Quando desenvolve para Windows 8,
O desenvolvedor escreve para cada um dos dispositivos
Quando desenvolve para Windows 10,
O desenvolvedor escreve para todos os dispositivos
16. http://windows.Microsoft.com
Extensões da plataforma
API específica para dispositivos
Capacidades específicas da família
Compatível entre dispositivos
Cadência única de atualização
Phone
Dispositivo
Xbox
Dispositivo
Desktop
Dispositivo
Windows Core
Universal Windows Platform
Windows App
Phone
extensão
Xbox
extensão
Desktop
extensão
18. http://windows.Microsoft.com
Universal Windows Platform
Um Sistema Operacional
Um Core do Windows para todos os dispositivos
Uma Plataforma de Apps
Apps rodam dentro de sua família
Um Dev Center
Um único fluxo de submissão e um dashboard
Uma Loja
Alcance global, monetização local
Consumidores, Empresas & Academia
21. http://windows.Microsoft.com
Tecnologias de pontes (Bridges)
Objective-C
No Build foi anunciado que código iOS pode ser reutilizado em Apps Windows
Android
No Build foi anunciado que código Android pode ser reutilizado em um App Windows para rodar no Windows Phone
Web
No Build foi anunciado que web sites podem ser empacotados para rodar no Windows
Win32
No Build foi anunciado que Classic Windows Apps (CWA) podem ser empacotados como um Appx
23. http://windows.Microsoft.com
Design Adaptativo
Design responsivo
Design flexivel que responde a pequenas mudanças
Muitos controles gerenciam responsividade básica
Design adaptativo
Layouts inteligentes que se ajustam em grandes mudanças
Funcionalidades como visual states ajudam nesta solução
Design sob medida/específico (Tailored)
App específico para um dispositivo pode simplificar o design
Alguns dispositivos podem ter uma linguagem de design única
29. http://windows.Microsoft.com
Teste por recursos em runtime
Utilize código adaptativo para iluminar seu App em
dispositivos específicos
var api = "Windows.Phone.UI.Input.HardwareButtons";
if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent(api))
{
Windows.Phone.UI.Input.HardwareButtons.CameraPressed
+= CameraButtonPressed;
}
34. http://windows.Microsoft.com
Visual Studio IDE
Todos os tipos de projeto
Desktop, Windows, Phone, Serviços, Web, Games, Outros…
Todas as tarefas de um desenvolvedor
Edição de código, design de arquitetura, design de UX, Debug, Profiling, Review, Testes,
Muito Mais…
Todas as linguagens
C++/CX, C#, Visual Basic, JavaScript, XAML, HTML, Outras…
Visual Studio Online
Repositório de código, gerenciamento de projeto, track de bugs, muito mais…
36. http://windows.Microsoft.com
Blend for Visual Studio
A IDE do desenvolvedor XAML
Sempre parte do Visual Studio
Utiliza o shell do Visual Studio
Auto-completar & intellisense completos
• Validação
• Snippets
• Peek
Gerenciamento de arquivos & solução
Gerenciamento de Recursos
Gerenciamento de Dados
Animações
Estados (States)
37. http://windows.Microsoft.com
Edições do Visual Studio 2015
Enterprise
Modelagem de arquitetura, Diagnosticos, VSO/ALM & Release Management
Professional
Validação de Arquitetura, VSO/ALM & Feedback Management
Edição Community
Visual Studio Professional Edition
38. http://windows.Microsoft.com
Microsoft Developer Network
Documentação Microsoft
http://msdn.Microsoft.com
http://dev.Windows.com
Treinamentos Microsoft
http://msevents.Microsoft.com
http://MicrosoftVirtualAcademy.com
MSDN Subscription
Sistemas Operacionais
Produtos Server/Client
Ferramentas de Desenvolvimento
Créditos no Azure/O365
40. http://windows.Microsoft.com
Onde eu posso desenvolver?
Windows 10
Necessita do Visual Studio 2015
Melhor cenário
Windows 8.1 & Windows Server 2012 R2
O designer do Visual Studio não funciona
Debug necessita um dispositivo com Windows 10, emuladores ou as Ferramentas de
Debug Remoto (Remote Debugging Tools)
Windows 7
O designer do Visual Studio não funciona
Debug necessita um dispositivo com Windows 10 ou as Ferramentas de Debug Remoto
(Remote Debugging Tools)
42. http://windows.Microsoft.com
.NET Native
Próxima geração de compiladores na núvem
Todos Apps Windows
Apps usam o otimizador padrão do C++
A medida que o otimizador melhora, o mesmo se reflete no .Net native
Apps com o bootstrapper .Net
Inclúi garbage collection
Não existe runtime
É código de maquina
51. http://windows.Microsoft.com
Venda seu app
Uma submissão do App para todas as famílias de
dispositivos
Um conjunto de metadados de merchandise
(em breve) Preços de assinaturas(Subscriptions)
(em breve) A loja também estará na web
(em breve) Veiculação de Aplicativos
Campanhas de advertising com balanceamento
Códigos promocionais
Propagandas de instalação de Apps
In-House ads
53. http://windows.Microsoft.com
Empacotamento da Windows Store
Funcionalidade WP XAP 8.1 WP AppX 8.1 AppX 8.1 AppX 10.x
Plataforma WP 8.1+ WP 8.1 Win 8.1 Win 10
Download específico para a build
do OS do Device
Encriptação (ainda não)
App Bundles
Assinatura do pacote Debug
Download/Update diferencial (dif)
File Single Instancing
Instalação no Volume Externo (SD) (Win 10)
Storage compartilhado do
publisher
54. http://windows.Microsoft.com
Distribuição na Windows Store
Windows Phone 7.x, 8.x Windows 8.x Windows 10
Apps ocultos(Hidden)
Preços por mercados
Publicação independente de IAP
Betas
Trial baseado em tempo
Descontos
Publicação agendada
56. http://windows.Microsoft.com
Participando na Business Store
Apps publicados na loja pública
são listados automaticamente na Business Store
Enpresas podem comprar apps em lotes
Licenciamento offline do seu App é opcional
Suporta cenários onde dispositivos estão disconectados da internet
Publique Apps de forma privada em lojas
Portal de empresas permite associas contas de desenvolvedor, e depois ainda pode
selecionar apps específicos para serem publicados apenas para aquela empresa, ignorando
a loja pública
58. http://windows.Microsoft.com
Monetize seu app
Compras no/do Aplicativo
Trial baseado em tempo ou em limitação de funcionalidade
In-App purchase
Advertising
Interstitial video
Broker de Advertising
In-app purchase
Consumiveis & Duraveis
(em breve) Assinaturas
59. http://windows.Microsoft.com
Anuncie seu app
Promova seu app
Segmentação manual ou automática por idade, gênero ou localização
Acompanhe e analise instalações de apps & campanhas
Faça promoção cruzada de seus apps de graça
Em breve
Recursos de segmentação adicionais
Apoio de análises de terceiros
Aumento do orçamento de campanhas
60. http://windows.Microsoft.com
Loja afiliadas
Monetize em sites (blogs)
Ganhe uma comissão de 7% sobre aplicativos, jogos, músicas, filmes e vídeos
Faça vendas de bens físicos & digitais
Pagamentos simplificados e mais rápidos
61. A atividade de pagamento da loja é
centralizada e com limites + baixos
71. http://windows.Microsoft.com
A plataforma de UI XAML
Windows está sendo padronizado
Novas experiências como o menu iniciar e o explorer usam a plataforma de UI XAML
O sistema operacional tem necessidades absurdas de performance
Office está sendo padronizado
A suite universal de apps do Office usam a plataforma de UI XAML
O Office tem necessidades absurdas de usabilidade e funcionalidades
First-party esta sendo padronizado
Os novos e já existentes apps do MSN para Windows usam a plataforma de UI XAML
Apps first-party apps empurram os limites da disponibilidade e capacidade da API
73. http://windows.Microsoft.com
WPF
É uma parte essencial do Windows
O .NET Framework é um componente do SO
WPF é um componente do .NET Framework
A próxima versão do WPF
A roadmap do WPF para o .NET 4.6 é pública
Novas ferramentas para o WPF incluem a Live Tree/Debug
Acesso a APIs modernas
Novas APIs do WinRT estão disponíveis para os apps desktop
Novas funcionalidades do shell (como o Toast) também estão disponíveis
74. O XAML do Windows vai continuar
a inovar dentro do Windows
75. http://windows.Microsoft.com
Blend, a IDE do desenvolvedor XAML
Casca do Visual Studio
Intellisense de XAML
XAML Peek
Configurações sincronizadas
Abertura rápida
Blend Clássico
Resources
Data
Storyboards
States
Behaviors
99. http://windows.Microsoft.com
O que é um Resource XAML?
Resources de sistema
ThemeResources
Resources customizados
Valores (por exemplo font size)
Objetos (por exemplo color brushes)
Estilos de controles
BasedOn
Templates
Templates de Controles
Data templates
103. http://windows.Microsoft.com
Introduzindo o “Template 10”
Um novo template “vazio”
Inclui alguns arquivos e pastas vazias para indicar o caminho da convenção
Similar ao template do MVC
Componentes adicionais para resolver problemas comuns
Resolvendo para os 90%
O código vai resolver o “caso de uso dos 90%”
Entregando com o Windows 10
O template esta no GitHub durante o desenvolvimento
105. http://windows.Microsoft.com
Revisão
Uma única plataforma
Um Windows | Múltiplos dispositivos
Experiência do desenvolvedor
Ferramentas | .Net Native
Uma loja + Estratégias de Monetização
Propaganda | Compras
XAML
A plataforma de UI com XAML (Fundamental + Avançado)
Visite o site do programa MVP para ver a gravação!
http://aka.ms/Win10MVP
107. Fique ligado para mais eventos globais dos MVPs!
Entre em http://mvp.microsoft.com
Notes de l'éditeur
TODO: add some talking points why YOU as dev should care about Win10, mention the servicing to get everybody on the latest version
Platform convergence has been a journey which ends today with Windows 10
We started by bringing Internet Explorer to Windows Phone 7.5 and even Xbox 360. With the release of Windows 8 we laid the foundation with the windows kernel, drivers etc. Windows Phone 8 took advantage of this. Xbox One was built on top of Windows 8 and even used the same runtime so developer could write apps in HTML/WinJS the same framework as available on Windows 8.
With the release of Windows Phone 8.1 the runtimes from Windows 8.1 and phone came together as well. Over 90% API convergence and things like Windows Notification Services, sharing contracts, live tiles etc started to come together.
Our endpoint Threshold brings together everything, the foundation is the same, kernel, drivers etc. The application platform is the same and we will go into a little bit more detail later in this presentation.
Background data:
9/15/11 Windows Phone 7.5
10/26/12 Windows 8
10/29/12 Windows Phone 8
10/18/13 Windows 8.1
11/22/13 Xbox One
4/8/14 Windows 8.1 Update
3/26/14 Windows Phone 8.1
Here’s an example of an app that used adaptive controls on:
a Phone -- [click to build slide]
a Tablet in portrait -- [click to build slide]
and a PC in landscape
The same elements are present across all three, but the layout has adapted. – [click to build slide]
For example, we can see the command bar across all three screens:
On the phone, space is limited and the command pbar is collapsed to a menu icon on the left to show the commands and a search icon on the right.
On the tablet, there is enough room to show the commands along with a search icon
And on the PC, the coamand bart has enough space to adapt to show all the commands plus a full search box
[next slide]
Adaptive controls are great, but we know there will be cases where the app designer wants to do something more custom or more tailored than the adaptive controls will allow.
This desire might be motivated by hardware differences. For example, an app that will run on an Xbox might want to create some customizations for navigation using a game controller.
Or it might be motivated by screen size and usability. A designer might want to position a menu at the bottom of a phone screen to make it more usable with a single hand.
For these cases, we enable developers to create what we call a tailored user experience. In this case, the code is the same, but the developer creates custom XAML to deliver the desired design on the right device or in the right set of conditions.
Tailored design goes beyond Adaptive UX
Developers can create custom experiences for certain devices
The code is the same, but custom XAML can deliver the experience a developer wants
Or perhaps you could use the IsEventPresent to test for events such as:
CameraHalfPressed Occurs when the user presses the hardware camera button halfway.
CameraPressed Occurs when the user presses the hardware camera button.
CameraReleased Occurs when the user releases the hardware camera button.
Because your app has all the dependencies shipped with it the platform can upgrade without impacting it, which means the platform does not have a dependency.