Quel est le langage de développement mobile préféré en 2014 ?
Exprimez-vous sur les raisons de votre choix

Le , par Francis Walter, Expert éminent sénior
Quel est le langage de développement mobile préféré en 2014 ?
Chers membres de Developpez.com,

Comme vous le savez, nous sommes à l'ère du développement d'applications mobiles. Nombreux sont les développeurs qui se sont lancés dans cette nouvelle ère de mobilité. Toutefois, le nombre de langages dédiés au développement mobile est restreint. De nouvelles performances ne cessent de naître et les outils de développement ne cessent de nous épater avec de nouvelles fonctionnalités.

Grâce au développement natif, beaucoup de développeurs peuvent faire des applications mobiles sans avoir à apprendre un nouveau langage. D'autre part, JavaScript, initialement conçu comme étant un langage de script, s'est fait une place parmi les langages mobiles les plus utilisés au monde. Une récente étude d'IDC affirme que JavaScript est le langage le plus pertinent pour le développement mobile. Les développeurs choisissent leur langage en fonction des performances recherchées et des fonctionnalités disponibles. Par ailleurs, une application conçue en HTML5 n'a pas les mêmes ambitions qu'une application faite en C++.

L'équipe de la rédaction de Developpez.com souhaite savoir quel langage vous utilisez pour développer vos applications mobiles et quelles sont les raisons qui vous motivent.

  1. Pourquoi avoir fait ce choix ? En particulier, pourquoi préférer une technologie native ou héritée du Web ?
  2. Quels sont vos critères de choix d'un langage pour développer une application mobile ? Le coût ? Les performances ? La licence ? Le temps de développement ? L'ergonomie ? Autres ?
  3. Quels sont les points forts / positifs (avantages) ?
  4. Quels sont les points faibles / négatifs (inconvénients) ?
  5. Pour quel genre de projets l'utilisez-vous ?
  6. Êtes-vous satisfait des résultats ?
  7. Quels sont les avantages et inconvénients d'un langage générique (utilisable sur plusieurs plateformes) ?
  8. Utilisez-vous d'autres langages ? Lesquels ? Pourquoi ?
  9. Quel autre langage voudriez-vous utiliser ? Pourquoi ?

Autre sondage :
Quel est le meilleur outil de développement mobile en 2014 ?

Il s'agit d'un sondage/débat, merci de suivre ces consignes :
  • SMS interdit en essayant d'écrire en français ;
  • évitez de multiplier les messages courts ;
  • les messages type taverne ou SMS seront effacés immédiatement sans préavis ou explications.

Le but étant de créer un débat de qualité.

Sondage pour 2015


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :




Avatar de dfiad77pro dfiad77pro - Membre expérimenté https://www.developpez.com
le 12/09/2014 à 9:42
Personnellement le couple C# Xaml me plait beaucoup

Pourquoi avoir fait ce choix ? En particulier, pourquoi préférer une technologie native ou héritée du Web ?
- Coût de formation très modéré depuis WPF
- Puissance et simplicité
- De nombreux outils de Design et de génération de Template , pas besoin d'installer trop d'extensions
- J'aime bien Visual studio pour sa cohérence globale

Quels sont vos critères de choix d'un langage pour développer une application mobile ? Le coût ? Les performances ? La licence ? Le temps de développement ? L'ergonomie ? Autres ?
- Ergonomie et facilité de changement
- Coût raisonnable ( Productivité et collaboration aisée avec les designers)
- très bonnes performances et gestion de l'autonomie ( il faut quand même pas faire n'importe quoi)

Quels sont les points forts / positifs (avantages) ?
- Compatible Windows 8.1 /phone/RT
- Vectoriel : Quel plaisir de tout faire en Xaml et de ne pas avoir des PNG/Jpeg pour chaque résolution
- Performances
- interaction avec Direct3D

Quels sont les points faibles / négatifs (inconvénients) ?*
- Portabilité pas terrible au niveau IHM (Xamarin est encore cher si on veut développer avec VS et ne gère pas Xaml totalement)
- Entity framework et BDD distante non gérée (cela est prévu dans EF7)

