Dot.Blog

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

Cross-Plateforme Vidéo 12 : Injection de code natif (WinRT/Android)

[new:30/09/2013]Douzième volet de cette série de vidéos sur le cross-plateforme la présentation d’aujourd’hui vous propose de découvrir comment injecter du code natif dans les applications.

Injection de code natif

Pourquoi vouloir “injecter” du code natif au lieu de “l’utiliser” ?

Partons du début : nos applications cross-plateformes sont formées d’un noyau, une librairie PCL portable, dans laquelle aucune compilation conditionnelle n’est autorisée (parce qu’on se l’impose principalement par souci de maintenabilité).

Or puisque ce noyau n’est pas modifiable selon la compilation de la cible et qu’il est identique pour toutes celles choisies, comment peut-il utiliser un code natif qui lui est inaccessible ?

Rappelons aussi que ce noyau est l’endroit où se trouve toute la logique de l’application, le code métier. Dans notre système cross-plateforme nous n’acceptons pas d’utiliser de la logique dans les applications d’UI.

Un subtile jeu de ping-pong va devoir être mis en place…

Trois voies sont possibles : L’utilisation astucieuse d’une interface C# et du conteneur d’IoC, la création d’un plugin MvvmCross, ou le codage directe dans chaque application d’UI. On s’interdira cette dernière méthode, trop barbare et trop éloignée des standards de qualité que nous nous sommes imposés.

Reste deux approches, l’une plus rapide, l’autre réutilisable facilement.

Ce sont ces deux voies que je vous propose de découvrir dans cette session live d’une quarantaine de minutes…

La vidéo

Le lient direct : http://youtu.be/fRqOnJ1x0ug

Ma chaîne YouTube où vous retrouverez toutes les vidéos de cette série : http://www.youtube.com/TheDotBlog

La vidéo (42 minutes, HD 720p)

The End ?

Cette douzième vidéo achève ce cycle de formation sur la stratégie de développement cross-plateforme que je vous propose. Cela ne veut pas dire que je n’en parlerais plus ou qu’il n’y aura plus d’autres vidéos, mais simplement que cette série là est bouclée.

Il reste beaucoup d’autres sujets à aborder comme les contrôles customs sous les principales plateformes, le testing des ViewModels, les animations, les await/async dans l’implémentation des services et des VM, etc. Mais tout cela s’écarterait de l’objectif que je m’étais fixé pour cette “simple introduction” qui représente déjà près de 8h de vidéo HD en 12 volets (sans compter les nombreux billets qui l’ont précédée) !

Mais il faut bien en laisser pour les formations que je prodigue et surtout que je garde quelques secrets pour les développements que je vends Sourire

Je plaisante.
Je considère que ce qui fait la différence entre deux professionnels ce ne sont pas les petits secrets qu’on finit toujours par découvrir.
La rétention d’information ne peut que berner les idiots et satisfaire les imbéciles.
Je pense que ce qui fait la différence c’est l’individu et toutes ses qualités, l’information doit être ouverte et disponible à tous. Seuls les médiocres ont besoin de cacher ce qu’ils savent pour briller.
Notre métier n’est finalement pas affaire de mémoire ou de connaissance livresque, mais de puissance de calcul et d’expérience. L’information se trouve toujours. La puissance de calcul et l’expérience pour la traiter sont des qualités plus rares.

Partagez vous aussi ce que vous savez. Vous n’en sortirez plus faible que si votre seule valeur se limite à ce savoir…

La valeur d’un développeur, d’un architecte, d’un consultant ? C’est justement ce qu’il reste quand il a dit tout ce qu’il savait…

C’est un chalenge intéressant avec soi-même dans tous les cas !

Conclusion

Cette session montre des techniques performantes et élégantes, renforçant la stratégie cross-plateforme que je vous propose sans rien sacrifier de la pureté du code, de la maintenabilité mais aussi des spécificités de chaque plateforme.

Je rappellerais que cette stratégie de développement est tellement performante qu’elle s’impose même pour le développement d’une application unique qui n’est pas vouée au départ au cross-plateforme. Cela permet de s’offrir pour pas très cher une assurance sur l’avenir car tout portage vers une nouvelle plateforme sera à la fois possible, simplifié et assez peu couteux comparativement à une réécriture totale.

Pénalités : zéro. Avantages : plein !

L’aventure continue, alors…

Stay Tuned !

PS: Le code source

blog comments powered by Disqus