Moving Shapes

Moving Shapes

Maths + Uno(Skiasharp + WebAssembly)


Pendant ces derniers mois, j'ai eu un peu de mal à trouver la motivation pour commencer un nouveau projet de dev (ou de me remmetre sur un des dizaines de trucs qui trainent sur mes repos). Certains diront que c'est normal pendant une pandemie et je suis d'accord avec ceux la. Difficile de laisser libre cours a sa créativité quand on voit ce qu'il se passe dans le monde en ce moment. D'autres diront que tout est de la faute de Tom Nook. Et ils n'ont pas tout à fait tort non plus.

Je me suis donc mis à chercher toutes sortes d'idées qui pourraient me motiver. La principale difficulté pour moi étant que j'ai construit ma carrière sur le developpement .NET, mais que je ne suis pas fan d'ASP.NET. Je fais donc la majorité de mes projets persos web avec node + Vue + Bootstrap mais sur ces technos je n'ai malheureusement pas la moitié du skill que je peux avoir sur quelque chose comme Xaml + C#.
Résultat il faut souvent que je fasse un choix :

  • Node pour pouvoir heberger mon travail facilement et ainsi lui donner plus de visibilité au prix de passer plus de temps et d'efforts a implementer ce que je veux.
  • C# pour pouvoir etre capable de faire tout (ou presque) ce que je veux mais être cantonné au Windows Store

Choix difficile a chaque fois et auquel la réponse est tres souvent Node. Mais ça c'était avant.

Uno a la rescousse

Même si Xamarin est une possibilité très robuste pour élargir le champs des possibles, il n'est pas possible à ma connaissance de cibler le web.
Mais heureusement une autre alternative existe et elle a de nombreux avantages : Uno Platform.

Uno nous permet une grande flexibilité pour déployer sur toutes les grandes plateformes actuelles

Pour faire court, Uno est une plateforme permettant de transformer une app UWP (XAML C#) en code natif Desktop, Mobile, mais aussi Web grace à WebAssembly.
Sur ce dernier point tout n'est pas encore parfait mais les choses avancent vite et il est déja possible de faire de très belles choses.
Je suis assez curieux quant aux possibilités offertes par WebAssembly et la comprehension que j'en ai est à mon sens vraiment très limitée. C'était donc la bonne occasionpour me lancer dedans. Après avoir choisi le "comment", j'ai donc commencé a me poser la question du "quoi" (Ne faites pas ça en entreprise).

Grace a WebAssembly nous allons pouvoir faire tourner des libraries .NET dans le navigateur

Certains de mes processus de décision étant ce qu'ils sont, je me suis dit que tant qu'a utiliser une techno que je ne connais pas trop, autant en faire des choses que je ne maitrise pas trop non plus.
Je me suis donc tourné vers deux de mes ennemis préférés : Les mathematiques et le dessin.
Pour ce dernier, j'ai utilisé une lib C# bien connue, SkiaSharp qui est un portage de Skia, le moteur de rendu de Google Chrome par exemple.
Il ne me restait donc plus qu'a me lancer (et me convaincre que j'allais y arriver).

Deux semaines plus tard..

Le resultat est au dessus de mes esperances. Ca m'a un peu réconcilié avec les maths et j'ai vraiment hate d'enrichir tout ça avec de nouvelles choses !

Je compte bien écrire de nouveaux articles pour rendre compte des obstacles et surprises que j'ai rencontré au fur et a mesure donc beaucoup d'updates a venir !

Happy Coding !