Pour quel genre de projets l'utilisez-vous ?
- Application médicale et cartographique
- Loisir (test, etc..)

Êtes-vous satisfait des résultats ?
- Globalement oui , cela dit les applications ne sont pas assez rapide à mettre en production sur le store (genre bug bloquant)

Quels sont les avantages et inconvénients d'un langage générique (utilisable sur plusieurs plateformes) ?
- Coût de formation, unicité du code

Utilisez-vous d'autres langages ? Lesquels ? Pourquoi ?
- Java et c++ pour les applications purement android
Avatar de anthyme anthyme - Membre expérimenté https://www.developpez.com
le 12/09/2014 à 10:03
Aujourd'hui en terme d'efficacité, de productivité, et de qualité Xamarin est tout simplement la meilleur approche mobile
Avatar de youtpout978 youtpout978 - Membre expert https://www.developpez.com
le 12/09/2014 à 10:08
Actuellement je fait principalement du C#/XAML mais j'ai développé une appli multiplateforme en HTML/CSS/JS/TS grâce à Cordova.

Cordova est sympa pour faire une appli simple d'une page dès qu'on veut faire une appli un peu plus complexe c'est le parcours du combattant, il y a des plugin comme Jquery Mobile qui peuvent nous aider dans notre tache mais il nous impose son style résultat impossible pour moi d'appliquer mon style avec ce plugin, j'ai du utiliser un plugin pour intégrer AdMob mais à l'époque WP8 n'était pas inclus, qu'elle galère pour le faire fonctionner, et l'internationalisation n'est même pas géré (à vous de le faire).
Après on trouve de nombreux plugin pour cordova grâce à toute la communauté qui boss autour (maintenant il y a un plugin AdMob pour WP8) et je pense que dans quelque temps la solution sera plus complète et plus viable pour des appli complexe.

Pour le C#/XAML on a le framework .net à notre disposition qui propose pas mal de chose de base et la plupart des grosses boites on sortie leur sdk pour être exploité avec WP8.1, en plus on a maintenant la possibilité de faire des applis universelle, le seul gros inconvénient c'est pour faire du multiplateforme, il y a bien Xamarin mais ça demande quand même un peu de boulot pour adapter l'appli aux différentes plateforme.
Avatar de Traroth2 Traroth2 - Membre chevronné https://www.developpez.com
le 12/09/2014 à 10:13
Les choix du sondage sont plus que limités...

J'ai répondu Java et HTML5+Javascript, mais j'aurais bien ajouté Ceylon, Scala et Clojure. Ou Erlang, d'ailleurs...
Avatar de mrqs2crbs mrqs2crbs - Membre averti https://www.developpez.com
le 12/09/2014 à 13:44
le dev pour mobil c'est pas trop mon domaine, mais y a rien avec python ou lua (qui sont quand même deux trés bons langages de scripts, lua surtout, vues ses performances, et il me semblait de plus que le moteur lua est nativement présent quasiment partout)?
Avatar de Amnell Amnell - Rédacteur https://www.developpez.com
le 12/09/2014 à 18:39
Bonjour,

Pour ma part, je me suis penché énormément sur le QML (Qt) pour mes interfaces graphiques et le C++ pour la partie logique de mes applications.

Pourquoi avoir fait ce choix ? En particulier, pourquoi préférer une technologie native ou héritée du Web ?

En général, les gens n'apprécient pas forcément le C++ pour le développement d'applications mobiles, étant donné que ce genre d'application nécessite en général d'être développé rapidement. De même, sur le plan des performances, on peut difficilement apprécier réellement plus le C++ que le C#, ce qui fait plutôt pencher la balance en défaveur du C++. Cependant, je code depuis des années avec ce qui me mène à avoir une productivité suffisante pour ne pas considérer ces points.

