Le Post Infeeny

Les articles des consultants et experts Infeeny

Build 2015 – Day 3

Par Benoît,
Pôle .Net MCNEXT

Bonjour à tous,

Dernier jour de Build et donc derniers comptes rendus.
Première session autour des API d’Office 365 appelées depuis une application mobile.
Viens ensuite la conversion d’une application 8.x vers une application universelle Windows 10.
Un retour sur les nouveaux outils de VS2015 (Blend,  Profiling Tools,…) et enfin une session Xamarin avec notamment les outils Xamarin Inspector et Xamarin Test Cloud.

Benoît

________________________________________________________

1 – Go Mobile with C#, Visual Studio and Xamarin

Dernière session de cette Build 2015 avec le CTO/Cofondateur de Xamarin et l’un de ses évangélistes.

Une grosse première partie de cette session a été dédiée à la promotion de cet outil, avec leur slogan : « Anything you can do in Objective-C, Swift, or Java can be done in C# and visual Studio with Xamarin».

Le choix de la démo s’est porté sur un chat style Whatsapp mais dédié aux enfants et leurs parents et donc « gamifiée ».

L’application a été développée en 2 semaines, a suivi le pattern MVVM et à ciblé Android et iOS.

Au-delà du code sur lequel on ne s’est pas attardé, la partie la plus intéressante a été de voir leur outil « Xamarin Inspector » et la fonctionnalité de test « Test Cloud ».

Xamarin Inspector
Cet outil est le pendant Xamarin du Live Visual Tree de Visual Studio 2015.
En effet, cet outil va permettre de sélection via la souris un élément de l’application mobile lancée afin d’en avoir les détails. Ses propriétés étant également en écriture, il est possible de les modifier pour en voir les effets aussitôt sur l’application. Une vue éclatée des éléments permet de mieux sélectionner l’élément désiré :

Build2015_Go Mobile with C#, Visual Studio and Xamarin

Build2015_Go Mobile with C#, Visual Studio and Xamarin

Test Cloud
Xamarin Test Cloud est une fonctionnalité permettant d’automatiser les tests d’une application sur l’équivalent de 1000 devices différents. Il est possible de créer ses propres tests.
Ainsi, au résultat du test, on peut facilement voir quel device a réussi ou échoué les tests.
Dans le cas d’un échec, il est possible de voir à quel étape il a échoué et voir la stacktrace de l’erreur afin d’aider à cibler le problème et donc corriger plus rapidement/efficacement.

Build2015_Go Mobile with C#, Visual Studio and Xamarin

Résultat :

Build2015_Go Mobile with C#, Visual Studio and Xamarin
Ce dernier outil est très intéressant et devient quasi-indispensable pour tout développeur visant une application grand public, et donc ciblant l’ensemble du parc mobile.

2 – Moving to the Universal Windows Platform : Porting an App from Windows 8.1 XAML or Windows Phone Silverlight to Windows 10

Pourquoi vouloir migrer vers Windows 10 ? Plusieurs réponses à cela :
– Microsoft estime à un  milliard le nombre de devices qui tourneront sous ce nouvel OS
– Pour profiter également de nouvelles fonctionnalités comme Ink ou Cortana
– Améliorer les performances (defer, text performance -> cf. compte-rendu sur les performances XAML du jour 2)

A l’heure actuelle, 4 types de projets sont ciblés :
– Windows Store 8 XAML
– Windows Phone 8 XAML
– Universal Windows 8
– Windows Phone Silverlight 8.x

A l’heure actuelle il n’y a pas d’outil et le process est donc manuel. Il faudra donc créer un nouveau projet UWP, copier le code, ajouter/modifier les références ainsi que le manifest.

Il existe 4 différentes options :
1- Créer un seul projet UWP pour l’ensemble des devices et merger tout le code tout en utilisant des vues adaptatives.
2- Créer un projet UWP pour chaque famille (mobile et autre)
3- Créer un projet UWP et appeler le code des projets 8.1 en prenant en compte les différences d’API
4- Créer deux projets UWP, un pour mobile, un pour le reste et appeler le code 8.1 comme dans l’option 3.

Pour la suite de la session, le choix va se porter sur la 3eme solution.

Pour la démo, voici comment s’est déroulée la migration :
1-  Création d’un projet UWP de type ‘blank app’
2- Suppression d’app.xaml, MainPage et les Assets
3- Ajout d’un projet Shared avec les références voulues
4- Copie des contrôles et vues du projet 8.1
5- Corrections (exemple suppression de la CharmBar)
6- Création d’un répertoire mobile dans le répertoire views de l’UWP et y copier les vues du projet mobile avec correction  du nom des classes si besoins (eviter double nommage)
7- Redirection vers la page de départ selon le type d’appareil (selon sa famille)

Build2015_Moving to the Universal Windows Platform : Porting an App from Windows 8.1 XAML or Windows Phone Silverlight to Windows 10

