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(); |
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.
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" ); } |
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 }); |
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 :)
Commentaires