Développement mobile cross-platform

développement mobile cross platform par la haute société

Développer une application mobile : les enjeux techniques

La création d’application mobile et tablette représente un challenge technique de taille pour une entreprise. En effet, il n’y a pas une mais plusieurs solutions possibles : Site mobile ou webapp, développement natif, développement hybride, développement cross-platform (« multiplateforme » en francisé)…
Si on ajoute à ça une fragmentation du parc mobile de plus en plus importante (taille d’écrans, types et versions des systèmes d’exploitation, performances matérielles…), ce défi est encore plus grand. Regardez cette infographie de la fragmentation Android pour vous donner une idée de la complexité de l’affaire (sous un seul de ses aspects).

android fragmentation

Regardez fixement cette image. Encore. Vous êtes une grenouille. Envoyez nous votre numéro de CB par email. Quand je dirai « 3 » vous vous réveillerez : 1, 2, 3. C’est joli tous ces rectangles, ça fait un peu Mondrian vous ne trouvez pas ? (infographie par OpenSignal)

Afin de faire le bon choix, il convient de connaître les avantages et les inconvénients des différentes possibilités.

Site mobile, responsive design, webapp

Le site web représente encore une des manières les plus simples d’être présent sur mobile pour une entreprise. Tous les smartphones et tablettes du marché permettent de naviguer sur internet. Reste à proposer un site qui soit au moins visible et navigable sur mobile, et qui permette idéalement de proposer un expérience utilisateur et un contenu optimisé.
En fonction des problématiques, on pourra soit opter pour une version mobile spécifique du site ou une version en “responsive design” qui permettra de servir un même contenu sur ordinateur et sur mobile. On pourra pousser cette technique un peu plus loin en développant une application web (webapp) qui pourra se comporter comme une véritable application, généralement développée à grand renfort de codes javascript et autres boites à outils de type AngularJS ou React. La petite cerise sur la gâteau est de permettre à l’utilisateur “d’installer” le site sur la page d’accueil de son mobile “tout comme une vraie application”.
Pour ce type de développement, pas besoin de passer par les stores d’applications lourds et compliqués en terme de processus de publication : la mise à jour des données sur le serveur web suffit.

Avantages :

  • Présence sur mobile pour un budget réduit et mutualisation des développements web
  • Temps de mise en place relativement rapide
  • Maintenance et mise à jour plus souple
  • Parc cible important (potentiellement tous les navigateurs web mobiles)
  • Parfaitement adapté dès lors que l’on ne souhaite pas de fonctionnalité supplémentaire par rapport à un site web classique
  • Montée en compétence rapide des équipes projet

Inconvénients :

  • Connexion réseau indispensable
  • Pas d’accès aux fonctionnalités “natives” des systèmes
  • Temps de chargement à l’utilisation
  • Performances limitées
  • Accès moins intuitif qu’une application (ouverture du navigateur et saisie d’une url)
araymond 150 ans site responsive par La Haute Société

Un exemple de site responsive réalisé par La Haute Société : le site dédié pour les 150 ans de ARaymond, un de nos fidèles clients.

 

Les applications natives

Les applications mobiles sont l’approche “naturelle” du développement d’application mobile. Celle-ci garantit d’être au plus près des capacités du matériel et des systèmes d’exploitation. C’est clairement la solution qui permet d’obtenir des performances optimales ainsi que l’accès aux fonctions spécifiques des plateformes. Revers de la médaille : c’est aussi la solution la plus lourde à mettre en place car celle-ci nécessite l’utilisation d’environnements et de langages de programmation spécifiques :

  • iOS : Xcode et Objective C ou Swift et nécessité d’utiliser du matériel Apple pour les développements
  • Android : Android Studio et Java
  • Windows Phone : Visual Studio et C# et nécessité d’utiliser un environnement Windows pour les développements
    Une équipe de développement dédiée maîtrisant les différents environnements et langages est dans ce cas nécessaire. La prise en compte des spécificités des règles d’ergonomie imposées par chaque fournisseur de solution (Apple, Google et Microsoft) est indispensable si l’on veut avoir une chance que l’application soit publiée sur leurs boutiques respectives.

Avantages :

  • Performances des applications
  • Accès à toutes les fonctionnalités natives et spécifiques du matériel
  • Au plus près de l’ergonomie et des conventions habituellement utilisée par les utilisateurs sur leur smartphone
  • Outils de développement adaptés au mieux aux plateformes et évoluant avec le matériel
  • Adapté à des projets complexes et/ou de taille importante et disposant d’un long cycle de vie

Inconvénients :

  • Obligation d’une distribution via les “boutiques” propriétaires des chaque plateforme (App Store pour iOS, Google Play Store pour Android et Windows Store chez Microsoft)
  • Validation de l’application au bon vouloir des distributeurs
  • Capitalisation complexe des développements entre plateformes
  • Processus de développement lourds et peu flexibles
  • Coûts incompressibles importants surtout pour des petits projets
  • Équipes de développement potentiellement plus nombreuse (une équipe par plateforme)

 

Les solutions cross-platform

Entre les applications natives et les applications web, certains éditeurs et communautés de développeurs ont tenté de trouver des chemins de traverse afin d’en contourner les limitations et inconvénients. Dans ce domaine, les solutions cross-platform ou multiplateformes possèdent une position particulière et se distinguent par leurs approches technologiques.

Solutions hybrides orientées web

Ces solution sont composées de 80% de technologies Web (HTML/CSS/JS) couplées à 20% d’“extensions” permettant l’accès à quelques fonctionnalités natives des systèmes d’exploitation.
C’est l’orientation prise par exemple par PhoneGap, solution qui permet de proposer des webapps ressemblant à s’y méprendre à de véritables applications natives. Cependant, leur nature même ne permet pas de proposer des performances et une expérience utilisateur optimale, surtout pour des projets complexes ou nécessitant un bon niveau de performances. C’est la solution retenue fréquemment pour “porter” rapidement un développement web sous forme d’application disponible via les stores.

