HTML5 vs. Flash, quel choix de technologie effectuer pour ses applications web et mobiles ?

Dans un contexte de double mutation, celle des supports et celle des langages, le choix d'une technologie adaptée à la réalité d'une communication digitale reste une étape clef dans la réalisation de tout projet.


Coté supports, de nouveaux terminaux – ou « devices » - mobiles viennent se prendre une part chaque année plus importante dans le parc numérique. Cette multiplication des tablettes et smartphones vient altérer les comportements de leurs utilisateurs ; ces derniers développent des exigences nouvelles en termes d'ergonomie, de fonctionnalités, de personnalisation des applications numériques.
Coté langages et standards technologiques, l'adoption croissante du HTML5/CSS3 comme nouveau standard pour la création de contenus web et numériques vient redéfinir la nature même de ces contenus.
Les possibilités de cette technologique imposent elles aussi des nouvelles pratiques dans la communication numérique.

État des lieux HTML5
HTML5 est le prochain standard du langage de construction de page web. Porté par le W3C, celui-ci a été rendu public en 2011, mais ne devrait être finalisé qu'en 2014.
Le HTML est un langage de description de document, conçu initialement pour composer des documents hypertextes. Il ne s'agissait donc pas d'un langage à vocation applicative.
Cet aspect a été introduit dans le projet HTML5, intégrant diverses API, ou modules applicatifs, permettant de réaliser en HTML des fonctionnalités jusque là uniquement faisables avec des Plugins ou du JavaScript.
Une démonstration des applications potentielles de ces API, couplées aux feuilles de styles CSS3 est proposée par Adobe dans "The expressive web".
Les fonctions les plus spectaculaires sont celles impliquant support vidéo, dégradés, et dessin vectoriel (API Canvas)...
Si de nombreuses nouveautés de HTML5 sont spectaculaires et ouvrent la porte à des pages web plus riches et animées que jusqu'ici, un principal frein empêche aujourd'hui le langage de s'imposer comme nouveau standard : HTML5 n'est pas encore pleinement supporté par l'ensemble des navigateurs.
Pire encore, son support n'est pas uniforme, car à ce jour, il n'y pas un support du HTML5, mais plusieurs, selon les différents noyaux logiciels des navigateurs web.
Si WebKit/Chromium est très avancé dans le support de HTML5, Mozilla conserve un certain retard – seules les versions récentes présentent un «vrai » support du format – et enfin Internet Explorer n'offre un très partiel support dans sa version 9, et promet mieux pour le prochain IE10 (à venir dans Windows 8).

Faute de convergence, et de véritable standardisation, HTML5 ne peut être exploité que partiellement si on veut toucher une population importante d'internautes. Ainsi un nombre important de fonctionnalités devra être mis de coté en attendant un futur support plus universel.
Les enrichissements devront être confiés à des frameworks Javascript mieux supportés – typiquement jQuery.
http://www.html5rocks.com/en/features/multimedia#features
http://caniuse.com

A titre d'exemple, le site Deezer, récemment refondu en HTML5, utilise toujours un player audio en Flash, car HTML5 ne permet pas à ce jour le développement de cette fonctionnalité avec les exigences de support universel ni de protection des données soumises à copyright.
http://blogmotion.fr/internet/telecharger-deezer-flash-7118

Du coté des équipements mobiles, les constructeurs ont largement franchi le pas, tous les smartphones et tablettes embarquent un navigateur compatible HTML5 – Safari chez iOs, Chrome chez Android.
Cette mise à disposition du support HTML5 sur ces équipements permet d'utiliser le langage pour la constitution de sites ciblées mobiles mais aussi d'applications mobiles.
Toutefois, l'usage de HTML5 pour la production d'applications mobiles est une réponse à minima, séduisante par un faible coût de production, ainsi que par de modestes exigences en terme d’expertise du développement logiciel.
Les limitations du langage sont inhérentes à sa nature intrinsèque : HTML5 est un langage de construction de pages Web. Les applications basées sur celui-ci resteront des pages Web – même sophistiquées – affichées dans un navigateur embarquée par l'application mobile. L'ergonomie des applications sera donc largement bridé par ce formatage.
Dans des considérations purement techniques, les performances d'applications HTML5 sur équipements mobiles sont largement inférieures à celles réalisés dans les langages dits "natifs" de ces équipements.
http://en.wikipedia.org/wiki/Comparison_of_HTML5_and_Flash
http://blog.stjohns.fr/2012/153/html5-et-flash.html

État des lieux Flash
L'avantage du déploiement Flash Player est la compatibilité absolue avec les navigateurs web équipés du Plugin, soit la quasi-intégralité (98%) du parc informatique actuel.
Toutes les versions – ou presque - sont supportés. Par exemple pour Internet Explorer, le recours au Plugin Flash permet une compatibilité de la version 6 jusqu'à la 10 (non publique à ce jour).
Flash - porté dans la dernière version de son langage, ActionScript 3 - permet de déployer ses contenus dans le contexte d'une application et tout aussi bien que dans celui d'un site sous Flash Player.
Et ceci, à partir d'un développement unique.

