améliorer la réactivité de vos applications windows 8.1

28
Améliorez la réactivité de vos applications Windows 8.1 5 astuces qui vont tout changer !

Upload: bemyapp

Post on 22-Nov-2014

582 views

Category:

Technology


0 download

DESCRIPTION

Présentation de Loïc Rebours, @LoicRebours, de Microsoft lors du meetup Windows Apps http://www.meetup.com/windowsapps/ du 24/03/2014 à l'IESA Multimédia, 5 avenue de l'Opéra

TRANSCRIPT

Page 1: Améliorer la réactivité de vos applications Windows 8.1

Améliorez la réactivité de vos applications Windows 8.1

5 astuces qui vont tout changer !

Page 2: Améliorer la réactivité de vos applications Windows 8.1

Présentation

Loïc ReboursConsultant .NET - Avanade

MVP Client Development@loicrebours

www.blog.loicrebours.fr

Page 3: Améliorer la réactivité de vos applications Windows 8.1

Une application réactive pour une meilleure expérience utilisateur

Page 4: Améliorer la réactivité de vos applications Windows 8.1

Tip 1 Eviter les dangers d’async/await

Page 5: Améliorer la réactivité de vos applications Windows 8.1

Eviter les dangers d’async/await

UI threadAsync method AwaitAsync work Await

Await

UI threadAsync methodAsync work

Page 6: Améliorer la réactivité de vos applications Windows 8.1

Tip 1 - Démo

Page 7: Améliorer la réactivité de vos applications Windows 8.1

Tip 2 Charger les données de façon incrémentale

Page 8: Améliorer la réactivité de vos applications Windows 8.1

Charger les données de façon incrémentale

Inutile d’afficher des milliers d’éléments au chargement d’une pageIl faut charger les données quand l’utilisateur en a besoinLe chargement incrémental est moins consommateur de ressources

ISupportIncrementalLoading

public interface ISupportIncrementalLoading{ bool HasMoreItems { get; } IAsyncOperation<LoadMoreItemsResult> LoadMoreItemsAsync(uint count);}

Page 9: Améliorer la réactivité de vos applications Windows 8.1

Tip 2 - Démo

Page 10: Améliorer la réactivité de vos applications Windows 8.1

Tip 3 Créer des animations performantes

Page 11: Améliorer la réactivité de vos applications Windows 8.1

Créer des animations performantes

Pour le rendu XAML, il y a 2 threads importants Le thread UIParsing du XAMLLayout de la scèneRendering des éléments

Le thread CompositorCompose les animations des éléments visuels Instructions GPU / CPU

Page 12: Améliorer la réactivité de vos applications Windows 8.1

Créer des animations performantesIl existe deux types d’animationLes animations indépendantesPeuvent être calculées entièrement lors de leur créationGérées par le thread Compositor, utilisent la puissance du GPUScaling, rotation, translation …

Les animations dépendantesNe peuvent pas être calculées à l’avance.Utilisation intensive du thread UIChangement de taille de police, modification de la largeur ou hauteur d’un élément …

Page 13: Améliorer la réactivité de vos applications Windows 8.1

Tip 3 - Démo

Page 14: Améliorer la réactivité de vos applications Windows 8.1

Tip 4 Optimiser le code XAML

Page 15: Améliorer la réactivité de vos applications Windows 8.1

Optimiser le code XAML

Un peu de théorieAu lancement de l’application, tous les fichiers XAML référencés sont parsésParser du XAML et créer les objets correspondants en mémoire peut être longLes ressources peuvent être placés à plusieurs endroits : - dans une page - dans la classe App - dans un Resource DictionaryIl est important de factoriser les ressources

Page 16: Améliorer la réactivité de vos applications Windows 8.1

Optimiser le code XAML

<Application ...> <!-- BAD CODE DO NOT USE.--> <Application.Resources> <!-- BAD CODE DO NOT USE.--> <SolidColorBrush x:Key="DefaultAppTextColor" Color="#FF3F42CC"/> <!-- BAD CODE DO NOT USE.--> <SolidColorBrush x:Key="HomePageTextColor" Color="#FF3F42CC"/> <!-- BAD CODE DO NOT USE.--> <SolidColorBrush x:Key="SecondPageTextColor" Color="#FF3F42CC"/> <!-- BAD CODE DO NOT USE.--> <SolidColorBrush x:Key="ThirdPageTextColor" Color="#FF3F42CC"/> <!-- BAD CODE DO NOT USE.--> </Application.Resources> <!-- BAD CODE DO NOT USE.--> </Application> <!-- BAD CODE DO NOT USE.-->

