Dot.Blog

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

Prism pour WinRT : une application exemple

[new:15/10/2013]je vous ai présenté longuement “Kona” qui s’appelle désormais Prism pour Windows Store apps, et pour compléter cette série voici aujourd’hui une application exemple assez représentative dont le source est disponible sur GitHub pour l’étudier en détail.

Itinerary Hunter, le chasseur d’itinéraire

Itenerary Hunter est un site web (http://itineraryhunter.com/) destiné aux personnes souhaitant se créer un itinéraire touristique par eux-mêmes. Le “slogan” étant d’ailleurs “ready made self travel”.

Vous allez me dire un site web ? WinRT ce n’est pas le web !

Si vous avez bien suivi toutes mes présentations de WinRT et surtout de Kona/Prism pour WinRT, vous devez vous rappeler que l’application exemple fournie avec les guidances ressemble à une application Web avec un caddy. Et donc vous vous rappelez certainement ce que j’en avais dit puisqu’ayant participé à l’élaboration de Prism pour WinRT j’avais tenté, infructueusement, de faire changer cet exemple pour quelque chose de plus “entreprise” et moins “web”…

Techniquement Prism pour WinRT n’est pas destiné à faire des apps qui ressemblent à sites Web, mais dans la pratique c’est plutôt WinRT lui-même qui par sa structure, son mode fullscreen, et ses autres caractéristiques fait que les applications qui collent bien sont plutôt celles qui ressemblent à des sites Web… Peut-être cela n’est-il lié qu’à un manque d’imagination des développeurs en entreprise, mais en tout cas cela explique certainement la faible adoption de WinRT par les entreprises. Trop grand public, même dans ces exemples très techniques et pas assez utilisateur “pro”.

Avec le temps et les Surface 2 et Windows 8.1 est-ce que le “rouleau compresseur” Microsoft arrivera a imposer petit à petit WinRT en entreprise ou bien cela en restera-t-il au niveau actuel, c’est un mystère dont la réponse se trouve chez les DSI…

Quoi qu’il en soit, ce nouvel exemple, très bien développé, est lui aussi basé sur un site Web existant. A chacun de voir si le résultat obtenu justifie le développement d’une application spécifique pour un système relativement peu utilisé ou bien si la version Web n’est pas suffisante et d’emblée accessible à tout le monde. Cela peut aussi être une stratégie, la version WinRT pouvant s’avérer mieux conçue dans une logique d’UX pour tablette Surface… En créant son propre écosystème WinRT peut se justifier lui-même.

Bref, l’exemple est programmé en faisant appel aux dernières technologies Microsoft, donc WinRT avec son look Modern UI et en respectant les guidances du groupe Patterns & Practices qui se concrétisent dans Prism pour Windows Store apps. Cela en fait ainsi un excellent support pour étudier de plus près la mise en œuvre de Prism sous WinRT et complète à merveille ma série sur ce sujet !

L’application a été créée par Steven Hollidge dont la page G+ est la suivante : https://plus.google.com/101698469376330546143

Une bonne utilisation des guidances

L’application montre différents aspects de la programmation sous WinRT et notamment le respect des guidances de Prism pour WinRT.

On y trouve aussi bien une présentation soignée et le respect d’une UI de type Modern UI (avec le zoom sémantique notamment) que l’utilisation des ViewModels, des convertisseurs de valeurs, des services et même des tests unitaires.

Le code source

Steven a eu la bonne idée de publier le code source de son application sur GitHub et c’est ce qui mérite la présentation ici de cette dernière. En téléchargeant ce code vous pourrez à loisir étudier un exemple supplémentaire d’utilisation de Prism pour WinRT.

Le code se trouve à cet endroit : https://github.com/stevenh77/ItineraryHunter-Win8

Quelques copies d’écran

Pour se faire une meilleure idée du style de l’application et de ses fonctions, voici quelques captures d’écran.

Le splash

image

L’écran principal (groupé par catégories)

image

L’utilisation du Zoom sémantique

image

La catégorie “plage”

image

La sélection d’un itinéraire (vue détail)

image

Conclusion

Cette application n’est pas parfaite, c’est juste un exemple, mais elle fonctionne sur une base réelle et utilise de nombreuses techniques spécifiques à WinRT, dont le support de Prism.

Justement, pas trop complexe non plus, elle permet une étude de son code source sans se perdre dans une énorme application.

Le fait qu’il s’agisse encore d’un exemple copiant un comportement Web ne plaide pas pour WinRT en entreprise c’est sûr. Mais je reste convaincu malgré tout que de nombreuses applications dans ce contexte peuvent tirer un énorme avantage d’une mise en œuvre sous WinRT : bornes informatives, catalogue pour les clients, outil de prise de commande pour les représentants en visite, etc. Si WinRT n’est pas une panacée et ne remplacera peut-être jamais le bureau classique pour tout un tas d’applications, il serait étonnant que la force et l’énergie que Microsoft déploie pour imposer cette plateforme reste absolument sans effet.

Et puis WinRT se programme surtout en Xaml et C#, et quand on voit l’indigence des autres plateformes mobiles en terme de programmation et de création d’UI, on se dit que ça serait pas mal quand même que cela fasse un succès. Honnêtement je préfère largement faire du WinRT que développer des interfaces en XML Android ou pour le Web où chaque personnalisation se solde par la création de 4 images bitmap, des ninepatches, dans plusieurs résolutions pour différentes densités, etc. Vive la création d’UI en mode vectoriel ce qui est unique au monde et seulement chez Microsoft avec XAML, et si nous n’avons plus beaucoup d’espoirs pour Silverlight, au moins que vive WinRT (et WPF), tout le reste est préhistorique !

blog comments powered by Disqus