32
Spark the future.

Lewis Benge Bring your code to Windows MOB336

Embed Size (px)

Citation preview

Page 1: Lewis Benge Bring your code to Windows MOB336

Spark the future.

Page 2: Lewis Benge Bring your code to Windows MOB336

Lewis Benge

Bring your code to Windows

MOB336

Page 3: Lewis Benge Bring your code to Windows MOB336

Spark the future.

Page 4: Lewis Benge Bring your code to Windows MOB336

• Surveying the landscape• Walking some mobile

bridges• Picking the right one• Consider some other

options

Agenda

Page 5: Lewis Benge Bring your code to Windows MOB336

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++)

Page 6: Lewis Benge Bring your code to Windows MOB336

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

Page 7: Lewis Benge Bring your code to Windows MOB336

Astoria – Android Bridge

Page 8: Lewis Benge Bring your code to Windows MOB336

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

• …

Page 9: Lewis Benge Bring your code to Windows MOB336

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

Page 10: Lewis Benge Bring your code to Windows MOB336

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

Page 11: Lewis Benge Bring your code to Windows MOB336

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

Page 12: Lewis Benge Bring your code to Windows MOB336

Demo

Page 13: Lewis Benge Bring your code to Windows MOB336

Islandwood – iOS Bridge

Page 14: Lewis Benge Bring your code to Windows MOB336

How it worksB

uild Import in

Visual Studio

Compile with

shimsD

ep

loy Upload AppX to

store

Ru

n Download from store

Native Windows

Page 15: Lewis Benge Bring your code to Windows MOB336

The moving parts

Clang Compiler

iOS Runtime & Libraries

Windows Projections

XAML Composito

r

Page 16: Lewis Benge Bring your code to Windows MOB336

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

Page 17: Lewis Benge Bring your code to Windows MOB336

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

Page 18: Lewis Benge Bring your code to Windows MOB336

Proven compatibility

Candy Crush Saga: Brought to Windows Phone with very few code changes

Interop used for native integration In-App Purchase Local Notifications

Page 19: Lewis Benge Bring your code to Windows MOB336

Demo

Page 20: Lewis Benge Bring your code to Windows MOB336

What’s the right choice?

Know the limitations

Consider your long

term strategy

Consider your

resources

Page 21: Lewis Benge Bring your code to Windows MOB336

Centennial- WPF/Win32

Page 22: Lewis Benge Bring your code to Windows MOB336

Bringing WPF to a store near you

Full API access

Sandboxed

deployment

Store distributio

n

Some limitations

Page 23: Lewis Benge Bring your code to Windows MOB336

Test

Update

Convert AppXMSI

Conversion

Page 24: Lewis Benge Bring your code to Windows MOB336

Westminster - Web

Page 25: Lewis Benge Bring your code to Windows MOB336

Web vs Windows

Full Windows Runtime access

Evergreen app logic

Offline content

“Augment” instead of “Replace”

Page 26: Lewis Benge Bring your code to Windows MOB336

Demo

Page 27: Lewis Benge Bring your code to Windows MOB336

What’s the right choice?

Know the limitations

Consider your long

term strategy

Consider your

resources

Page 28: Lewis Benge Bring your code to Windows MOB336

Extending the Web to Windows

if (typeof Windows !== 'undefined' && typeof Windows.UI !== 'undefined' && typeof Windows.UI.Notifications !== 'undefined'){

//Call Windows.UI.Notifications }

Page 29: Lewis Benge Bring your code to Windows MOB336

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++)

Page 30: Lewis Benge Bring your code to Windows MOB336

Complete your session evaluation on My Ignite for your chance to win one of many daily prizes.

Page 31: Lewis Benge Bring your code to Windows MOB336

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/

Page 32: Lewis Benge Bring your code to Windows MOB336

© 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.