Mon choix se tourne en réalité autour du QML. À l'aide de cette technologie, on décrit notre interface un peu comme on écrirait du CSS, c'est-à-dire en associant des expressions à des propriétés, automatiquement mises à jour lors d'une modification de l'un des paramètres de l'expression. Il s'agit d'une arborescence d'éléments, par exemple un Rectangle arborant pour couleur un dégradé sombre et une MouseArea à l'intérieur permettant de notifier d'un clic, pour un bouton très simple. Cela peut sans doute vous paraître peu engageant comme manière de coder. Vous avez l'impression de recoder la roue. Si vous souhaitez l'éviter, vous pouvez utiliser les Qt Quick Controls qui vous permettront d'avoir un design natif, selon la plateforme ciblée. De mon point de vue, ce "recodage" est extrêmement pratique car il me permet de développer des interfaces graphiques modernes et avec mon propre design sans aucune complication. Les animations se codent en général en une ligne, et le résultat est fluide. Du fait que je code avec cela depuis des années (lorsqu'il n'en était qu'à sa version 1.0), ce choix peut sans doute être considéré comme un choix de facilité.

Étant très regardant sur les performances, et ne souhaitant pas que les utilisateurs se retrouvent à voir leur batterie flancher de manière significative, j'ai - c'est peut-être un préjugé - une certaine réticence à m'orienter vers des technologies Web exploitant un viewer. De plus, pour du contenu dynamique, la charge derrière me paraît à première vue un peu trop laborieuse pour être utilisée ailleurs que pour des applications simples (cela reprend un peu ce que disait Francis Walter dans le premier post).

En ce qui concerne les technologies natives, je pense que c'est la meilleure solution dans le cas utopique où le(s) développeur(s) ou l'entreprise aurait du temps à revendre pour faire les choses au mieux. J'emploie le terme utopique dans le sens où je ne considère pas aujourd'hui que les gens aient réellement le temps ou l'argent permettant de recoder en plusieurs exemplaires une même application ayant pour cible plusieurs plateformes. Dans le cas d'une application ne visant qu'Android, par exemple, le choix d'une technologie native me paraît cependant tout à fait adapté.

Quels sont vos critères de choix d'un langage pour développer une application mobile ? Le coût ? Les performances ? La licence ? Le temps de développement ? L'ergonomie ? Autres ?

Tout les points évoqués me semblent importants. Les classer en est ainsi assez difficile ; je m'y essaye cependant :

  1. L'ergonomie ;
  2. Les performances ;
  3. Le temps de développement ;
  4. La licence ;
  5. Le coût.

J'ai placé la licence et le coût à la fin, mais cela mérite à mon avis que l'on s'y attarde un peu. Une entreprise n'aura en général aucun problème à payer quelques licences permettant de développer avec une technologie donnée ainsi que les coûts liés aux stores d'applications mobiles, d'où le placement à la fin de la liste. Cependant, si l'on regarde du point de vue d'un particulier développant avec quelques amis une application mobile, les possibilités se trouvent très impactées. Xamarin, malgré son éclat actuel, coûte un peu d'argent, Qt pour iOS, par exemple, va nécessiter d'utiliser la version commerciale pour pouvoir builder statiquement les applications, bref, il ne reste alors plus que peu de choix, ce qui est plutôt dommage à mes yeux, car le développement d'une application mobile prend tout de suite une ampleur plus importe que s'il s'agissait d'un simple projet.

Quels sont les points forts / positifs (avantages) ?

Je reprends ici un peu ce que je disais en répondant à la première question :

  • Facilité du développement de l'interface graphique (ergonomie, animations, design, etc.) ;
  • Les performances sont intéressantes ;
  • Possibilités d'interactions avec le matériel (senseurs, etc.) ;
  • Un code pour plusieurs plateformes (iOS, Android, Windows Phone, notamment).

Quels sont les points faibles / négatifs (inconvénients) ?

  • Il est obligatoire d'envisager du Model/View pour aboutir si l'on souhaite utiliser C++ et non uniquement du QML ;
  • Le JavaScript exploité pour les expressions du QML peuvent s'avérer lentes si non optimisées ;
  • Il n'y a pas réellement de règles de codage, ce qui mène le développeur à devoir être consciencieux pour ne pas finir avec une bouillie de code dans tous les sens ;
  • Qt Commercial est nécessaire dans certains cas (iOS nécessite un build statique) ;
  • La croissance de la technologie a beau être importante, la technologie est jeune.

