27
GoPro with Windows 8: building an end-to-end XAML app Ronnie Saurenmann Microsoft Switzerland [email protected]

GoPro with Windows 8: building an end-to-end XAML app

  • Upload
    london

  • View
    73

  • Download
    0

Embed Size (px)

DESCRIPTION

GoPro with Windows 8: building an end-to-end XAML app . Ronnie Saurenmann Microsoft Switzerland [email protected]. Your first app. Windows 8 Platform. Windows Store Apps. XAML. HTML / CSS. View. JavaScript (Chakra). C C++. C# VB. Model Controller. WinRT APIs. - PowerPoint PPT Presentation

Citation preview

Page 1: GoPro with Windows 8:  building an end-to-end XAML app

GoPro with Windows 8: building an end-to-end XAML app Ronnie SaurenmannMicrosoft [email protected]

Page 2: GoPro with Windows 8:  building an end-to-end XAML app

Your first app

Page 3: GoPro with Windows 8:  building an end-to-end XAML app

Windows 8 PlatformWindows Store Apps

JavaScript(Chakra)

CC++

C#VB

XAML HTML / CSSView

Mod

el

Cont

rolle

r

Windows Core OS ServicesCore

Communication

& DataApplication Model

Devices & Printing

WinRT APIsGraphics &

Media

Syst

em S

ervi

ces

Page 4: GoPro with Windows 8:  building an end-to-end XAML app

XAML Architecture• Complete

native implementation built on top of DirectX

Windows 8 Subsystem

Windows 8 app (C++, C#, or VB)

App Theming & PVL Direct3DDirectWrit

e Direct2DMedia Touch

XAML Platform

WinRT/C++ Projection

XAML Graphic Engine

XAML Core and Framework (Parser, Controls, Property Engine, Styles, Animation etc.)

XAML ABI support

C++

Page 5: GoPro with Windows 8:  building an end-to-end XAML app

DemoUI

Page 6: GoPro with Windows 8:  building an end-to-end XAML app

Settings

Page 7: GoPro with Windows 8:  building an end-to-end XAML app

Settings• Place all app settings under one roof where users will always expect to

find them

• Do not create additional entry points into Settings on the app canvas

• When users invoke Settings charm, they will see your app’s basic info, and settings commands as specified by your app

• Common settings commands: your settings categories, Help, About, Terms of use…

• Once users choose a settings command, the settings pane will be brought up. Your app controls the UI within the settings pane

• Keep it simple, minimize the number of settings

Account

Page 8: GoPro with Windows 8:  building an end-to-end XAML app

Roam Leverage roaming to maintain state and preferences across

machines Roam preferences that users are likely to set on each device

anyway: Favorite sports team (sports app) Favorite movie genre (media app)

Let users continue a task across devices by roaming app data: Composing a to-do list Composing email

Cloud Storage provided by

Microsoft

Local Storage

MyApp MyAppLocal Storage

Page 9: GoPro with Windows 8:  building an end-to-end XAML app

DemoSettings

Page 10: GoPro with Windows 8:  building an end-to-end XAML app

Async

Page 11: GoPro with Windows 8:  building an end-to-end XAML app

Responsive UIAsynchronous programming without callbacksasync makes your method asynchronousawait makes the rest of your method a callbackTask lets you coordinate activities

Page 12: GoPro with Windows 8:  building an end-to-end XAML app

DemoAsync

Page 13: GoPro with Windows 8:  building an end-to-end XAML app

Media

Page 14: GoPro with Windows 8:  building an end-to-end XAML app

Elements of a video player

<video>MediaElement

MF Extensions & WinRT

ComponentsPlayer

framework

Basic playbackProgressive downloadLocal playback

Streaming (Live & VoD)CodecsPlayReady/DRMVideo effectsExtensibility

CaptioningAdvertisingError/Retry logicUI/StylingPlaylist Management

Page 15: GoPro with Windows 8:  building an end-to-end XAML app

Windows 8 media pipelineWindows Store app

Playback/Preview Capture Transcode Streaming Extensibilit

y Protection MediaControl

Media FoundationAudio/Video

SourceAudio/Video

SinkVideo Decoder

Audio Decoder

Video Encoder

Audio Encoder

Video Effect 1

Audio Effect 1

Video Effect 2

Audio Effect 2

DirectX Windows Audio Session API (WASAPI)

<audio src=“…”><video src=“…”> Windows Runtime (WinRT)MediaElement

Page 16: GoPro with Windows 8:  building an end-to-end XAML app

DemoHLS Adapter

Page 17: GoPro with Windows 8:  building an end-to-end XAML app

Network detection

Page 18: GoPro with Windows 8:  building an end-to-end XAML app

Network information API• Connected or Offline• Internet Access or Local Access• Network type• Metered Network or non Metered• Cost estimation

Page 19: GoPro with Windows 8:  building an end-to-end XAML app

Demo

Page 20: GoPro with Windows 8:  building an end-to-end XAML app

File System

Page 21: GoPro with Windows 8:  building an end-to-end XAML app

File System AccessNetwork

Local File System

Removable Storage

Know Folders(Pictures, Documents,

etc…)

App Data(Isolated storage)

File Picker Programmatic, with capability

File Picker

File Picker

Programmatic, with capability

File Picker

Programmatic, no capability

Page 22: GoPro with Windows 8:  building an end-to-end XAML app

DemoFile System

Page 23: GoPro with Windows 8:  building an end-to-end XAML app

PlayTo

Page 24: GoPro with Windows 8:  building an end-to-end XAML app

www.buildwindows.com

Play To user experience

Play To Controller

Play To Receiver

Page 25: GoPro with Windows 8:  building an end-to-end XAML app

DemoPlayTo

Page 26: GoPro with Windows 8:  building an end-to-end XAML app

Powerful, Easy & Fun

HTTP

Network

XAML

Async

File System

PlayTo

Streaming

HLS

Capabilities

Roaming

App Bar

Linq

Remote debugging

SettingsIt’s time to build your first app!

Page 27: GoPro with Windows 8:  building an end-to-end XAML app

© 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a

commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.