Les perspectives d'évolution de l'équipement des terminaux par le Plugin Flash Player engage à étudier de futurs choix technologiques.

Les derniers communiqués de Adobe, éditeur de Flash Player et de Flash, annoncent à très court terme la fin de la distribution du Plugin Flash Player à destination des équipements mobiles. C'est à dire la fin du support de Flash en tant que module externe pour les navigateurs Internet des terminaux mobiles.
Ceci ne signifie pas l'abandon des terminaux mobiles (smartphones, tablettes) par Adobe, mais un re-positionnement de sa stratégie, dans le but précis de renforcer la diffusion de contenus Flash sur ces supports.

Le re-positionnement d'Adobe, n'est donc pas un retrait, bien au contraire.

Adobe juge à raison que les contenus Flash trouvent leur valeur ajoutée dans une immersion, une lecture plein-écran... expérience qui est forcément bridée dans le cadre de l’exécution via un Plugin navigateur.
Le meilleur bénéfice des contenu Flash sera trouvé par leur rendu via un environnement d’exécution dédié, ou Runtime, permettant une diffusion indépendante du navigateur.
Le Runtime dédié à Flash est Adobe Integrated Runtime ou AIR.
AIR a été lancé en 2008 par Adobe sur un modèle comparable aux machines virtuelles Java, c'est en développant AIR que Adobe assure la pérennité des contenus Flash sur l'ensemble des plate-formes pour lesquelles le Runtime est maintenu :
- ordinateurs Mac/Windows
- terminaux Android, iOS, Blackberry
- télévisions connectées..
http://www.adobe.com/fr/products/air/tech-specs.html
http://fr.wikipedia.org/wiki/Adobe_Integrated_Runtime

Enfin, les dernières versions des logiciels de production Flash (Flash Pro, Flex, Flash Builder), permettent nativement de compiler les projets Flash dans les formats applicatifs des systèmes d'exploitation mobiles.
Dans ce contexte, le modèle de diffusion est celui d'Applications mobiles autonomes.

Le futur des applications web s'envisage donc à la lumière des évolutions annoncées par Adobe pour Flash.

La migration vers AIR offre les atouts suivants :
- le support en tant que véritable Application par les terminaux iOS (iPad, etc), Android (tablettes Asus, Samsung), etc
- le support en tant qu'Application sur les ordinateurs personnels (Windows et Mac Os)
- le maintien du développement dans le contexte Flash, avec toutes les possibilités graphiques offertes par le format (liberté de création et animation, force du langage ActionScript, support vidéo, rendu 3D... )
- pour les navigateurs dont le Plugin Flash Player reste maintenu, le fonctionnement "historique" reste accessible

Avenir sur les plate-formes Windows futures

La diffusion en application libère complètement de toutes dépendance vis-à-vis de Flash Player.
Étant capable de publier au format .exe, il devient possible de déployer des applications sur les plateformes Windows futures, que celles-ci maintiennent Flash Player ou non.

La prochaine version de Windows, 8, inclura une distribution de Flash Player dont l'usage, selon les recommandations de Microsoft, devra être réservé à des applications proposant une vraie valeur ajoutée en matière d'expérience utilisateur. Une application rentre exactement dans ce cadre là.
Un autre nouveauté annoncée de Windows 8 est la création d'un espace de téléchargement d'applications sur le modèle des App Stores d'Apple et Google. La technologie impliquée est le Windows Runtime ou Windows RT. Là aussi, la plateforme Flash permettra de publier dans ce format.
http://msdn.microsoft.com/en-us/library/ie/jj193557.aspx

Les perspectives de diffusion au monde Windows sont donc encourageantes, quels que soient les choix futurs de Microsoft à propos de Flash Player.

Impact

Le premier impact de cette évolution est simple, les applications Flash aujourd'hui codées en ActionScript 2.0 devront évoluer pour être rédigées en ActionScript 3.0.
La version 3 du langage de programmation Flash étant la seule supportée par la plateforme AIR, et la seule autorisant les exports vers terminaux mobiles.

La seconde conséquence est l'impératif abandon d'un large nombre de recours aux contenus Flash Player dans la création web.
Par soucis de produire des contenus web universellement accessibles, l'usage de contenu Flash Player devient bloquant. Les sites full-flash sans versions alternative sont à proscrire ; à moins que l'on soit confortable avec l'idée de se tenir à l'écart de tous les utilisateurs de tablettes.
De la même façon, les modules de navigations en Flash sont à éviter ; mais ces pratiques étaient largement condamnées par les exigences inhérentes aux politique SEO (référencement naturel).

Rapport HTML5/Natif