Pour quel genre de projets l'utilisez-vous ?

J'ai pu l'utiliser en entreprise à quelques reprises en développant des applications exploitant des Web services. Je l'ai également utilisé à maintes reprises pour des projets personnels, le dernier en date étant un jeu de tactique tour par tour où l'on contrôle des unités dans le cadre de batailles contre des IA, avec des objectifs donnés.

Êtes-vous satisfait des résultats ?

Les performances sont très bonnes, les animations fluides, etc., ce qui fait que oui, mais je n'ai pour le moment pas pu comparer sur de gros projets Qt/QML avec les autres technologies mobiles, ce qui fait que cette réponse n'est que peu objective.

Quels sont les avantages et inconvénients d'un langage générique (utilisable sur plusieurs plateformes) ?

En général, un langage générique va permettre de faire l'essentiel du travail mais nécessitera toujours des ajustements entre les plateformes cibles. Android nécessite par exemple de se plier à quelques contraintes de qualité, de performances et d'ergonomie (par exemple, si l'on a de la musique dans l'application, au moment où l'utilisateur sort de l'application pour regarder ses mails, la musique doit être coupée, à moins qu'il s'agisse d'une application vouée à jouer de la musique). De plus, certains devices pourront nécessiter pour l'utilisation de certaines capacités des outils natifs. Tout dépend vraiment de ce que l'on souhaite développer.

Utilisez-vous d'autres langages ? Lesquels ? Pourquoi ?

Dans le cas présent, non, je suis pour le moment immergé avec Qt/QML.

Quel autre langage voudriez-vous utiliser ? Pourquoi ?

J'aimerais assez me lancer un peu avec Xamarin de sorte de coder en C# et de me familiariser avec les WPF. J'ai jusque là seulement effleuré le sujet, et je me dis que je loupe peut-être quelque chose à rester cloîtré avec Qt.

Voilà pour moi. Je me rends compte d'avoir écrit une certaine quantité, mais j'espère avoir répondu de manière adaptée.

Bonne journée,
Louis
Avatar de dfiad77pro dfiad77pro - Membre expérimenté https://www.developpez.com
le 12/09/2014 à 19:06
Citation Envoyé par Amnell Voir le message
Bonjour,

Pour ma part, je me suis penché énormément sur le QML (Qt) pour mes interfaces graphiques et le C++ pour la partie logique de mes applications.

Pourquoi avoir fait ce choix ? En particulier, pourquoi préférer une technologie native ou héritée du Web ?

....

Bonne journée,
Louis
ça fait plaisir de voir un commentaire aussi détaillé,
tu m'a donné envie de regarder de plus près QT pour mobile ( j'en avais fait il y a longtemps pour les applications bureau).

Tu parles de Xamarin pour étudier WPF (XAML), cela dit mono et xamarin ne gèrent pas XAML ( ou un petit sous ensemble récemment).
Il serait donc mieux de commencer par du pur Microsoft et de dévier par mono/xamarin après, cela donne une vision plus globale de C# et du monde Microsoft.
Avatar de dianors dianors - Membre à l'essai https://www.developpez.com
le 12/09/2014 à 19:28
Étant au départ un féru fan de Java, je me suis retrouvé selon les exigences du moment à développer avec Js et j'avoue que maintenant je ne jure que par lui. Javascript est un langage surprenant et je suis sur que d'ici quelques années, il surplantera tout le reste.
Avatar de guillaume07 guillaume07 - Débutant https://www.developpez.com
le 13/09/2014 à 23:00
c++ pour sa facilité d'utilisation et sa productivité
Avatar de lvr lvr - Membre éprouvé https://www.developpez.com
le 25/09/2014 à 14:35
HTML5/JS/CSS via Intel XDK (Cordova), pour la facilité de prise en mains et pour le multi-platforme. Pas sûr que cela soit la meilleure solution pour de grosses appli, mais (dans mon cas) cela tient la route pour le moment.
Contacter le responsable de la rubrique Mobiles