En plus de tout ça, il faut désormais faire attention aux propriétés dépréciées, aux changements de namespace, de scale factors, de style, ou encore de taille d’icônes.

Certains contrôles ont également été changés en vue de la convergence des projets vers UWP, comme le date/time picker.

3 – New XAML Tools in Visual Studio 2015
Cette session va faire le tour des nouveautés dans VS2015 pour le dev XAML, mais pas que.

Le XAML Peek

Déjà présente de longue date dans les RC de VS2015, la fonctionnalité Peek va permettre la navigation vers une portion de code située ailleurs dans le projet tout en restant sur dans la même fenêtre d’édition.
Blend for Visual Studio 2015

Un nouveau Blend avec une meilleure intégration avec VS2015, notamment avec la possibilité dans VS de faire un clic-droit et de choisir de designer dans Blend.

L’explorateur de solution est identique à VS

L’apparition des Assets, States, Triggers et Data dans Blend.

Contrairement à la version 2013 de Blend, la nouvelle version permet de définir un layout (choix et disposition des boites à outils) et de le sauvegarder pour le retrouver par la suite.

L’IntelliSense est présent et l’accessibilité à Blend est complète via le clavier (pour la personne n’ayant aucune souris ou touchpad).


L’UI Debugging avec le Live Visual Tree.

Déjà abordé dans les précédentes sessions XAML, et évoqué dans les comptes rendus, le Live Visual Tree est un nouvel outil pour naviguer dans l’arbre d’éléments et voir en direct les propriétés de chacun d’eux. Ces propriétés sont modifiables et tout changement est répercuté directement sur l’application ainsi examinée. Il est aussi possible de surcharger une propriété en créant une propriété à la volée. Tous ces changements peuvent être également annulés.

Cet outil s’avère intéressant lorsqu’il va choisir de débuguer un binding. En effet, en recherchant la propriété DataContext, on pourra voir les détails de la liaison.


Profiling tools

Bientôt disponible pour Windows 7, cet outil de diagnostiques va nous permettre voir la consommation de CPU, les informations réseau, la timeline de l’application mais aussi la mémoire consommée par celle-ci en vue de facilité la correction de lenteur ou de mémoire excessive.

De nombreuses autres nouveautés sont présentes comme la possibilité de passer une uri de XAML à charger dans la méthode InitializeComponent() ou encore d’avoir plusieurs fichiers XAML pour une seule classe.

L’Adaptive layout a aussi été abordé (cf. compte rendu What’s new in XAML for Universal Windows Apps sur les visual states et triggers).

4 – Building multi devices Apps with Xamarin with Office 365 APIs

Petite déception pour cette première session de la journée. En effet, très peu de Xamarin et beaucoup sur Office 365 et l’utilisation de ses APIs. Le titre est un peu accrocheur compte tenu du contenu.

Bref, la session s’articule autour d’un mini projet : le développement rapide d’une application connectée a office 365 et permettant la création rapide de réunion.

Le scenario est simple : choisir une date, une heure, une durée et des participants.

James Montmagno annonce 2 jours de développement et 70% de code partagé entre les différentes applications ciblant iOS, Android et W10.

Pour réussir, il faut prendre en considération 3 points :
– Une UI native
– Un accès aux APIs natives d’Office365
– Des performances elles aussi natives

L’approche côté architecture doit se faire via code partagé grâce à :
– Les librairies PCL
– Les Shared Projets
– Les packages Nuget

Puis on peut passer à Office 365.

Ce qui va nous intéresser ici sont les API REST/oData, et les accès aux fichiers, sites, mail, calendrier et utilisateurs. Ce sont ces deux derniers points qui seront ciblés par l’application.

Étape 1 : intégrer les services office 365

Dans un premier temps, il va falloir enregistrer notre application pour avoir accès aux services, et ce, en ajoutant la référence via le Service Manager. Les librairies nécessaires vont être automatiquement ajoutées  au projet.

L’application doit également être déclarée sur le portail azure, ceci en suivant le chemin :

Active Directory > Onglet Application > ajout application native.

Ceci nous permettra d’obtenir un ClientID qui nous servira par la suite.

Il ne faut pas oublier de spécifier les droits de l’application.
Étape 2 : découverte des services disponibles

Coté code, la première étape va être d’instancier un DiscoveryClient qui va permettre de chercher les services disponibles et nous renvoyer une uri et un identifiant.

Build2015_Building multi devices Apps with Xamarin with Office 365 APIs

Étape 3 : l’accès aux données

Maintenant que nous avons l’uri à contacter, il suffit d’instancier un client (ici un OutlookSericesClient) en lui spécifiant l’uri, puis à réclamer un token avec le ServiceResourceId en paramètre.

Ce token servira à nous authentifier auprès du service à chaque appel.
Build2015_Building multi devices Apps with Xamarin with Office 365 APIs
L’appel se fait via oData :

Build2015_Building multi devices Apps with Xamarin with Office 365 APIs

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :