Loupe

Quoi de neuf dans Xamarin Essentials 1.1 ?

Lors de la BUILD 2018, je vous annonçais l’arrivée de Xamarin Essentials, une bibliothèque de classe facilitant la vie aux développeurs Xamarin.
Celle-ci vient tout juste de passer en version 1.1 et nous allons découvrir ensemble les nouveautés que ça apporte.

Les nouvelles fonctionnalités

Quatre nouvelles fonctionnalités font leur apparition :
– un pour helper pour faciliter l’utilisation des couleurs
– un helper pour faciliter l’utilisation des tailles (Point, Size, Rectangle)
– la possibilité de personnaliser les couleurs du navigateur
– la possibilité de détecter une secousse

Color Helper

Dans les applications Xamarin il fallait toujours un helper pour convertir les couleurs d’un format à un autre.

Pour obtenir une couleur à partir d’un code hexadécimal il suffit de :

1
System.Drawing.Color red = ColorConverters.FromHex("#FF0000");

Une fois la couleur créée il existe de nombres méthodes d’extension permettant de la modifier simplement :
ToUInt
MultiplyAlpha,
WithHue,
WithAlpha,
WithSaturation,
WithLuminosity,

Cette couleur est peut-être convertie facilement en couleur de la plateforme grâce à la méthode suivante :

1
var platformColor = red.ToPlatformColor();

L’inverse est aussi possible :

1
2
var platformColor = UIColor.Red;
var systemColor = platformColor .ToSystemColor();

Plus d’infos, par ici.

Size Helper

Convertir des unités de mesure (Point, Rectangle, Size…) dans des structure universelle n’a jamais été chose aisé.
Avec ces nouvelles API tout est géré pour nous.

Exemple d’utilisation avec la structure Point :

1
2
3
4
5
6
7
var system = new System.Drawing.Point(x, y);
 
// Convertit vers CoreGraphics.CGPoint, Android.Graphics.Point, etWindows.Foundation.Point
var platform = system.ToPlatformSize();
 
// Reconvertit vers System.Drawing.Point
var system2 = platform.ToSystemSize();

Les classes System.Drawing.Point, System.Drawing.Rectangle, System.Drawing.Size sont gérées par défaut.

Plus d’infos, par ici.

Détecter les secousses

La première chose pour détecter les secousses il faut s’abonner à la méthode ShakeDetected.

1
Accelerometer.ShakeDetected  += ShakeDetected;

Puis nous pouvons personnaliser le code lorsqu’une secousse est détectée.

1
2
3
4
private void Accelerometer_ShakeDetected (object sender, EventArgs e)
{
     Debug.WriteLine("Secousse détectée");
}

Plus d’infos, par ici.

Ouvrir son navigateur, plus de personnalisation

La première version de l’API Browser.OpenAsync permettait d’ouvrir le navigateur sans autre fioriture.
Avec cette mise à jour de l’API, Xamarin Essentials nous donne accès à plus de personnalisation :
– possibilité de personnaliser la couleur des boutons de fermeture du navigateur
– possibilité d’afficher ou non la TitleBar

Ouverture du navigateur avec les nouvelles options :

1
2
3
4
5
6
7
await Browser.OpenAsync(uri, new BrowserLaunchOptions
                {
                    LaunchMode = BrowserLaunchMode.SystemPreferred,
                    TitleMode = BrowserTitleMode.Show,
                    PreferredToolbarColor = Color.Red,
                    PreferredControlColor = Color.Pink
                });

Plus d’infos, par ici.

Bug fixes

Cette version contient aussi un 6 bugs fixes, dont 5 ont été corrigés par la communauté.

  • GH-714 Corrige un bug sur le lancement des Uri iOS .
  • GH-698 Corrige un bug sur l’affichage de la connectivité sur Android
  • GH-704 Corrige un bug sur le SecureStorage iOS
  • GH-694 Les émulateur VS d’Hyper V sont désormais détecté comme des émulateurs
  • GH-636 Optimisation sur les préférences
  • GH-707 Corrige l’envoi de mail vide sur UWP

Le support d’autres plateformes ?

Deux plateformes sont en train d’être supportées :

  • macOS
  • Tizen

L’ajout du backend macOS est a plus de moitié de son développement.

L’ajout de Tizen est fait en collaboration avec les équipes de Samsung. Celui-ci est quasiment terminé.

Pour conclure :

L’arrivée de Xamarin Essentials a vraiment simplifié la vie aux développeurs Xamarin, et le fait que les équipes de Xamarin enrichissent de jour en jour cette bibliothèque est une bonne nouvelle pour nous.

Happy coding :)

Pour aller plus loin :

Photo de profil

Ces billets pourraient aussi vous intéresser

Vous nous direz ?!

Commentaires

comments powered by Disqus