Develop a Windows 10 App. Deploy it on PC, Phone and Raspberry Pi.

62
MOBILE CAMP - NAPOLI Develop a Windows 10 app Deploy it on PC, Phone and Raspberry Pi Clemente Giorio

Transcript of Develop a Windows 10 App. Deploy it on PC, Phone and Raspberry Pi.

Page 1: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

MOBILE CAMP - NAPOLIDevelop a Windows 10 app

Deploy it on PC, Phone and Raspberry Pi

Clemente Giorio

Page 2: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Hi! I’m Clemente

@tinux80 Kinect MVP Author

Research &

DevelopmentMember

Page 3: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Overview on Universal Windows Platform

How to Develop a simple UWP app

Deploy on PC

Agenda

Deploy on Phone

Deploy on Raspberry Pi 2

Page 4: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Mobile

Holographic Surface

Hub

XboxIoT

Desktop

Page 5: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Windows Core

One Hardware platform

Universal hardware driver

Standard network and I/O

One App Mode

One Windows Kernel

Page 6: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Windows Core The refactored common core

One hardware platform Universal hardware driver Standard network and I/O

PhoneDevice

XboxDevice

DesktopDevice

Windows Core

DesktopSKU

PhoneSKU

XboxSKU

Page 7: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

One Windows

DesktopSKU

PC

2 in 1

MobileSKU

Tablet

Phablet

Phone

XboxSKU

Xbox

IoTSKU

Band

IoT headless

SKU

Raspberry Pi

Home Automatio

n

Surface HubSKU

Surface Hub

Holographic

SKU

HoloLens

Page 8: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

Each family adds features to the one it inherits

Page 9: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Easy for users to get & stay

current

Unified core and app platform

The convergence journey

Windows Phone 7.5

Windows Phone 8Windows Phone 8.1

Windows 8

Xbox One

Windows on Devices

Xbox 360

Windows 8.1

Windows 10

ConvergedOS kernel

Convergedapp model

Page 10: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Phone Small Tablet

2-in-1s(Tablet or Laptop)

Desktops & All-in-OnesPhablet Large Tablet

Classic Laptop

Xbox IoTSurface Hub

Holographic

Windows 10

Page 11: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Multiple device families

PC XBoxMobile Surface Hub

HoloLensDevices +IoT

Universal Windows Apps

One Store +One Dev Center

Reuse Existing CodeOne SDK +

Tooling

Adaptive User Interface Natural

User Inputs

One Universal Windows Platform

Page 12: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Universal Windows Platform A single API surface

A guaranteed API surface The same on all devices

PhoneDevice

XboxDevice

DesktopDevice

Windows Core

Universal Windows Platform

Page 13: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

One Windows

DesktopSKU

PC

2 in 1

MobileSKU

Tablet

Phablet

Phone

XboxSKU

Xbox

IoTSKU

Band

IoT headless

SKU

Raspberry Pi

Home Automatio

n

Surface HubSKU

Surface Hub

Holographic

SKU

HoloLens

Page 14: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

Apps don't target Operating System, Apps target the platform

Page 15: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Universal Windows 8.1 app

#if WINDOWS_APP ResourceLoader loader = new ResourceLoader(); string about = loader.GetString("SettingsLabel/Text"); string privacy = loader.GetString("PrivacySettings/Text"); string options = loader.GetString("Settings/Text"); ISettingsService settings = container.RegisterSettingsService(); settings.RegisterFlyoutCommand<AboutViewModel>(about); settings.RegisterFlyoutCommand<PrivacyPolicyViewModel>(privacy); settings.RegisterFlyoutCommand<SettingsViewModel>(options);#endif

Page 16: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

<TargetPlatform

Name="Microsoft.Universal"minVersion="10.0.10069.0" maxVersionTested="10.0.10190.0"/>

Page 17: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

The Universal Windows Platform can update at its own cadence

Page 18: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Windows app A single binary

Running on any device Testing for capabilities Adjusting to devices

PhoneDevice

XboxDevice

DesktopDevice

Windows Core

Universal Windows Platform

Windows App

Page 19: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Platform extensions Device-specific API

Family-specific capabilities Compatible across devices Unique update cadence

PhoneDevice

XboxDevice

DesktopDevice

Windows Core

