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

AngelHack 2013 Deezer - Introduction to Windows Phone development

AngelHack 2013 Deezer - Introduction to Windows Phone development

Christopher MANEU

October 19, 2013
Tweet

More Decks by Christopher MANEU

Other Decks in Technology

Transcript

  1. Windows Phone Dev. availability 11/30/2014 © 2012 Nokia. All rights

    reserved. © 2012 Microsoft. All rights reserved. 38 countries Windows Phone 7.x 180+ countries Windows Phone 8.0
  2. Great opportunities through store •All paid apps integrate try before

    buy, •Revenue share: 30%. After $20000, 20%, •In-app purchase, •MO billing, multiple payment options (great for emerging markets) •Many promotions options (Microsoft, Nokia, operators, …)
  3. XAML + C#, a perfect match • The prefered development

    option • Access to all the .net and WinRT platform and phone features • Ideal for non-games apps • Can be used for some games
  4. DirectX + C++ App • Best for games, • Maximize

    code reuse between multiple platforms
  5. Mix XAML/C# and C++/DirectX • Best for games, • Maximize

    code reuse between multiple platforms • Develop a classic XAML app, and get DirectX content in a control.
  6. HTML Development • Nothing really supported out-of-box • All phonegap

    APIs are supported on Windows Phone • No restrictions to deploy a native app that embeed HTML
  7. iPhone developer ? • C# language is, well, quite different

    from Objective-C (Managed, a Garbage collector, …) • Interface is XML based (XAML) • Expression Blend is equivalent to Expression Builder • We can use MVVM, a design pattern close to MVC (but no needs to create outlets :p)
  8. Android developer ? • C# language is close to Java

    • But we have great surprises for you (LINQ, real generics, …) • Interface is XML based (XAML), a bit more « integrated » than the android XML layout, • No need to create AVHDs :p
  9. Windows Phone devices • Hi-res 4 points capacitive screen •

    3 (or 4) screen resolutions from 480x800 to 720p • 3 hardwares buttons • 5M px camera • Consistent CPU/GPU • Same available RAM • A/V processing capabilities
  10. Recap • Download tools from http://maneu.net/godevwp8 • Everything is included

    • You can unlock one device per Microsoft Account. Register for a Windows Phone Developer account for more (http://dev.windowsphone.com), • Emulator includes tools for location & network tests
  11. Microsoft design language principles Clean, Light, Open, Fast Celebrate Typography

    Alive in Motion Content, Not Chrome Authentically Digital
  12. La grid • Permet de positionner des éléments dans un

    système ligne/colonne • Possibilité de s’étendre sur plusieurs lignes/colonnes • Par défaut, les éléments prennent tout l’espace de la cellule 29
  13. Le StackPanel • Permet de positionner des éléments « empilés

    » • Horizontalement ou verticalement 30
  14. Le canvas • Permet un positionnement Absolu • Le positionnement

    le plus simple, mais pas le meilleur • Orientation • Resizing • Adaptation aux données 31
  15. Le scrollviewer • Permet de faire défiler un contenu lorsque

    la place allouée n’est pas suffisante • Les ListBox utilisent par défaut un scrollviewer 32
  16. Le wrappanel • Fait partie de la Silverlight Toolkit (http://silverlight.codeplex.co

    m) • Permet de positionner les élémenents les uns après les autres 33
  17. Borders • Elles permettent d’encadrer / colorer une zone •

    Sont généralement utilisées autour d’un conteneur 34
  18. Marges, et alignement • Permettent de positionner un élément au

    sein de son conteneur • HorizontalAlignment et VerticalAlignment • Margin 35
  19. Z-Order • Par défaut, le dernier élément déclaré se situe

    au dessus • On peut changer cette situation avec la propriété z-order • Plus la valeur est grande, plus l’objet sera positionné haut 36
  20. Organiser son écran • Choisir le/les conteneurs • Placer les

    bordures • Placer les éléments • Ajuster les marges et alignements • Ajuster le Z-Order si nécessaire • Fixer la propriété SupportedOrientations • Portrait, Landscape ou PortraitOrLandscape • Ne pas fixer/se baser sur 480/800 37
  21. Navigation • WP apps works like websites • Uri-based navigation

    • Query parameters • Go Back • History
  22. Binding: how to ? • Define Binding in XAML <TextBox

    Text="{Binding UserName, Mode=TwoWay}" /> • Définir data source Credential credential = new Credential(); credential.UserName = "Cyril"; DataContext = credential;
  23. Navigate with parameters NavigationService.Navigate(new Uri("/SecondPage.xaml?msg=hello", UriKind.Relative)); string msg = "";

    if (NavigationContext.QueryString.TryGetValue("msg", out msg)) textBlock1.Text = msg;