Win301 caio garcez_uwp_bridges
-
Upload
caio-chaves-garcez -
Category
Software
-
view
290 -
download
0
Transcript of Win301 caio garcez_uwp_bridges
Desktop
Mobile
XboxIoT
Holographic
Surface Hub
Universal Windows Platform
Plataformas MiddlewareMiddleware Partners (e.g., Xamarin)Game Engine Partners (e.g., Unity)
Plataforma WindowsUniversal Windows 8 Apps (C++/C#/JS)
Universal Windows 10 Apps (C++/C#/JS)
Project Centennial (Classic Apps)
Plataforma Web
Microsoft EdgeHTML Engine
Cordova Tooling (HTML/JS)
Hosted Web Apps (HTML/JS)
Outras Plataformas
Windows Bridge for Android (Java/C++)
Windows Bridge for iOS (Objective C/C++)
Universal Windows Platform
Project Centennial é uma ponte entre aplicações Windows clássicas (.NET, Win32) eUniversal Windows Apps
MotivaçãoAmplo ecossistema de aplicações Windows clássicasNão há um app model para estas aplicaçõesMSI é frágilPublicação na Windows StoreAplicações podem ser gradualmente migradas para UWAs
RestriçõesAplicação deve rodar como standard user – sem privilégios de adminAplicação não pode rodar em kernel modeAplicação não pode ser um serviço WindowsCódigo que trata licenciamento precisa ser removido ou ajustado
App-V X Project CentennialApp-V Project Centennial
Público-alvo Empresas Desenvolvedores
Acesso ao código-fonte Não Sim
Bugs Têm que ser contornados Têm que ser corrigidos
Produto final App Bubble Appx
Merging
SystemNamespace
AppNamespace
Merged View
C:\Windows\System \advapi.dll \kernel32.dll \shell32.dll
C:\Windows\System \msvcrt.dllC:\Windows\System
\advapi.dll \kernel32.dll \msvcrt.dll \shell32.dll
Redirect
SystemNamespace
AppNamespace
Merged View
Documents
AppDataRegistry
AppDataRegistryDocuments
Objetivos para v1
Live tilesAssociações com tipos de arquivosAtivação por protocolo (meuapp://...)Novas funcionalidades que usem a UWP:App Universal executada em um App Container
Migração para UWA/App ContainerInicie movendo a UI para XAMLElimine gradualmente o código full trustUma vez migrada - rode em qualquer dispositivo!
Motivação“Our goal for the Windows Bridge for Android is to help you reuse your existing Java and C++ Android code to bring experiences to Windows 10 customers, beginning with Windows 10 Mobile.
It is our hope that this will be your first step in adoption of the Universal Windows Platform, enabling you to deliver the richest experiences across all Windows 10 devices – phone, tablet, PC, Xbox and more.”
Requisitos para DesenvolvimentoWindows 8.1/Windows 10/OS X YosemiteJava JDK 1.7+IntelliJ/Android Studio
Processo de ConversãoConfigure ambiente de DesenvolvimentoFaça ajustes no script GradleAdicione arquivo de configuração (MicrosoftServices.xml)Configure serviços específicosAdsAnalyticsCloud MessagingLocation ServicesMaps Service
Adicione APIs “light-up”Live TilesCortana
buildscript { repositories { maven { url uri('https://projectastoriasdk.blob.core.windows.net/gradleplugin') } } dependencies { classpath 'com.microsoft.services:windowsBridgePlugin:1.0' }}apply plugin: 'com.microsoft.services'
Modificações no script Gradle
android { ... productFlavors { windows { } android { } }}...dependencies { // compile 'com.google.android.gms:play-services:6.5.87' androidCompile 'com.google.android.gms:play-services:6.5.87‘ windowsCompile 'com.microsoft.services:interop:6.5.87' ... }
Flavor Microsoft + Ajuste de Dependência
Redirecionamento de PlataformaRecursos da plataforma Android são redirecionados para o Windows
APPX
APK
SUB-SISTEMA “WINDOWS BRIDGE FOR ANDROID”
WINDOWS
• File system• Contacts, photos,…• Sensors• Camera• Hardware accelerated graphics & Direct
X• Networking/sockets• Application lifecycle• Resource management• Background execution model• Security model
Windows faz o “trabalho pesado”A plataforma traduz e redireciona conceitos Android para conceitos Windows
Experiência de usuário Serviços de Nuvem Plataforma
NotificaçõesSharing File system Câmera
• Aquisição• Input e interação• Comunicação App-to-app• Windowing & navegação• Notificações e live tiles• …
• In-App Purchases• Ads• Mapas• Game Services• Analytics• Serviço de Notificação• …
• File system• Contatos, fotos,…• Sensores• Câmera• Gráficos acelerados por Hardware
& Direct X• …
Portal de análise de pacotes APKRealiza análise estática de pacotesTroca íconesIdentifica chamadas a serviços Google Play
Experiência de UsuárioApps criados com o Project Astoriasão apps Windows
Users adquirem apps através da Windows Store
Motivação“What is WinObjC?Windows Bridge for iOS (also referred to as WinObjC) is a Microsoft open source project that provides an Objective-C development environment for Visual Studio/Windows. In addition, WinObjC provides support for iOS API compatibility.”
Crie Universal Windows Apps em Objective-CSuporte à linguagem Objective-C
Compilador e Ambiente de Execução (Runtime)APIs
Compatibilidade com APIs iOSFerramentas
Editor/WorkflowImportação de projetos
FerramentasDesenvolvimento integrado no Visual Studio
Projetos Xcode importados no Visual Studio
Suporte integrado à linguagem: syntax highlighting, autocomplete
Depuração completa: breakpoints, stack traces, …
Interop com API Universal
Ferramentas
Projetos Xcode projects importados no Visual StudioConfigurações de projeto compartilhadas, importadas do Xcode
Processo de ConversãoInstale o SDKRode a ferramenta vsimporter.exeDefina projeto inicial na solução (Startup Project)Execute/Teste/AjustePublique!
CustomizaçãoApp não limitado a tamanhos fixos de tela
Categoria UIApplicationStartupModeOperationMode
Trata form factorappBackButtonPressed
Callback para botão físico Back
Funciona em todos os dispositivos Windows 10
Instale em mais dispositivos
Múltiplos “form-factors”
CPUs ARM, x86 e x64
Windows faz o “trabalho pesado”A plataforma traduz e redireciona conceitos iOS para conceitos Windows
Experiência de usuário Monetization services Plataforma
NotificationsSharing File system CameraIn-App Purchase
Suportado por Windows NotificationsE aparecem no Action Center
StoreKit redirecionado para transaçõesda Windows Store; exige poucas
mudanças no código
Windows 10
Caminhos do FileSystem são mapeados;não é preciso reorganizar
o projeto ou seus arquivos
Compatibilidade de APIs
Suporta um subconjunto de APIs iOSNão aponta para uma versão específica do iOSAPIs mais usadas são implementadas primeiro
• Jogos: OpenGL (ANGLE, CAEAGLLayer, EAGLContext), OpenAL, Sensors• UI: UIKit, CoreAnimation,
CoreGraphics, CoreText, Touch• Objective-C: ARC, blocks• Foundation /
CoreFoundation• Serviços: StoreKit, Social,
Notificações, …
Exemplo
Candy Crush Saga: Portado para o Windows Phone com poucas alteraçõesNo código
Interop usado para integração nativa• In-App Purchase• Notificações locais
Windows Bridges - ComparaçãoWindows Bridge Acesso a APIs da UWP Esforço Manutenção
Hosted Web Apps (Westminster) Completo Criação do manifesto
Submissão para Store Site Web
Centennial CompletoConversão
AjustesSubmissão para Store
Depende
Windows Bridge for Android (Astoria) Parcial
ConversãoAjustes
Submissão para StoreIDE Android
Windows Bridge for iOS (Islandwood) Completo
ImportaçãoAjustes
Submissão para StoreVisual Studio
LinksIntroducing the Universal Windows Platform Bridgeshttps://dev.windows.com/en-us/uwp-bridges
Universal Windows Platform Bridge for the Android Runtimehttp://aka.ms/projectastoria Project Islandwoodhttp://aka.ms/islandwoodhttps://github.com/Microsoft/WinObjC
Sessões relacionadas
• WIN207 - Hosted Web Apps: Leve seu web site para dentro de uma app
• WIN302 - 10 Motivos para utilizar Apache Cordova no Visual Studio 2015
• WIN303 - Desenvolvendo Apps com C# para iOS, Android e Windows com Xamarin
Evento de encerramento do Microsoft Insights Week
com Satya Nadella, CEO da Microsoft.Dia 29 de setembro
AMCHAM - Rua da Paz 1431Chácara Santo Antônio - SP
Para se inscrever: http://aka.ms/satyabr