Pour obtenir une véritable liberté de création et de conception d'une expérience utilisateur conviviale et intuitive, il est nécessaire de porter le développement dans un contexte plus riche, de niveau logiciel.
Pour cela, l'usage d'un vrai langage de développement et de sa plateforme de travail associée est requis.
http://www.journaldunet.com/ebusiness/expert/51796/html5-ou-natif--quelle-strategie-adopter-pour-vos-applications-mobiles.shtml

A titre d'exemple, la semaine dernière, Mark Zuckerberg, fondateur et dirigeant de Facebook, a annoncé que les prochaines applications Facebook ne seraient plus basées sur HTML5, mais sur du développement natif.
http://techcrunch.com/2012/09/11/mark-zuckerberg-our-biggest-mistake-with-mobile-was-betting-too-much-on-html5/

C'est dans cette perspective que Couleur Citron a également choisi de se reposer sur la plateforme Flash pour la réalisation d'applications.

La réponse Flash est une réponse native

Flash a déjà largement fait ses preuves pour la production d'applications en ligne, comme d'applications "desktop". Flash a permis à d'innombrables éditeurs de produire des applications, des jeux, des supports de formation...

Les dernières évolutions de Flash (Flash Pro version CS6, Flash Builder 4.6), permettent de publier nativement pour l'ensemble des terminaux mobiles, ce qui offre tous les atouts de cette plateforme en matière de richesse d'animation, de rendu visuel, support multimédia, sécurisation des contenus... aux applications mobiles.

D'autres atouts non négligeables sont :
- le développement dans le langage ActionScript 3, réalisé avec les outils de l'éditeur Adobe : Flash Professionnel, Flash Builder.
- le même projet fournit les livrables pour l'ensemble des plate-formes cibles : SWF pour Flash Player, IPA pour iPad, etc...
Il n'y a pas de duplication de développements, tous les travaux réalisés ne le sont qu'une seule fois.
http://helpx.adobe.com/flash-player/release-note/fp_114_air_34_release_notes.html
http://blogs.adobe.com/flashplayer/2012/08/flash-player-11-4-and-air-3-4.html

Tableau comparatif entre HTML5 et Flash :


HTML5

Flash

Diffusion

Support à partir des versions récentes des navigateurs (selon les éditeurs entre 2011 et 2013)

Support dès l'équipement du Plugin ou natif si export en application

Vidéo

Support vidéo freiné par une guerre de formats entre MP4, WEBM et OGG

Support des vidéos MP4, MOV, 3G, FLV...

Rendu

Rendu variable selon les navigateurs : différents niveau de compatibilité et de rendu

Rendu unique

Transitions

Volets, translations

Fondus, transparences, flous, colorations, saturations...

Finesse des mise en page

Mise en forme basée sur des paves de texte, enrichis en CSS

Liberté de mise en forme absolue ; placement libre des éléments dans l'espace

Éléments d'interface

Boutons HTML, éventuellement habillés en CSS

Totale latitude de création de pictos, boutons et autres éléments

Sécurisation des contenus

Aucune, tout est accessible par lecture du code source HTML

L'application est compilé donc cryptée, les contenus sont protégés

Diffusion

Pour les utilisateurs disposant d'un équipement compatible Flash Player (98% des PC/Mac) l'accès aux applications reste identique à celui connu aujourd'hui, au sein du navigateur.

Pour les utilisateurs "tablettes", l'accès pourra renvoyer vers une page de téléchargement d'une application iPad ou Android. Cette page peut être privée et non liée aux App Stores d'Apple ou Google ; ou à l'inverse, une diffusion via les App Stores sera envisagée, selon la typologie du projet.

Une fois l'application installée, l'utilisateur disposera de la même interface de travail, mais enrichie des possibilités supplémentaires offertes par les équipements mobiles : contrôle tactile...
Par ailleurs, sur tablette il est possible de mémoriser le compte utilisateur associé, et de ne pas redemander identifiant et mot de passe à chaque lancement de l'application, etc.
http://itunes.apple.com/us/book/ios-deployment-scenarios/id499335673?mt=11

Conclusion

Le choix de technologie doit être dicté par les objectifs poursuivis par le projet.

Dans le cas d'un projet Web, le recours à des contenus Flash Player ne devra être envisagé qu'à défaut de solution HTML ou Javascript équivalente.
A l'inverse, le développement de contenus enrichis de comportements HTML5 devra se faire avec un soucis de compatibilité sur les divers navigateurs, en s'attachant à ne pas interdire ses contenus à une trop grande population d'utilisateurs.

Dans le contexte d'application mobiles, si le projet est le prolongement d'une réalisation web, ou une application de modeste ambition en terme d'ergonomie ou d'animation, HTML5 est une solution économique qui pourra fournir une réponse rapide.
Mais à l'inverse, si l'application doit tirer profit de tout le potentiel du support mobile, créer une véritable expérience utilisateur immersive... il n'y aura pas d'autre solution satisfaisante que le recours à un développement natif.
Et à ce titre, la plate-forme Flash d'Adobe est certainement l'un des meilleurs choix pour réaliser ces développements.