Avantages :

  • Simplicité des développements
  • Un seul “code” déployé sur plusieurs plateformes
  • Temps de mise en place rapide
  • Maintenance plus souple
  • Coûts de développements réduits
  • Idéal pour des projets nécessitants des besoins fonctionnels simples
  • Environnement de développement simplifié (technologies web)

Inconvénients :

  • Performances très limitées
  • Différences d’affichage et de comportement potentiel selon la plateforme d’exécution difficiles à anticiper
  • Pas d’accès à l’ensemble des fonctionnalités natives
  • Outils des développements peu adaptés à des projets complexes
  • Évolution limitée

Applications natives sur un socle cross-platform

Dans cette catégorie, on trouve des solutions de développement telles que Adobe Air, Xamarin et Appcelerator Titanium.
La production d’applications basé sur ces solutions s’appuie sur un langage commun (AS3 pour Adobe Air, C# pour Xamarin et Javascript pour Appcelerator) et des outils uniques afin de générer de véritables applications natives.
Il serait tentant de céder au sirène du développement cross-platform en pensant que ces solutions sont la réponse à tous les problèmes de développements mobiles. Toutefois, elles ne constituent pas la panacée en matière de développement mobile et possèdent également leur lot d’inconvénients. Comme toujours, il convient d’utiliser la solution qui répondra le mieux aux problématiques du projet (orienté animations graphiques ou interfaces classiques, gestion des données ou plutôt présentation “multimedia”…).

Avantages :

  • Partage possible des développements indépendamment des environnements cibles (à hauteur de 80% environ, selon la solution)
  • Un seul code à maintenir, donc plus souple à maintenir et à faire évoluer
  • Équipe de développement réduite
  • Meilleur rapport Performances/Rapidité de développement
  • Possibilité d’accès à quasiment toutes les fonctionnalités natives

Inconvénients :

  • Obligation de prendre en compte les spécificité du matériel dans une certaine limite
  • Distribution des applications obligatoirement via les stores
  • Outils de développements généralement propriétaires
  • Outils de développements contraignants
  • Lenteur relative des mises à jour des solutions de développement par rapport à l’évolution des matériels et des systèmes
  • Communauté de développeurs plus réduite

 

 

développement mobile cross-platform la haute société

Deux exemples made in La Haute Société à retrouver sur nos études de cas : Gluci-chek pour Roche Diabetes Care, et « Quelle solution pour ma maison » pour Diagral

Les choix technologique et le retour d’expérience à La Haute Société

Fidèles à notre philosophie (“nous n’avons pas de solution”), les choix des techniques de développement à la Haute Société ont été le fruit d’une réflexion basée sur les différentes problématiques spécifiques des projets de nos clients.
Budget, temps de production, nécessité d’évolution et nature de fonctionnalité attendue ont présidé à l’adoption de diverses technologies par notre équipe. D’autre part, souhaitant maîtriser la chaîne de production des applications, nos choix se sont orientés vers des technologies familières de nos développeurs afin de garantir une bonne rapidité de développement et un haut niveau de qualité du produit fini.

Adobe Air

Adobe Air, pour commencer par une technologie chère à nos coeurs, s’est naturellement imposée en permettant de capitaliser notre expérience acquise dans le domaine des applications web “riches” développées en Flash.
Fort de cette expérience, nos développeurs ont créé un Framework spécifique (« Swapp ») nous permettant une liberté et une efficacité encore plus grande dans l’exploitation de cette technologie.
Ce choix a été retenu dans le cadre du développement de l’application cross-canal et multi-supports pour Diagral “Quelle solution pour ma maison ?” et a permis de répondre aux enjeux suivants :

  • Une application a forte valeur ajoutée au niveau de son interactivité et son contenu multimédia (animations riches, vidéos…)
  • Un module « tout-terrain » déployable aussi bien sur le web du site que sur des tablettes installées en magasin de type Grande Surface de Bricolage ou sous la forme d’une application disponible sur Apple Store et Google Play
  • Des besoins de mise à jour réguliers

Appcelerator Titanium

Appcelerator Titanium constitue la deuxième corde à notre arc en matière de développement mobile. Open Source, cette solution a été retenue pour le développement d’applications complexes codées avec le langage Javascript (déjà largement maîtrisé par nos équipes) et compilées en langage natif. Titanium a notamment été utilisé dans le cadre de l’application « Gluci-Chek pour Roche Diabetes Care afin de répondre aux problématiques suivantes :

  • Gestion d’une large base de donnée alimentaire disponible “offline”
  • Capacité de stockage d’un grand volume de données personnalisables
  • Mises à jour régulières
  • Budget restreint (par rapport à un développement natif)
  • Même interface et ergonomie sur toutes les matériels cibles (iOS et Android)

Voila un panorama rapide et synthétique des possibilité offertes en matière de développement mobile.
Il existe bien d’autres solutions compétentes sur des domaines bien spécifiques telles de que Unity 3D dans le domaine du jeu, React Native qui partage beaucoup de concepts avec Titanium, RhoMobile basé sur le langage Ruby plus orienté vers l’entreprise…
Évidement, il reste beaucoup d’aspect à couvrir qui mériteront des articles dédiés : l’enjeu de la conception d’interfaces prenant en compte les spécificités et les concepts des différents systèmes, la gestion des différentes densité et tailles d’écran, les difficulté liées à la diffusion des applications sur les Store publique ou d’entreprise…
Le sujet est vaste et passionnant.
A bientôt donc pour de nouvelles aventures mobiles !