<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Les interfaces utilisateur on INF1410 - Initiation au génie logiciel</title><link>https://cjauvin.github.io/inf1410-teluq/docs/module3/interfaces/</link><description>Recent content in Les interfaces utilisateur on INF1410 - Initiation au génie logiciel</description><generator>Hugo</generator><language>fr</language><atom:link href="https://cjauvin.github.io/inf1410-teluq/docs/module3/interfaces/index.xml" rel="self" type="application/rss+xml"/><item><title>Perspective historique</title><link>https://cjauvin.github.io/inf1410-teluq/docs/module3/interfaces/historique/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cjauvin.github.io/inf1410-teluq/docs/module3/interfaces/historique/</guid><description>&lt;h1 id="perspective-historique-des-interfaces-utilisateur"&gt;Perspective historique des interfaces utilisateur&lt;a class="anchor" href="#perspective-historique-des-interfaces-utilisateur"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;L&amp;rsquo;interface utilisateur est le point de contact entre un humain et un logiciel. C&amp;rsquo;est la partie visible, celle que l&amp;rsquo;utilisateur touche, voit et manipule. On distingue aujourd&amp;rsquo;hui l&amp;rsquo;&lt;strong&gt;UI&lt;/strong&gt; (&lt;em&gt;User Interface&lt;/em&gt;) de l&amp;rsquo;&lt;strong&gt;UX&lt;/strong&gt; (&lt;em&gt;User Experience&lt;/em&gt;) : l&amp;rsquo;UI désigne l&amp;rsquo;ensemble des éléments visuels et interactifs (boutons, menus, formulaires), tandis que l&amp;rsquo;UX désigne l&amp;rsquo;expérience globale de l&amp;rsquo;utilisateur, qui englobe non seulement l&amp;rsquo;aspect visuel mais aussi la facilité d&amp;rsquo;apprentissage, la fluidité de navigation et la satisfaction à l&amp;rsquo;usage. Un produit peut avoir une belle UI et une mauvaise UX si, par exemple, les menus sont visuellement soignés mais difficiles à trouver. Pourtant, la manière dont on conçoit cette interaction a radicalement changé au fil des décennies. Les premiers programmeurs interagissaient avec leurs machines par des cartes perforées et des imprimantes ; aujourd&amp;rsquo;hui, on glisse du doigt sur des écrans tactiles ou on parle à des assistants vocaux. Cette évolution n&amp;rsquo;est pas qu&amp;rsquo;une question de technologie, elle reflète des changements profonds dans notre conception de ce qu&amp;rsquo;un ordinateur peut et devrait être. Comprendre cette histoire permet de mieux saisir pourquoi les interfaces modernes sont construites comme elles le sont, et quelles tensions fondamentales continuent de les façonner.&lt;/p&gt;</description></item><item><title>L'architecture des applications web</title><link>https://cjauvin.github.io/inf1410-teluq/docs/module3/interfaces/architectures-web/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cjauvin.github.io/inf1410-teluq/docs/module3/interfaces/architectures-web/</guid><description>&lt;h1 id="larchitecture-des-applications-web"&gt;L&amp;rsquo;architecture des applications web&lt;a class="anchor" href="#larchitecture-des-applications-web"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;Le web a été conçu comme un système de documents. Un navigateur envoie une requête HTTP (dont nous avons examiné le protocole en détail dans la &lt;a href="https://cjauvin.github.io/inf1410-teluq/docs/module3/apis/"&gt;section sur les APIs&lt;/a&gt;) à un serveur, qui répond avec un document HTML. L&amp;rsquo;utilisateur clique sur un lien, le navigateur envoie une nouvelle requête, et reçoit un nouveau document. Ce modèle requête-réponse, simple et élégant, a fonctionné remarquablement bien pour le web documentaire. Mais à mesure que le web s&amp;rsquo;est transformé en plateforme d&amp;rsquo;applications, ce modèle a montré ses limites. Comment construire une boîte de réception Gmail, avec ses messages qui apparaissent en temps réel, dans un système conçu pour afficher des pages statiques ? La réponse à cette question a donné lieu à une succession d&amp;rsquo;architectures, chacune tentant de résoudre les problèmes de la précédente.&lt;/p&gt;</description></item><item><title>Les frameworks JavaScript</title><link>https://cjauvin.github.io/inf1410-teluq/docs/module3/interfaces/frameworks/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cjauvin.github.io/inf1410-teluq/docs/module3/interfaces/frameworks/</guid><description>&lt;h1 id="les-frameworks-javascript"&gt;Les frameworks JavaScript&lt;a class="anchor" href="#les-frameworks-javascript"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;La section précédente a décrit les grandes architectures des applications web : SSR, SPA, hybride. Mais ces architectures ne se construisent pas à la main. Manipuler directement le HTML d&amp;rsquo;une page depuis JavaScript pour créer une application interactive est techniquement possible, mais rapidement ingérable dès que l&amp;rsquo;interface devient complexe. C&amp;rsquo;est pourquoi, depuis le milieu des années 2000, une succession de bibliothèques et de frameworks JavaScript ont émergé pour structurer le développement côté client. Leur histoire est traversée par une tension fondamentale entre deux approches : l&amp;rsquo;approche &lt;em&gt;impérative&lt;/em&gt; (dire au navigateur &lt;em&gt;comment&lt;/em&gt; modifier l&amp;rsquo;interface, étape par étape) et l&amp;rsquo;approche &lt;em&gt;déclarative&lt;/em&gt; (décrire &lt;em&gt;ce que&lt;/em&gt; l&amp;rsquo;interface devrait être, et laisser le framework se charger des modifications). Pour comprendre cette tension, il faut d&amp;rsquo;abord comprendre ce qu&amp;rsquo;est le DOM.&lt;/p&gt;</description></item><item><title>Desktop, web et mobile</title><link>https://cjauvin.github.io/inf1410-teluq/docs/module3/interfaces/convergences/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cjauvin.github.io/inf1410-teluq/docs/module3/interfaces/convergences/</guid><description>&lt;h1 id="desktop-web-et-mobile-tensions-et-convergences"&gt;Desktop, web et mobile : tensions et convergences&lt;a class="anchor" href="#desktop-web-et-mobile-tensions-et-convergences"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;Les sections précédentes ont retracé comment le web est devenu la plateforme dominante pour les interfaces utilisateur, portée par des frameworks de plus en plus sophistiqués. Mais le web n&amp;rsquo;est pas la seule plateforme. Les applications desktop natives continuent d&amp;rsquo;exister pour les cas qui exigent des performances maximales ou un accès direct au matériel (éditeurs vidéo, jeux, outils de développement). Les applications mobiles, apparues avec l&amp;rsquo;iPhone en 2007 et l&amp;rsquo;Android Market en 2008, ont créé un nouvel écosystème avec ses propres langages (Swift pour iOS, Kotlin pour Android), ses propres conventions d&amp;rsquo;interface, et ses propres canaux de distribution (les app stores). Le résultat est un paysage fragmenté où un même service doit souvent exister sous plusieurs formes : un site web, une application iOS, une application Android, parfois une application desktop. Cette fragmentation relance, à une échelle bien plus grande, la tension qu&amp;rsquo;on a identifiée dans la section historique à propos des toolkits desktop : faut-il écrire du code natif pour chaque plateforme, au prix de la duplication, ou chercher une solution universelle, au prix de compromis sur l&amp;rsquo;expérience utilisateur ?&lt;/p&gt;</description></item></channel></rss>