270 likes | 518 Views
GoPro with Windows 8: building an end-to-end XAML app . Ronnie Saurenmann Microsoft Switzerland ronnies@microsoft.com. Your first app. Windows 8 Platform. Windows Store Apps. XAML. HTML / CSS. View. JavaScript (Chakra). C C++. C# VB. Model Controller. WinRT APIs.
E N D
GoPro with Windows 8: building an end-to-end XAML app Ronnie Saurenmann Microsoft Switzerland ronnies@microsoft.com
Windows 8 Platform Windows Store Apps XAML HTML / CSS View JavaScript (Chakra) C C++ C# VB Model Controller WinRT APIs Devices & Printing Communication & Data Graphics & Media System Services Application Model Windows Core OS Services Core
Complete native implementation built on top of DirectX XAML Architecture Windows 8 app (C++, C#, or VB) WinRT/C++ Projection XAML Platform XAML ABI support XAML Core and Framework (Parser, Controls, Property Engine, Styles, Animation etc.) C++ XAML Graphic Engine Windows 8 Subsystem Media App Theming & PVL DirectWrite Direct3D Direct2D Touch
Demo UI
Settings Account • 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
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 Local Storage MyApp MyApp
Demo Settings
Responsive UI Asynchronous programming without callbacks asyncmakes your method asynchronous awaitmakes the rest of your method a callback Tasklets you coordinate activities
Demo Async
Elements of a video player <video> MediaElement MF Extensions & WinRT Components Player framework Streaming (Live & VoD) Codecs PlayReady/DRM Video effects Extensibility Captioning Advertising Error/Retry logic UI/Styling Playlist Management Basic playback Progressive download Local playback
Windows 8 media pipeline Windows Store app <audio src=“…”> <video src=“…”> MediaElement Windows Runtime (WinRT) Playback/Preview Capture Transcode Streaming Extensibility Protection MediaControl Media Foundation DirectX Windows Audio Session API (WASAPI) Audio/Video Source Video Decoder Video Encoder Video Effect 1 Video Effect 2 Audio/Video Sink Audio Decoder Audio Encoder Audio Effect 1 Audio Effect 2
Demo HLS Adapter
Network information API Connected or Offline Internet Access or Local Access Network type Metered Network or non Metered Cost estimation
File System Access File Picker File Picker Programmatic, with capability File Picker File Picker Programmatic, with capability Programmatic, no capability
Demo File System
Play To user experience Play To Controller Play To Receiver
Demo PlayTo
Powerful, Easy & Fun It’s time to build your first app!