Universal Windows Platform

Windows App

Phoneextension

Xboxextension

Desktop

extension

Page 20: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Platform extensions

Page 21: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

Extensions don't invalidate binaries on other devices

Page 22: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Universal Windows Platform

StoreDev Center

Winows Core

App Platform

Page 23: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

Traditional Microsoft technologies are not the only way to create Windows apps

Page 24: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Windows 10operating system

Bridging technologies

Win32

desktop

Webhosted

JavaAndroid

Obj.CiOS

Universal Windows Platform

WWAC++& CX

.Netlanguages

HTMLDirectX

XAML

C++

.Netlanguages

MFCWFWPF

.Netruntime

Page 25: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Let’s talk about bridge technologies Objective-C

At Build we announced iOS code can be reused in a Windows app

Android At Build we announced Android code can be reused in a Windows app to run on Windows Phone

Web At Build we announced web sites can be wrapped to run on Windows

Win32 At Build we announced that Classic Windows Apps (CWA) can be packaged as an Appx

Page 26: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

Bridges bring more apps to the Windows platform

Page 27: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Adaptive design Responsive design

Flexible layout responds to small changes Many controls handle basic responsiveness

Adaptive design Smart layout adjusts to large changes Features like visual states aid in this design

Tailored design A device-specific app can simplify design Some devices have unique design languages

Page 28: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

Users love apps that work great on all their devices

Page 29: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Test capabilities at runtime Use Adaptive Code to light-up

your app on specific devices

var api = "Windows.Phone.UI.Input.HardwareButtons";if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent(api)){

Windows.Phone.UI.Input.HardwareButtons.CameraPressed += CameraButtonPressed;} 

Page 30: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

IsApiContractPresentIsEnumNamedValuePresentIsEventPresentIsMethodPresentIsPropertyPresentIsReadOnlyPropertyPresentIsTypePresentIsWriteablePropertyPresent

Windows.Foundation.Metadata.ApiInformation

Test capabilities at runtime

Page 31: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

UAP

Windows Core Windows Core Windows Core Windows Core

UAP UAP UAP

Desktop Mobile Xbox More…

Page 32: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

The device families you choose determines which APIs you can call freely

Page 33: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

One simple, unified, integrated development environment

Page 34: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Visual Studio IDE Every project type

Desktop, Windows, Phone, Service, Web, Game, More…

Every developer task Code edit, Architecture design, UX design, Debug, Profile, Review, Test,

More…

Every development language C++/CX, C#, Visual Basic, JavaScript, XAML, HTML, More…

Visual Studio Online Source repository, project management, bug tracking, More…

Page 35: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Where can I develop? Windows 10

Requires Visual Studio 2015

Windows 8.1 & Windows Server 2012 R2 The Visual Studio designer does not function Debugging requires a Windows 10 device or Remote Debugging Tools

Page 36: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

ChecklistWidows 10 Insider Previewhttp://insider.windows.comVisualVisual Studio 2015 RChttp://www.visualstudio.comWindows Developer License

Hyper-V (WP)

Page 37: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Introducing “Template 10” A new blank template

Includes a few files & empty folders to guide conventions

Similar to the MVC template Add-on components to solve common problems

Solving for the 90% The code will solve the 90% use case

Delivering with Windows 10 The template is in GitHub and still under construction

Page 38: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Developer unlock

Page 39: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Now “Hello World!”

The code

Deploy on PC

Deploy on Phone Emulator

Deploy on Raspberry Pi 2

Page 40: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Page 41: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

DEMO:

“Hello World”

Page 42: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Page 43: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Page 44: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Page 45: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

SETUP

Windows Embedded Pre-Release Programs

Setup Raspberry Pi 2

Boot Windows 10 IoT Core Insider Preview

Page 46: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Page 47: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

DEMO:

“LED”

Page 48: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Page 49: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Page 50: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Page 51: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Page 52: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Page 53: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Page 54: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Page 55: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Page 56: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Page 57: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Page 58: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Page 59: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

DEMO:

“Two LEDs”

Page 60: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Ahsante

Thank you

Page 61: Develop a Windows 10 App.  Deploy it on PC, Phone and Raspberry Pi.

@meetdux

Facebook

Community

Twitter

Linkedin

Connect Beyond the Presentation