Spark the future.
Lewis Benge
Bring your code to Windows
MOB336
Spark the future.
• Surveying the landscape• Walking some mobile
bridges• Picking the right one• Consider some other
options
Agenda
Whatever kingdom you’re from
Desktop
Mobile
XboxIoT
Holographic
Surface Hub
Universal Windows Platform
Middleware Platforms
Middleware Partners (e.g., Xamarin)
Game Engine Partners (e.g., Unity)
Windows Platform
Universal Windows 8 Apps (C++/C#/JS)
Universal Windows 10 Apps (C++/C#/JS)
Project Centennial (Classic Apps)
Web Platform
Microsoft Edge HTML Engine
Cordova Tooling (HTML/JS)
Hosted Web Apps (HTML/JS)
Other Mobile Platforms
Project Astoria (Java/C++)
Project Islandwood (Objective C/C++)
Other Mobile Platforms
Astoria
• Java / C++ Code
• Use Android IDE
• High code reuse
• Low flexibility
Islandwood
• Objective C Code
• Use Visual Studio
• Medium-high code reuse
• High flexibility
Astoria – Android Bridge
Windows does the heavy lifting for youWe translate and redirect Android concepts to Windows concepts
User experience Cloud services Platform
Notifications
SharingFile
systemCamera
• Acquisition• Input and interaction• App-to-app interactions• Windowing &
navigation• Notifications and live
tiles• …
• In-App Purchases• Ads• Maps• Game Services• Analytics• Notification service• …
• File system• Contacts, photos,
…• Sensors• Camera• Hardware
accelerated graphics & Direct X
• …
How it worksB
uild Open in
Android Studio
Replace Google
Play references
Deplo
y Upload APK to store
Repackaged as AppX
Run Download
from storeAndroid subsyste
m
Cloud ServicesMicrosoft Services
AppInsights
MS Ads
In-app Purchases
Windows Notification Service
Xbox Live Services
Bing Maps
Windows Location services
…
• Project Astoria SDK in Java
• Use Microsoft services with minimal code change
• Get Started in Dev Center
Platform Redirection
APPX
APK
“PROJECT ASTORIA” SUBSYSTEM
WINDOWS
• File system• Contacts, photos,…• Sensors• Camera• Hardware accelerated graphics
& Direct X• Networking/sockets• Application lifecycle• Resource management• Background execution model• Security model
Demo
Islandwood – iOS Bridge
How it worksB
uild Import in
Visual Studio
Compile with
shimsD
ep
loy Upload AppX to
store
Ru
n Download from store
Native Windows
The moving parts
Clang Compiler
iOS Runtime & Libraries
Windows Projections
XAML Composito
r
Tooling
Integrated Visual Studio Development
Xcode projects imported to Visual Studio
Integrated language support: syntax highlighting, autocomplete
Full debugging: breakpoints, stack traces, …
Universal API Interop
Windows does the heavy lifting for you
We translate and redirect iOS concepts to Windows concepts
User experience Cloud services Platform
Notifications
Sharing File system
Camera
Backed by Windows Notificationsand appear in Action Center
StoreKit bridged to WindowsStore Transactions; very few code
changes required
FileSystem paths are mapped;don’t need to reorganize your
project/assets
In-App Purchas
e
Proven compatibility
Candy Crush Saga: Brought to Windows Phone with very few code changes
Interop used for native integration In-App Purchase Local Notifications
Demo
What’s the right choice?
Know the limitations
Consider your long
term strategy
Consider your
resources
Centennial- WPF/Win32
Bringing WPF to a store near you
Full API access
Sandboxed
deployment
Store distributio
n
Some limitations
Test
Update
Convert AppXMSI
Conversion
Westminster - Web
Web vs Windows
Full Windows Runtime access
Evergreen app logic
Offline content
“Augment” instead of “Replace”
Demo
What’s the right choice?
Know the limitations
Consider your long
term strategy
Consider your
resources
Extending the Web to Windows
if (typeof Windows !== 'undefined' && typeof Windows.UI !== 'undefined' && typeof Windows.UI.Notifications !== 'undefined'){
//Call Windows.UI.Notifications }
Whatever code you’re in
Desktop
Mobile
XboxIoT
Holographic
Surface Hub
Universal Windows Platform
Middleware Platforms
Middleware Partners (e.g., Xamarin)
Game Engine Partners (e.g., Unity)
Windows Platform
Universal Windows 8 Apps (C++/C#/JS)
Universal Windows 10 Apps (C++/C#/JS)
Project Centennial (Classic Apps)
Web Platform
Microsoft Edge HTML Engine
Cordova Tooling (HTML/JS)
Hosted Web Apps (HTML/JS)
Other Mobile Platforms
Project Astoria (Java/C++)
Project Islandwood (Objective C/C++)
Complete your session evaluation on My Ignite for your chance to win one of many daily prizes.
Continue your Ignite learning pathVisit Microsoft Virtual Academy for free online training visit https://www.microsoftvirtualacademy.com
Visit Channel 9 to access a wide range of Microsoft training and event recordings https://channel9.msdn.com/
Head to the TechNet Eval Centre to download trials of the latest
Microsoft products http://Microsoft.com/en-us/evalcenter/
© 2015 Microsoft Corporation. All rights reserved.Microsoft, Windows and other product names are or may be registered
trademarks and/or trademarks in the U.S. and/or other countries.MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
AS TO THE INFORMATION IN THIS PRESENTATION.