Dot.Blog

C#, XAML, Xamarin, UWP/Android/iOS

MVVMCross, Okra... Mvvm, WinRT et cross-plateforme Android/Apple

[new:31/08/2012]MVVM est un sujet que j’aime bien. Je vous ai présenté sous forme de livres PDF les frameworks MVVM Light et Jounce, bientôt je vous présenterai deux autres frameworks. Mais leur intérêt est tel que leur nom mérite d’être connu au plus vite.

Okra

C’est le nouveau nom du projet Cocoon sur Codeplex (http://okra.codeplex.com/). Il s’agit d’un framework MVVM que j’ai déjà évoqué ici destiné uniquement au développement sous WinRT.

Comme tous les abonnés MSDN possèdent depuis le 15 aout à la fois la RTM de Windows 8 et celle de Visual Studio 2012, je suis certain qu’il est temps pour les plus avancés d’entre eux de télécharger Okra pour le prendre en main.

J’ai un papier en cours sur Okra, pour les moins pressés et aussi pour ceux qui seront contents d’avoir mes explications en plus du code brut et des docs en anglais. Ca vient, c’est planifié pour septembre.

MVVMCross

Là on touche du lourd... Pas tant le framework lui-même qui est jeune et pas si énorme que ça, mais l’intérêt du sujet et de ce qui gravite autour.

Apple, Android, Windows Phone, WinRT

Je m’explique.

Comme je le disais il y a quelques temps, quel que soit ma fidélité à Windows et encore plus à Windows 8 force est de constater qu’en Europe, Android représente 68,1% des ventes de Smartphones et que côté tablettes, l’Ipad domine encore bien le marché.

Il faudrait être fou ou stupide pour ignorer cette présence et tous les besoins qui naissent autour de ces machines.

Personnellement je déteste Apple sans m’en cacher (la preuve !), et leur perte de vitesse inéluctable déjà sur les Smartphones m’amuse beaucoup. Je l’avais annoncée car cela ne pouvait se passer que de cette façon. Je ne pousserai donc personne à développer sous iOS. Mais en professionnel je sais que mon désamour d’Apple, même s’il a de solides raisons que je pourrais étayer, n’a pas à prendre le dessus sur la réalité de certains marchés où développer pour l’Ipad peut être une obligation.

Donc le développeur doit aujourd’hui pouvoir traiter toutes ces plateformes. Etre un expert en “tout” est impossible.

En revanche être bon en C#, en Xaml et savoir utiliser les bons outils, c’est à la portée de tous ceux qui n’ont pas peur de travailler un peu plus (j’en ai entendu quelques un dire “pour gagner moins”.. tssss mauvais esprits va !).

Or, comment développer pour toutes ces plateformes si différentes sans tout recoder, sans apprendre des tas d’environnements plus ou moins pauvres (comparativement à ceux de MS) ?

MonoTouch et MonoDroid

Je suis devenu un fan de MonoDroid de Xamarin. Un produit pas cher qui permet de développer en C# sur Android (de façon native bien entendu).

Pour le monde Apple il existe un produit frère, MonoTouch, qui fonctionne de façon identique mais qui créé des applications iOS pour l'IPhone et l’Ipad.

Grâce à ces merveilleux produits, il est possible d’utiliser Visual Studio pour développer sous Android ou iOS. C’est vraiment une avancée incroyable pour tous les développeurs C# !

Vous allez me dire, et au fait c’est quoi le rapport entre tout ce discours et MVVMCross ?

MVVMCross : développez une fois pour toutes les plateformes

MVVMCross est une framework MVVM. Jusque là, un de plus me direz vous...

Oui, mais pas un framework MVVM comme les autres.

MVVMCross a été conçu pour permettre le développement cross-plateforme entre toutes les plateformes en tirant partie justement de l’existence de MonoTouch et MonoDroid pour couvrir le monde Apple et celui d’Android...

En gros, car je prépare aussi un papier sur ce framework où j’entrerai dans les détails, avec MVVMCross vous écrivez une seule fois le code de vos Modèles et ViewModels et vous n’avez plus qu’à créer les Views pour chaque plateforme.

Plus fort encore, MVVMCross ajoute, avec beaucoup d’intelligence, la notion de Binding sous Android et iOS !  De fait, une fois le code commun écrit (modèles et ViewModels) il ne reste plus qu’à faire des vues qui utilisent une extension (comme on peut le faire en xaml) pour indiquer les Bindings sur le ViewModel. On peut programmer les Vues sans une ligne de code C# dans de nombreux cas...

Aussi bien pour WinRT, Windows Phone, Android et iOS sur les smartphones et les tablettes.

Si vous ne trouvez pas ça génial, c’est que vous êtes blasés (ou que vous êtes pro Apple) Sourire

Conclusion

La nature a horreur du vide nous dit la sagesse populaire. La nature de l’homme certainement. Et face à l’éclatement des standards et des plateformes à prendre en compte, il fallait des réponses sérieuses. Les bricolages de “l’hybride” sont des horreurs et HTML 5 n’est pas un standard de développement natif (d’ailleurs depuis qu’il a forké on ne sait même plus de quel HTML 5 on parle...).

Microsoft nous offre dans les mois à venir sa conception du cross-plateforme : tout en WinRT du smartphone au PC. C’est une vision brillante et cohérente, mais tout en Microsoft...

Le monde est plus vaste et quel que soit notre passion pour les produits de Microsoft professionnellement nous ne pouvons ignorer les mastodontes que sont Apple et Android sur le marché. Ce serait de l’autisme.

Grâce à quelques “pionniers” nous disposons aujourd’hui des moyens de développer facilement des applications cross-plateformes.

Que cela soit MonoDroid et MonoTouch ou des idées géniales comme MVVMCross qui tire partie de l’existence des premiers, une voie se dessine enfin pour nous permettre d’envisager l’avenir de façon plus sereine sans faire l’impasse sur telle ou telle autre plateforme.

En fait, grâce à C#.

Alors ce n’est pas demain que vous me verrez faire un papier sur Objective-C ni sur JavaScript ou HTML 5 !

En revanche, bientôt vous en saurez plus sur Okra et MVVMCross.

Encore plein de raisons de...

Stay Tuned !

blog comments powered by Disqus