N’incluez pas de ressources spécifiques à certaines pages dans le Resource Dictionary de l’application

Page 17: Améliorer la réactivité de vos applications Windows 8.1

Optimiser le code XAML

Factorisez les ressources identiques

<StackPanel> <!-- BAD CODE DO NOT USE.--> <TextBox> <!-- BAD CODE DO NOT USE.--> <TextBox.Foreground> <!-- BAD CODE DO NOT USE.--> <SolidColorBrush Color="#FF3F42CC"/> <!-- BAD CODE DO NOT USE.--> </TextBox.Foreground> <!-- BAD CODE DO NOT USE.--> </TextBox> <!-- BAD CODE DO NOT USE.--> <Button Content="Submit"> <!-- BAD CODE DO NOT USE.--> <Button.Foreground> <!-- BAD CODE DO NOT USE.--> <SolidColorBrush Color="#FF3F42CC"/> <!-- BAD CODE DO NOT USE.--> </Button.Foreground> <!-- BAD CODE DO NOT USE.--> </Button> <!-- BAD CODE DO NOT USE.--> </StackPanel> <!-- BAD CODE DO NOT USE.-->

Plutôt que d’écrire …

Page 18: Améliorer la réactivité de vos applications Windows 8.1

Optimiser le code XAML

Factorisez les ressources identiquesEcrivez …<Page ...> <Page.Resources> <SolidColorBrush x:Key="TextColor" Color="#FF3F42CC"/> </Page.Resources>

<StackPanel> <TextBox Foreground="{StaticResource TextColor}" /> <Button Content="Submit" Foreground="{StaticResource TextColor}" /> </StackPanel> </Page>

Page 19: Améliorer la réactivité de vos applications Windows 8.1

Optimiser le code XAML

Evitez d’utiliser des éléments non nécessaires. Le rendu sera plus rapide.

<Grid> <!-- BAD CODE DO NOT USE.--> <Rectangle Fill="Black"/> <!-- BAD CODE DO NOT USE.--> </Grid> <!-- BAD CODE DO NOT USE.-->

<Grid Background="Black" />

Plutôt que d’écrire …

Ecrivez …

Page 20: Améliorer la réactivité de vos applications Windows 8.1

Optimiser le code XAML

Evitez les overdraw. Utilisez les subtilités de XAML (CacheMode de Canvas ci-dessous)

<Canvas Background="White" CacheMode="BitmapCache"> <Ellipse Height="40" Width="40" Fill="Blue"/> <Ellipse Canvas.Left="21" Height="40" Width="40" Fill="Blue"/> <Ellipse Canvas.Top="13" Canvas.Left="10" Height="40" Width="40" Fill="Blue"/> </Canvas>

Page 21: Améliorer la réactivité de vos applications Windows 8.1

Tip 4 - Démo

Page 22: Améliorer la réactivité de vos applications Windows 8.1

Tip 5 Utiliser le cache sans modération

Page 23: Améliorer la réactivité de vos applications Windows 8.1

Utiliser le cache sans modération

Cache des donnéesNe chargez vos données qu’une fois. Sérialisez et désérialisez-les ensuite.

Cache des imagesStocker vos images en local. Utilisez le cache HTTP.

Cache des pagesUtilisez la propriété NavigationCacheMode.

Page 24: Améliorer la réactivité de vos applications Windows 8.1

Tip 5 - Démo

Page 26: Améliorer la réactivité de vos applications Windows 8.1

26

C# et XAML sous Windows 8.1

Windows 8.1 de A à Zhttp://bit.ly/ENIW81Concevez, développez, architecturez, diagnostiquez, testez, monétisez et déployez votre application ….20 % sur la version numérique avec le code : UXMSLOIC214

Page 27: Améliorer la réactivité de vos applications Windows 8.1

27

Journée Windows 8 / UX le 28 mars chez MS France

Une après-midi de sessionsCoopération développeur / designerTrucs et astuces pour améliorer l’UX de vos applicationsDesign et ergonomie pour le développeurImaginez de nouvelles expériences pour vos applications de demainRetours d’expérience sur des applications

Des conseils pour vos applications et denombreux cadeaux à gagner !bit.ly/CommuW8UX

6 développeurs8 UX designers

Page 28: Améliorer la réactivité de vos applications Windows 8.1