
Envoyé par
JolyLoic
Là où je me pose une question sur l'intérêt de faire de l'IHM web pour une application qui n'est pas intrinsèquement web, c'est que j'ai l'impression que faire une IHM web est intrinsèquement plus complexe que faire une IHM classique.
Déjà par le nombre de technos différentes à empiler, ensuite par le manque de bibliothèques / la profusion de bibliothèques non adaptées pour tous les contrôles qui sont plus évolués qu'un bouton (des arbres avec support du drag&drop et de l'édition inline, des boîtes de dialogue...), le fait de devoir passer par de la génération de code HTML plus que par de la manipulation directe d'objets pour tout dynamisme dans l'application, les difficultés à accéder aux IHM standard fournies pas la plateforme (dialoguefile/open...).
Je suppose que l'aspect stateless du web n'est pas vraiment un frein dans ce cas là et qu'on devient statefull par l'intermédiaire des callbacks vers notre code.
Je suis globalement ignorant sur le sujet, donc les critiques que je fais sont plus l'expression d'un sentiment diffus qu'une véritable opinion, et je suis tout prêt à les voire démonter les unes après les autres.
Tu n'as pas tord mais dans le cas d'une application il y a différents avantages qui au final simplifient l'ensemble :
1. décrire la vue se fait en html uniquement, et ça c'est simple (c'est juste des déclarations de blocs d'elements)
2. le css est le language pour définir comment visuellement tout apparaitrat (le "thème graphique"

et ça du coup ça peut être totalement délégué à un graphiste qui saura souvent déjà faire du css
3. tous les éléments dans ta page web sont des objets accessible javascripts (donc là je pense que ce n'est pas très clair pour toi, mais dis toi que le html est une liste de déclarations d'objets accessible en javascript)
4. C++ a boost, JavaScript a JQuery. JQuery est omniprésent sur les sites modernes, et permet de manipuler la page web d'une façon tellement simple que je suis encore souvent impressionné.
5. JQuery a une extension qui fournit du GUI : JQueryUI. Du coup quitte a faire un choix, autant commencer par là.
6. TRES IMPORTANT : le feedback des modifications du développeur est immédiat; tuchanges un fichier, tu recharges, c'est visible. C'est plus dur a faire dans les autres contextes de GUI parceque ça suppose un language de script ET un moyen de tout réinterpréter "à la volée" - et c'est ce que tente de faire Qt avec QML, intégration JavaScript et autres à ce que j'ai compris.
Donc en fait une fois le système mis en place, ça coute pas plus cher que d'avoir un système de script spécifique au comportement visuel.
Cela étant dis, je ne pense pas qu'une IHM totalement web soit utile pour tout. Par exemple dans mon jeu je l'utilise pour tout ce qui est interractinos complexes, ce qui nécessite rééllement du "gui". Comme je suis en 3D, ça m'arrange de ne pas avoir a ajouter un plugin spécifique pour le GUI qu'un graphiste aura du mal a comprendre parceque presque personne ne l'utilise. CSS a l'avantage d'être bien connu des graphistes.
En revanche pour beaucoup d'éléments d'interface du jeu je n'utilise pas ce genre de trucs parceque c'est trop lourd pour ce dont j'ai besoni (ce qu'on appelle le Heads Up Display).
J'ai aussi besoin d'afficher de vrai pages webs online donc dans l'ensemble je suis bien content que ça fasse le travail à ma place.
Sinon l'autre chose c'est que si tu t'en tiens exclusivement au comportement graphique coté web (puisque c'est l'équivalent de la partie "client" d'une application web normale) alors l'essentiel de ce qui est important reste dans ton code d'application, et la séparation est très bien délimitée.
Je suppose que l'aspect stateless du web n'est pas vraiment un frein dans ce cas là et qu'on devient statefull par l'intermédiaire des callbacks vers notre code.
C'est exact sauf que depuis des années on utilise AJAX (en gros on demande des infos aux serveurs en javascript et on les utilise dans la page client sans recharger quoi que ce soit) et du coup ça reviens au même que dire qu'on peut faire des applications stateful en web. Remplace le serveur par le C++ de ton application et tu as la même chose (mais via des callbacks au lieu d'AJAX).
1 |
0 |