Le développement multiplateforme sur mobile, réalité ou fiction ? - Cyril Cathala
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
SOMMAIRE L’avenir de la mobilité : natifvs web ..................................................................................... 3 L’explosion du marché des mobiles ................................................................................. 3 Entre coût et référencement, quid du modèle adapté .................................................. 5 Les outils multiplateforme d’aujourd’hui (et de demain ?) ............................................ 5 Choisissez vos armes !........................................................................................................... 7 La solution à moindres coûts : HTML/Javascript/CSS ..................................................... 7 Qualité maximale : au plus près du natif ......................................................................... 8 Vers une stratégie évolutive : HTML vers natif ................................................................ 8 L’entre deux, stratégie hybride ......................................................................................... 9 L’application d’entreprise et déploiement ....................................................................... 9 Conclusion ............................................................................................................................ 10 1
Qui est l’auteur ? Cyril Cathala Expert .NET spécialisé dans les technologies XAML / C# (Windows 8, Windows Phone, Silverlight, WPF) Passionné par le domaine du mobile, Cyril aime s’y plonger via des projets Windows 8, Windows Phone et Azure. Tour à tour speaker, formateur, blogueur, UX master, il participe activement aux communautés développeurs, et n’hésite pas à voler au secours des développeurs en péril au travers (notamment) de l’accélérateur d’applications Windows Phone ! 2
L’avenir de la mobilité : natifvs web L’explosion du marché des mobiles Depuis plusieurs années, la vente des smartphones et tablettes est en plein essor, au détriment des PC qui voient leurs ventes stagner. Les statistiques montrent que les utilisateurs naviguant sur internet depuis un mobile, les mobinautes, sont en nette augmentation et dépasseraient même les internautes. Le web n’est plus le seul univers connecté de prédilection, la nouvelle norme sur mobile est aux applications, point d’entrée d’un univers intégré à son périphérique et accessible uniquement (ou presque) depuis un magasin d’applications (ou store). Ce changement dans la consommation du digital amène une fracture notable dans l’usage des périphériques d’aujourd’hui. Les nombreuses différences induites par ces form factors demandent aux développeurs de s’adapter à chaque système et langages de développement, chaque déclinaison d’écran (portrait, paysage, petit, grand...), chaque interaction (tactile, clavier/souris). 3
Le challenge est élevé pour cibler tous les périphériques et répondre à l’attente des utilisateurs. Du côté du web mobile, des solutions se mettent en place, avec notamment le responsive design induit par les nouvelles normes de CSS3 et ses media queries. HTML5 (et ses compagnons Javascript et CSS3) tente de conquérir le coeur des mobinautes, pour une expérience optimale s’adaptant à tous les formats. L’expérience web mobile devient de plus en plus riche mais ne rivalise pas encore avec le développement d’applications natives, qui ont directement accès aux spécificités du périphérique et à des thèmes graphiques adaptés. En (vraiment) résumé, nous pourrions comparer les 2 approches par le tableau suivant : Web mobile Application native Standard multiplateformes Spécifique à la plateforme Version du site déclinée format mobile Meilleures performances Faibles coûts Coûteux Référencement via moteur de recherche Référencement via Store Expérience limitée aux possibilités de Maintenance navigateur Respect de l’expérience utilisateur En ligne uniquement Support du hors ligne 4
Entre coût et référencement, quid du modèle adapté Lorsqu’on sait que chaque store prélève une partie des bénéfices (généralement 30%) sur tous les paiements effectués autour des applications, cela peut refroidir bien des business par exemple basés sur des abonnements. Dans ce cas, l’approche « web app » peut être préférable. Reste à prendre en compte l’aspect visibilité. Que représente une application web présente uniquement sur le vaste web comparée à un magasin d’applications ? Cette composante de visibilité marketing peut jouer en faveur des applications natives, tout dépend du public visé et de la notoriété du produit. D’autre part, la justification des coûts peut être intrinsèque au rôle de l’application. Par exemple, une application permettant de remplir sa feuille d’imposition, utilisée donc 1 seule fois par an, justifie-t-elle un investissement de plusieurs milliers d’euros ? Le débat fait rage : web mobile ou application native ? Et s’il existait une autre solution alliant le meilleur des deux mondes ? Les outils multiplateforme d’aujourd’hui (et de demain ?) Lorsqu’on aborde le développement d’applications natives, c’est-à-dire lorsqu’on développe dans le langage spécifique à un système d’exploitation (ex.: Objective C pour iOS), cela demande des compétences particulières et propres à chaque plateforme. Evidemment, tout dépendra des besoins : 5
Voulez-vous une application de qualité, performante et au design bien intégrée au système ? Combien de temps avez-vous pour tout développer, et à quel budget ? Le prélèvement sur les achats peut-il être un frein au business (exemple d’une app avec abonnement) ? Quel OS viser en priorité ? Dois-je prendre en compte les OS émergents ? Vous souhaitez migrer une application existante vers un autre OS, comment s’y prendre ? Plusieurs approches existent pour aborder le développement multiplateforme, chacune répondant à un ensemble de problématiques : Type Description Exemples Profil Langage Framework • Site web responsive jQuery Mobile, Sencha Développeurs web Javascript Javascript • Aide au développement Touch, Zepto JS, avec composants ImpactJS, LimeJS, iUI, réutilisables Wink… Web vers • Wrapper d’app HTML/JS Adobe PhoneGap Build, Développeurs web HTML/CSS/Javas natif • Single Page App Uxebu, Sencha Touch cript • Web app avec v2, MoSync… fonctionnalités natives Cross- • 1 langage compilé dans Xamarin, Titanium… Développeurs Langage compilation le langage natif cible logiciel supporté (C#, Javascript, Java…) Runtime • Machine virtuelle qui fait Adobe Air Développeurs Langage tourner du code logiciel supporté intermédiaire (ActionScript, JS…) Bas niveau • Composants graphiques Unity, MonoGame, Développeurs jeux Langage bas niveau DeltaEngine, Corona … supporté (C++, • Utilisé pour les jeux OpenGL…) Existe-t-il une approche meilleure qu’une autre ? 6
Choisissez vos armes ! Pas de solution miracle ou d’outil universel pour le développement multiplateforme, à chacun son scénario, en fonction du contexte et des objectifs. La solution à moindres coûts : HTML/Javascript/CSS Le classique trio HTML/JS/CSS reste le favori du développement multiplateforme peu onéreux, souvent au détriment de l’expérience utilisateur. Les normes évoluent et tendent vers une expérience toujours plus proche du natif, grâce aux smartphones plus puissants et à l’évolution de la norme (bientôt HTML5.1, puis HTML6 ...?). Malheureusement, les performances ne pourront jamais égaler le natif, et le look&feel de l’OS est rarement respecté à 100%. Toujours est-il que cette approche est de plus en plus populaire, et est facilitée par de nombreux frameworks. La difficulté revient justement à choisir quels sont les frameworks les plus adaptés, quitte à en mixer plusieurs ensemble. Le choix se portera souvent sur les outils que les développeurs préfèrent et maîtrisent, nous pourrions en citer quelques-uns connus : Sencha Touch 2, Angular, XUI, Zepto... + - Moindres coûts Performances moyennes Multiplateformes avec partage des vues Dépendant d’un thème natif Compétences HTML/JS/CSS réutilisables Beaucoup de problématiques Ressources réutilisables depuis un site javascript pour un rendu optimal web mobile Debug fastidieux 7
Qualité maximale : au plus près du natif Le développement natif reste roi pour des applications d’exception : graphiquement en harmonie avec le système, performances et possibilités maximales. Dans ce cas, il convient d’utiliser les contrôles graphiques de chaque OS, ce qui requiert l’intervention de développeurs spécialisés. En gardant uniquement ce pan propre aux OS, il est finalement possible de dégager une brique réutilisable : la logique métier. Celle-ci pourra contenir les appels de données, les règles métier, certains paramètres et autre code indépendant de la plateforme et de la couche graphique. + - Réutilisable de compétences (C#, Design non réutilisable Javascript..) Coût et maintenance Réutilisation de la couche métier Performances optimales Design fidèle à l’OS App de qualité Vers une stratégie évolutive : HTML vers natif Une autre stratégie consiste à itérer en plusieurs temps : débuter avec une solution type “wrapper web” pour un time-to-market rapide, puis basculer progressivement les applications vers du natif. Cela se fait fonctionnalité par fonctionnalité, écran par écran. 8
+ - Coût répartis sur le moyen / long terme Coût sur le long terme Partie du design réutilisable Premières versions moins Time to market potentiellement rapide qualitatives Compétences multiples requises (web et natif) L’entre deux, stratégie hybride De la dernière approche en découle une autre similaire : le partager entre web et natif. Ainsi, l’application se retrouve découpée en plusieurs parties : certains écrans nécessitant un développement natif (pour un rendu optimal), d’autres se suffisant à du web embarqué, aisément réutilisable. + - Coûts répartis réduits Rendu potentiellement étrange d’une Partie du design réutilisable page à l’autre Time to market relativement rapide Compétences multiples requises (web et natif) L’application d’entreprise et déploiement Lorsqu’on souhaite uniquement développer des applications d’entreprise multiplateforme, le choix se restreint aux outils facilitant le déploiement en masse, voire proposant un portail d’entreprise. 9
Dans ce cas, les contraintes de design sont moindres et on peut se permettre de s’éloigner légèrement de l’expérience utilisateur. Évidemment, plus on s’en éloigne, plus le besoin en formation se fait sentir. + - Réutilisable de compétences internes Coûts de maintenance des outils de Peu de contraintes sur le design déploiement Conclusion De nombreux scénarios qui s’adaptent à toutes les situations, ou presque … L’évolution des normes web modifiera probablement la donne d’ici quelques années. En attendant, il faut savoir s’adapter et miser sur le bon cheval. Vu les tendances actuelles, miser sur le web restera forcément rentable sur les 5 années à venir, ne serait-ce que pour la réutilisation de compétences et de ressources graphiques. Bien entendu, les utilisateurs d’aujourd’hui exigent qualité et performance, en tout cas si vous voulez répondre à tous leurs désirs. Aujourd’hui, seul le développement d’applications natives permet de garantir une expérience utilisateur optimale en tout point. Heureusement, plusieurs solutions matures existent pour développer en natif sur plusieurs plateformes tout en réutilisant des briques communes. La bataille du développeur sur mobile est rude mais en vaut la peine. Les armes sont là, encore faut-il réussir à choisir la bonne ! 10
FIN 11
Vous pouvez aussi lire