Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Microsoft Build 2017 Mobile Wrap-Up

Microsoft Build 2017 Mobile Wrap-Up

- Back on Build 2016
- Xamarin.Forms
- XAML Standard
- Xamarin Native
- Visual Studio & Tools
- Mobile Center
- Fluent Design System
- UWP

Cyril

May 18, 2017
Tweet

More Decks by Cyril

Other Decks in Programming

Transcript

  1. //Build 2017
    What’s new for mobile ?

    View Slide

  2. About us
    • John Thiriet
    • Consultant / Trainer
    @ Cellenza
    • Microsoft MVP
    • Xamarin MVP
    • https://john-thiriet.com/
    • @johnthiriet
    • Cyril Cathala
    • Consultant / Trainer
    @ Soat
    • Microsoft MVP
    • @cyrilcathala

    View Slide

  3. About the meetup
    • Native Mobile Cross Platform
    • Xamarin
    • ReactNative
    • NativeScript
    • ...
    • Created in may 2016
    • Always looking for subjects and venues
    • Special 1 year anniversary meetup coming soon

    View Slide

  4. Retro //BUILD 2016
    ...building blocks everywhere...

    View Slide

  5. What about last year
    • Xamarin Studio 6
    • Open Sourcing
    • iOS Simulator + iOS USB Remoting
    • Workbooks
    • Native HTTP Handlers
    • Test Cloud Live
    • Xamarin Insights HockeyApps

    View Slide

  6. Xamarin Forms

    View Slide

  7. Xamarin.Forms 2.3.5
    • Pre-release
    • Fast Renderers for Android
    • Button, Label and Image
    • Support for macOS (preview)
    • Better accessibility
    • Map renderer extensibility
    • .NET Standard Compatible (1.1+)
    • 160+ bug fixes

    View Slide

  8. Xamarin.Forms 3.0+
    Performance Features

    View Slide

  9. Layout Cycle

    View Slide

  10. Layout Cycle

    View Slide

  11. Performance
    Grid
    StackLayout Grid
    Label Button Image Label
    Panel
    Panel Panel
    LabelRender
    Button
    Renderer
    Image
    Renderer
    Label
    Renderer
    TextBlock Button Image TextBlock
    Forms UWP

    View Slide

  12. Performance
    Grid
    StackLayout Grid
    Label Button Image Label
    Panel
    LabelRender
    Button
    Renderer
    Image
    Renderer
    Label
    Renderer
    TextBlock Button Image TextBlock
    Forms UWP
    Compression

    View Slide

  13. Performance
    Grid
    StackLayout Grid
    Label Button Image Label
    Panel
    LabelRender
    Button
    Renderer
    Image
    Renderer
    Label
    Renderer
    Forms UWP
    Compression + Fast Renderer

    View Slide

  14. Xamarin.Forms 3.0+
    Performance Features

    View Slide

  15. Xamarin.Forms 3.0+
    • FlexLayout
    • CSS inspired
    • ListView improvements
    • Faster loading
    • Direct item insertion
    • Remove need to use ViewCell
    • Standardized Renderer API

    View Slide

  16. Xamarin.Forms 3.0+
    • OneTime binding
    • Continued XAMLC Improvements
    • Remove more reflection
    • Compile faster
    • CSS-Like Styling
    • CSS support with selectors
    • Visual State Manager
    • Better adaptive layout
    • RelativeLayout

    View Slide

  17. Xamarin.Forms 3.0+
    • Embedding Xamarin.Forms into Xamarin native apps
    • New backends
    • macOS , Tizen, GTK#, WPF
    • Pre-release soon!
    http://aka.ms/xfroadmap

    View Slide

  18. XAML Standard

    View Slide

  19. XAML Standard
    • Vocabulary spec
    • XAML Standard 1.0 later this year
    • Draft v1 in progress
    • Unify UWP and Xamarin.Forms
    • Xamarin.Forms will implement XAML Standard
    http://aka.ms/xamlstandard

    View Slide

  20. View Slide

  21. .NET Core / .NET Standard

    View Slide

  22. .NET Core / .NET Standard 1.6
    • 1.6 had not enough API making
    the port of existing .NET
    Framework application code to
    .NET Core almost impossible
    • Issue with third-party library if it
    doesn’t implement .NET
    Standard 1.x

    View Slide

  23. .NET Core / .NET Standard 2.0
    • +20k api compared with 1.x
    • 70% of NuGet packages are compatible
    • Support for referencing .NET framework libraries and projects
    • .NET Core 2.0 treats all linux distros as a single OS
    • Removing OpenSSL on Mac and using Apple’s crypto librairies
    • Live testing support for .NET Core projects within Visual Studio
    2017
    • Visual Studio support for side-by-side .NET Core SDKs

    View Slide

  24. Xamarin Natif

    View Slide

  25. Binding to native Libs
    • Improved
    • Java binding projects
    • ObjectiveC binding projects
    • Added
    • CocoaPods Importer
    • Soon (this summer)
    • SwiftNetifier (fully automated)

    View Slide

  26. Apple - Extensions
    • Fully supported
    • Multi process debugging
    • Shared .NET runtime between the main application and its
    extensions

    View Slide

  27. AOT comes to Android and Mac
    • Improved performance and runtime (LLVM optimization)
    • Hybrid mode possible
    • Pre-compile, optimize, obfuscate
    • Dynamic code generation is still here
    • Dynamically loading assemblies works

    View Slide

  28. Visual Studio + Tooling

    View Slide

  29. Visual Studio 2017 for Mac
    • Xamarin Studio rebranding
    • Roslyn-based C# IntelliSense, refactoring, analyzers and code fixes
    • NuGet-based package management
    • Visual Studio compatible project format
    • MSBuild build engine
    • Integrated unit testing
    • Support for F# out-of-the-box

    View Slide

  30. Visual Studio 2017 for Mac
    • C# 7 Support
    • Mono 5.0 Support
    • Concurrent SGen garbage collection
    • Roslyn C# compiler
    • Ongoing convergence with .NET Class Library
    • .NET Core Support
    • Web Tooling
    • Publish ASP.NET Core Web Apps to Azure
    • Multi-Process Debugging

    View Slide

  31. Android Platform
    Integrated SDK Manager Material Design Support

    View Slide

  32. Xamarin Live Player - Preview
    • Install the Xamarin Live Player
    app on the phone
    • Pair Visual Studio and the phone
    via QRCode
    • Two mode for using it
    • Debug the app remotely
    • Live edit a screen
    • Streams the source code to the
    mobile and runs it locally

    View Slide

  33. Xamarin Live Player - Limitations
    • Android AXML files not supported
    • “ Some” iOS storyboards features not supported
    • iOS XIB not supported
    • Limited reflection support (troubles with SQLite or JSON.NET nugets)
    • Some system classes cannot be overriden
    • Some features that require provisioning might not work (ex: HealthKit)
    • Problems with big projects
    • Problems with firewalls

    View Slide

  34. Xamarin Live Player - Limitations

    View Slide

  35. Fastlane integration

    View Slide

  36. Fastlane integration
    • iOS signing workflow updates
    • Create new signing identities and install them to the local Keychain
    • Create new Provisioning Profiles
    • Add a new signing identity to an existing profile
    • Provision new devices

    View Slide

  37. Cross Platform APIs
    • SkiaSharp
    • Skia is the 2D graphics library that powers Google Chrome and Android
    • Android, iOS, Mac, UWP, tvOS, Windows
    • Shapes, Curves, Paths, Transformations, Effects, Shaders
    • GPU accelerated where possible
    • SVG Loading
    • Urhno
    • 3D engine
    • Android, iOS, Mac, UWP, tvOS, Windows
    • Mixed reality ready (VR and AR)
    • 3D scenes, effects, shaders

    View Slide

  38. Embeddinator-4000
    • .NET in every program
    • Embeds .NET into a native library for each platform
    • Android => jar
    • Swift => framework
    • ObjectiveC => framework
    • C/C++ => native library(.a, .so ....)
    • Also works with UI code
    • Idiomatic bindings
    • Thoughts about embedding Xamarin Forms into native apps

    View Slide

  39. Project Rome
    • Cross-device & cross-platform experiences
    • Using Microsoft Graph
    • Interaction through Microsoft or Azure AD account
    • Remote systems and remote sessions API
    • Discover, launch, and message to your apps on other devices

    View Slide

  40. Mobile Center

    View Slide

  41. Mobile Center
    • Continuous everything
    • Build
    • Test
    • Distribute
    • Tables
    • Identity
    • Crashes
    • Analytics
    • Push
    • API first
    • Everything on the portal is usable
    through an API
    • A Swagger is available
    • No need for a Mac to build iOS
    • Use what you want
    • Integration with other tools
    • VSTS, Github, BitBucket
    • HockeyApp
    • Mobile Center Test Cloud
    • ...

    View Slide

  42. Mobile Center
    Cons
    • Still in preview
    • No pricing known
    • No known release date
    • No possibility to add custom
    build tasks (annoying for
    resigning apps)
    • A lot of components that
    sometimes feels not correctly
    joined together
    Pros
    • No need for a Mac as a Build
    Machine
    • Fast build
    • Uses VSTS under the hood
    • Analytics feels promising
    • Team listening to feedbacks

    View Slide

  43. Fluent Design

    View Slide

  44. View Slide

  45. Fluent Design System
    • New Microsoft design guidelines
    • Light, Depth, Motion, Material, Scale
    • Acrylic material
    • Connected animations
    • Reveal highlight
    http://fluent.microsoft.com

    View Slide

  46. UWP

    View Slide

  47. UWP
    • Ease integration for Fluent Design System
    • Acrylic brush
    • Reveal highlight styles
    • Connected and implicit animations

    View Slide

  48. UWP
    • New Controls!
    • NavigationView
    • ParallaxView
    • RefreshContainer/RefreshVisualizer
    • SwipeContainer
    • TreeView
    • ColorPicker
    • RatingsControl
    • Future: Repeater

    View Slide

  49. UWP
    • Improved text APIs: CharacterReceived, CharacterCasing, IsTrimmed
    • Advanced color and HDR for Image
    • SVG support for Image
    • Context menu support everywhere
    • Keytips support for XAML
    • UI creation optimization (x:Load)
    • Embed UWP API within Win32 apps
    • and more!

    View Slide

  50. THANK YOU!!!
    • Questions ?
    • Feedbacks ?
    • Aren’t we awesome ?

    View Slide