Passer au contenu

Développement mobile : choisir son environnement de développement

La marché du mobile a énormément évolué depuis le début de l’année 2012. Apple, Google, Windows et Nokia sont en compétition constante pour récupérer des parts…

La marché du mobile a énormément évolué depuis le début de l’année 2012. Apple, Google, Windows et Nokia sont en compétition constante pour récupérer des parts de marché : Android rattrape et dépasse dans certains pays iOS, et Windows Phone commence à se développer. Le marché des OS sur mobile est donc particulièrement dynamique.

Ainsi, les OS se multiplient; en conséquence, les développeurs doivent faire face à un nombre croissant d’environnements de développement à maîtriser. Afin de réduire les délais et donc les coûts de développement, des plateformes de développement multi-OS (appelées cross-platform) ont commencé à voir le jour. Néanmoins, ce n’est pas pour autant qu’elles ne nécessitent aucune compétence de développement : elles requièrent aussi un temps d’adaptation pour les développeurs, voire d’apprendre un nouveau langage (le HTML5 pour ne nommer que lui). Seul Windev, que l’on pourrait qualifier d’exception à la française, propose un environnement de développement accessible aux grands débutants.

Cette explosion des plateformes de développement sur mobile est donc un problème épineux pour les entreprises, qui doivent faire preuve d’adaptation.

Ci-dessous se trouve un rapide tour d’horizon des plates-formes de développement sur mobile qui permet de constater toute l’étendue des choix offerts aux développeurs et des compétences nécessaires pour pouvoir tout maîtriser.

Xcode – iOS

Langage : Objectif-C

Xcode est un environnement de développement pour Mac OS X. Il est fourni avec une suite logicielle complète pour développeurs.

Eclipse – Android

Langage : Java

Eclipse est un environnement de développement en Open-Source dont la suite logicielle est particulièrement fournie.

Netbeans – Android

Langage : Java

À l’instar d’Eclipse, Netbeans est un IDE utilisant le Java. Un pack « Netbeans Mobile » est disponible, donnant accès à une suite logicielle complète pour pouvoir développer sous Android.

Silverlight et XNA – Windows Phone

Silverlight

Proposé comme une alternative au flash, Silverlight est un plug-in multi-plateforme pour navigateur Web. Il fonctionne de façon similaire à son concurrent direct Adobe Flash.

XNA

XNA est un environnement de développement utilisé principalement pour développer des jeux sur Windows Phone.

Blackberry

Langage : Java

BlackBerry Java Development Environment (développement sur mobile) :

BlackBerry Java Development Environment est une suite logicielle incluant des outils de modification et de débugage. BlackBerry Java Development Environment inclut des outils pour pouvoir développer sur des environnements tiers comme NetBeans ou Eclipse.

Blackberry WebWorks (développement sur tablette) :

Pour pouvoir développer sur son système d’exploitation Blackberry Tablet OS équipant ses tablettes tactiles (les tablettes PlayBook), Research in Motion amis en place un IDE dédié intitulé Blackberry WebWorks. Celui-ci permet développer des Web Apps entièrement en HTML5 et JavaScript capables d’interagir avec les fonctionnalités des tablettes Blackberry.

Symbian^3 – Symbian (Nokia)

Symbian^3 est un IDE en open source utilisant des technologies Web comme le HTML, le CSS ou le JavaScript. C’est aussi une suite logicielle complète comprenant de coutils de débugage et de déploiement.

Les IDE multiplateformes

Windev mobile – Windows Phone, Android, iOS
Langage = Wlangage (dérivé du C++ et de Pascal)
Créé par la société française PC Soft, Windev mobile est un atelier de logiciel complet orienté vers la gestion de bases de données embarquées. Cet IDE est pensé pour être accessible aux débutants.

Les IDE basés sur HTML5 (PhoneGap, NS Basic, RedFoundry…)
Ces frameworks multi-plateformes se basent sur des technologies web, en particulier le HTML5. La partie native de l’application est donc très simple ; elle n’utilise qu’un simple composant natif, à savoir une WebView (une instance du navigateur). Les applications réalisées dans ces IDE souffrent des défauts inhérents aux Web Apps : problèmes de stabilité, interfaces lourdes et animations saccadées.

Les IDE basés sur l’User Interface native (Titanium, Rhomobile, Corona…)
Ces IDE se rapprochent davantage du développement natif de par l’utilisation du kit de développement natif de chaque OS. La gestion de l’interface est la même que celle utilisée pour le développement en langage natif, sauf qu’ils sont manipulés via un unique langage pour toutes les plateformes.
L’intérêt est de diminuer les temps de développement par rapport au développement en langage natif : la majeure partie du code peut être réutilisée d’une plateforme à l’autre.

Face à cette multitude de plateformes, comment choisir ?

Que vous travailliez en interne ou en régie, la réponse est délicate. Le choix de l’environnement de développement ne doit pas être arrêté et doit être en adéquation avec la nature même du projet. Le multi-plateforme trouve en effet vite ses limites, et pour un projet lourd ou complexe, le natif restera à privilégier.

Ainsi, il est nécessaire de se constituer une équipe polyvalente sachant s’adapter à des projets de toute nature. Néanmoins, les profils de développeur sachant maîtriser le natif et le crossplatform sont rares sur le marché de l’emploi. La régie peut être une solution, mais reste relativement coûteuse et peu viable pour des projets de long terme.

En conclusion, il est nécessaire pour une entreprise d’analyser avec finesse ses besoins en développement sur le court, moyen et long terme avant d’envisager de se placer sur un environnement précis. Un environnement en crossplatform sera utile pour des projets d’applications « grand public » où toucher toutes les plates-formes est nécessaire pour pouvoir assurer la rentabilité. En revanche, le natif restera à privilégier sur des projets plus lourds (type ERP/CRM).

Un travail conséquent en amont est donc nécessaire, sous peine de multiplier sensiblement les coûts de développement.

Glossaire :

OS : Operating System, ou système d’exploitation.

IDE : integrated development environment, ou environnement de développement intégré.

SDK : Software Development Kit, ou kit de développement à destination des programmeurs.

Multi-plateforme/crossplatform : IDE permettant de développer sur plusieurs OS différents.

Article rédigé par Guillaume Lanthier de Qualia Systèmes.

🟣 Pour ne manquer aucune news sur le Journal du Geek, abonnez-vous sur Google Actualités. Et si vous nous adorez, on a une newsletter tous les matins.

47 commentaires
  1. Petite imprécision dans votre article. l’IDE pour développer des applications sous Windows Phone est le même, c’est Visual Studio dont la dernière version 2012 est sortie il y a quelques jours.

  2. Et il va falloir arrêter de limiter le Silverlight au PLUGIN Silverlight. Tout d’abord, le Silverlight est un langage, composé du C# et du XAML, faisant tous deux parties du Framework .NET, ensuite, effectivement le plugin permet de faire tourner des applications dans un navigateur mais c’est aussi le langage natif de Windows Phone …
    C’est d’autant plus stupide de cantonner le Silverlight au Plugin parce que le plugin est MORT, Microsoft arrête de le maintenir, alors qu’aux dernières nouvelles le Silverlight sera encore bien utilisé sur Windows Phone …

  3. Il est vrai que la partie sur WIndows Phone est un peu trop limité.
    On pourrait croire que Silverlight et XNA sont des IDE alors que c’est Visual Studio l’IDE pour Windows Phone. Ce qui est marrant c’est qu’il n’est nul part écrit que le langage utilisé est C#.

    D’ailleurs, les technologies Silverligth et XNA ne seront plus utilisé pour Windows Phone 8 si je ne me trompe pas (quoique qu’un mode de compatibilité serait possible pour Silverlight mais je ne suis pas sûr).
    Ce sera soit du XAML soit le couple HTML5/CSS qui sera utilisé pour l’interface graphique.
    Côté langage de programmation, ce sera soit du C#, du VB ou du C/C++ si on utilise XAML soit Javascrit si on utilse du HTML5.
    Et bien sûr, l’IDE pour une application WIndows 8 est toujours Visual Studio.

  4. L’article n’éclaire pas énormément.. Un tableau récapitulatif avec en lignes (ou colonnes) les différents systèmes d’exploitation, et en colonnes les langages supportés et les IDE associées serait déjà un bon guide pour la suite de l’article qui peut ensuite partir dans les explications.

  5. Heu… Je sais que Apple a presque réussi sa croisade conter Adobe Flash…
    Mais vous oubliez l’un des plus gros Framework multiplateforme : Flash.

  6. @Hexagone: je ne connais pas d’entreprise sérieuse qui se lancerait dans le dev en flash pour des outils internes… Surtout point de vue sécurité ya mieux!!

  7. Pour moi, ce sera Windev Mobile
    Ca fait déjà pas mal d’années que je bosse avec windev et windev mobile et je ne suis pas déçu du résultat
    Certe, c’est pas gratuit ( il y a une express gratuite mais je n’ai pas essayé) mais le temps de dev est incomparable pour faire des applis pro !

  8. Pourquoi choisir? Le HTML5, CSS3 et JavaScript sont des langages d’avenir. Ils sont cross-plateforme puisqu’ils sont le standard du web.

  9. Il manque Flash CS6 qui permet de faire des applications AIR pour IOS et pour Android (Et pour IOS c’est a ma connaissance le seul moyen de dev une appli IOS en étant sous windows)

  10. @Hexagone : Adobe a acheté phonegap, ce qui ajoute encore un peu de confusion sur le choix de flash vs phonegap.

    @Orfeo34 : c’est vrai que ces langages ont de l’avenir, mais il reste encore plusieurs points noirs :

    – les normes ne sont pas encore terminées, ni implémentées, ce qui rend le développement particulièrement difficile : le code doit souvent être adapté à chaque navigateur et à plusieurs résolutions et formats d’écrans différents (4/3, 16/9,le format spécifique de l’iphone…), sans compter les différences de DPI . Du coup, on écrit une grand partie du code plusieurs fois pour l’adapter à chacun des cas possibles, ce n’est plus vraiment cross platforme…
    – Les smartphones les plus anciens (et certains d’entrée de gamme pas si vieux) n’ont qu’un seul coeur, pas forcément très puissant, ce qui est un sacré handicap : le navigateur doit effectuer en même temps les téléchargements d’images, les calculs javascript et les modifications du HTML qui en découlent, sans la vitesse d’exécution des langages natifs. Pour des applications un peu complexes, ça devient vite lent, voire tellement consommateur de mémoire que la page ou le navigateur plantent…

    Donc pour l’instant, les technos natives ont une vraie longueur d’avance…

  11. Qui a mis des moins à mon commentaire ? On manque de devs sur Windows Phone et vous vous préférez rester sur deux plateformes sur exploitées.
    Sur Windows Phone, c’est maintenant qu’on peut se faire des sous et avoir de la visibilité, pas dans 6 mois !

  12. Mieux que les articles sponsorisés, là c’est carrément une entreprise qui fait sa pub.
    En tous cas, c’est un article de bien piètre qualité, plein d’inexactitudes et d’approximations.
    Cher journal du geek, quand tu laisses d’autres gens écrire des articles à ta place, trouve quelqu’un qui maîtrise son sujet.
    (pro tip : si ça parle de Windev, c’est mauvais signe)

  13. @Xzoky : je serais intéressé de savoir pourquoi, si ça parle de Windev, c’est mauvais signe selon toi. Tu as eu une mauvaise expérience avec ? Perso, je bosse avec depuis plus de 10 ans et je trouve ça génial.
    Perso, ça me fais rire (jaune) d’entendre des Windev, c’est pour les petits projets (j’ai quelques référence qui prouve le contraire), c’est lent car c’est de l’interpreté (lol: c’est du bytecode comme java ou .net pour windows/linux, du bytecode dalvik pour android, du bytecode .net pour windows phone et du natif pour iPhone), ce n’est pas un vrai langage (dans ce cas, delphi, ruby, python, c# non plus) et bien d’autres choses que beaucoup de dev blouse blanche ou de jeune sortant de l’ecole debinne sans même avoir vu a quoi ca ressemble.
    Bon, j’avoue, quand je suis sorti de l’école, je pensais la même chose (java, c++ ok, le reste, c’est de la merde) mais j’ai vite compris.
    Je suis donc curieux de savoir pourquoi, concretement, c’est si mauvais signe…
    (Oui, il y a des fanboys pour windev aussi, mais avec l’esprit plus ouvert)

  14. Par contre, je vois rejoint sur la pietre qualité de l’article : Objectif-C, silverlight, etc…
    Ca sent la rédaction commerciale a plein nez. J’espère seulement que la publication n’a pas été gratuite, sinon, je vais vite faire ma pub aussi…

  15. Moi, c’est CORONA SDK (langage LUA) car je viens de l’AS et l’adaptation s’est faite en même pas une journée !

  16. Je crois que l’avenir n’est pas à l’environnement d’accueil, mais plutôt à un environnement de développement unique et qui permette de générer l’application pour tous les supports. J’ai découvert CodeName One, qui à partir d’une programmation Java permet de faire des applications aussi bien pour iOS que Androïd.

  17. Développer sous Visual Studio est un vrai bonheur. J’ai commencé en XNA/C# pour des petits jeux. Puis je suis passé au Silverlight/XAML pour un agrégateur d’info (de la ville de Nantes). En 2 heures, j’ai une superbe appli “metro” – terme obsolète, je sais 🙂

    A l’époque d’Android 1.5, j’avais installé Eclipse et les plugins qui vont bien. Ca planté de partout, l’émulateur était catastrophique (mais je suppose que ça a changé !)

  18. Cet article est incomplet, effectivement il manque la techno AIR d’Adobe qui est à sa version 3.4 et déploies sur IOS, Ansroid et BlackBerry. L’IDE flash CS6, Flash builder, flex ou l’excellent DFT sous Eclipce. Parfois cette techno peut être le meilleur choix en terme de fidélité du portage vers les différentes plateforme, en coût et surtout en temps. Et maintenant grâce au Adobe Native Extention (ANE) on peut accéder à presque toute les fonctionnalités native (notifications etc…) qui manquaient autrefois. Et puis pour finir le résultat ers super fluide l’orsque qu’on code correctement.

  19. Bonjour,

    Merci pour vos commentaires et vos réactions.

    Je tiens à souligner que l’article étant orienté vers les entreprises voulant découvrir le marché (cf. catégorie Business), il ne se veut ni technique ni encyclopédique.
    Par ailleurs, l’orientation de son contenu est clairement assumée, car correspondant à la réalité du marché (le développement sur iOS et Android constituant 95% de la demande).
    Enfin, il ne s’agit pas d’un article publicitaire (aucune promotion pour que que ce soit n’y ait faite), mais d’une tribune hebdomadaire obtenue par un partenariat entre JDG et Qualia Systèmes.

    Dans cette optique, n’hésitez pas à m’indiquer des sujets d’article qui vous sembleraient intéressants afin que je puisse continuer à alimenter cette tribune.

    Bien à vous,

    Guillaume Lanthier (rédacteur QS)

  20. “À l’instar d’Eclipse, Netbeans est un IDE utilisant le Java.”
    Je comprends pas trop bien cette phrase(Eclipse n’utilise donc pas le java ? Première nouvelle)
    C’est pas plutôt :
    Netbeans respecte la philosophie Java avec une IHM construite en SWING sans aucune dépendance système (alors qu’Eclipse, via SWT, a des dépendances systèmes).

  21. A l’instar, ça ne veut pas dire “au contraire”, mais “comme”……….
    Avant d’apprendre des langages de programmation, tu aurais mieux fais commencer par le français….

  22. @samshay
    « À l’instar d’Eclipse, Netbeans est un IDE utilisant le Java. »
    Je comprends pas trop bien cette phrase(Eclipse n’utilise donc pas le java ? Première nouvelle)

    Je comprends plus rien là. La phrase dit justement qu’Eclipse utilise le java.

  23. Salut,

    Moi j’utilise MarmaladeSDK qui permet de faire du Cross développement pour : IOS,Android,PC,Mac,Symbian,bada….

    On développe sous PC en C++ sous Visual ( presque plus besoin de mac pour développer sous Ios.!!!..) ou sous Mac avec Xcode.

    J’ai développé un jeux distribué pour ios et Android : A voir Ici :http://itunes.apple.com/us/app/scubadiver/id507451190 ou https://play.google.com/store/apps/details?id=com.bitblitgames.scubadiver

    Ce SDK a été utilisé entre autre pour Pes11, Lara Croft and the Guardian of Light ,…ect…

    Pour en savoir + ( essai du sdk gratuit pendant 3 mois…) c’est ici : http://www.madewithmarmalade.com/

    Bon codding

    Chicou

  24. +1 ou-jedi

    Flash Builder / Flash CS6 / Flash Developp sont des outils très puissant pour développer des applications natives basées sur l’actionscript 3 pour IOS / Android et Black Berry, que se soit pour tablette, mobile, ou desktop (dont le prochain Windows 8).
    La techno Flash / Flex et les outils proposés autour sont clairement orientés pour les RIA et les jeux vdiéos multi plateforme, multi devices. Et ne parlons pas de la productivité et de la compliance de cette techno, encore loin devant l’HTML5…
    Oublier ces IDE (et la techno Flash), c’est comme oublier de parler de Eclipse comme IDE…

  25. L’IDE IntelliJ est selon moi le meilleur IDE pour développer sous Android. L’intégration d’Android est très poussée avec l’intégration des outils comme DDMS / AVD Manager / SDK Manager … etc. De plus, il est beaucoup plus rapide qu’Eclipse (qui est une vraie charrette à côté) et la complétion ne se limite pas aux méthodes, attributs et classes dans un fichier JAVA elle est possible dans les fichier xml, pour les ressources et bien d’autres choses.

    L’essayer c’est l’adopter. 🙂

    Bonne journée à tous

    Addendum : Pour ceux qui veulent se lancer dans le développement Android je conseille un tour sur les sites suivants (compréhension de la langue anglaise de rigueur – mais ça reste de l’anglais simple et sous technique) :
    * http://developer.android.com/guide/components/index.html et http://developer.android.com/training/index.html qui sont deux parties de la doc Android avec tout un tas de bonnes pratiques et guides.
    * http://developer.android.com/design/index.html site dédié au design sous Android qui explique la philosophie derrière la plateforme Android et comment bien réaliser une appli ergonomique et design.
    * http://android.cyrilmottier.com/ superbe blog d’un frenchie qui explique tout un tas d’astuces et de bonnes pratiques.

  26. Heu depuis quand Symbian^3 est un IDE? Sérieux c est quoi cet article écrit avec les pieds? Symbian est un OS, qui est appelé Nokia Belle et plus Symbian^3 au passage, et l’IDE est Qt qui lui est multiplateforme (Symbian/Nokia Belle/Maemo/Meego)
    Concernant Windows Phone c’est pareil, il manque la moitié des choses.. mais tout est marquer si dessus.. les autres je ne connais pas pour en parler mais je suppose que c est pareil.

    Vraiment dessus par cet article très incomplet et erroné!

  27. L’IDE IntelliJ est selon moi le meilleur IDE pour développer sous Android et malheureusement l’article n’en parle pas. Pourtant l’intégration d’Android est très poussée avec des outils comme DDMS / AVD Manager / SDK Manager … etc qui sont directement accessibles depuis l’IDE. De plus, il est beaucoup plus rapide qu’Eclipse (qui est une vraie charrette à côté) et la complétion ne se limite pas aux méthodes, attributs et classes dans un fichier JAVA elle est possible dans les fichier xml, pour les ressources et bien d’autres choses.

    L’essayer c’est l’adopter. 🙂

    Bonne journée à tous

    Addendum : Pour ceux qui veulent se lancer dans le développement Android je conseille un tour sur les sites suivants (compréhension de la langue anglaise de rigueur – mais ça reste de l’anglais simple et sous technique) :
    * http://developer.android.com/guide/components/index.html et http://developer.android.com/training/index.html qui sont deux parties de la doc Android avec tout un tas de bonnes pratiques et guides.
    * http://developer.android.com/design/index.html site dédié au design sous Android qui explique la philosophie derrière la plateforme Android et comment bien réaliser une appli ergonomique et design.
    * http://android.cyrilmottier.com/ superbe blog d’un frenchie qui explique tout un tas d’astuces et de bonnes pratiques.

  28. machinarium, songpop (et beaucoup d autres) : Adobe Air.

    Mr Lanthier, une petite mise à jour de l’article ? En l’état, il donne de sérieux doutes sur la qualité de l’expertise de Qualia Systèmes…

  29. Quitte à être complet, je conseille à ceux qui ne connaissent pas de faire un tour du côté du langage Haxe. C’est 100% libre, et le projet date de 2004 donc bien avant tous les projets multiplateformes si révolutionnaires! Et c’est un français qui en est à l’origine. 😉

    http://haxe.org/

  30. @mth: la completion adns les fichiers xml fonctionne aussi très bien avec Eclipse.
    Je dev avec un PC qui a maintenant 4+ ans sous Ubuntu + Eclipse et mon IDE est ultra réactif 😉

  31. @devwindev je n’ai rien contre Windev, je ne connais pas cette technologie, donc je ne peux pas critiquer.
    Je n’aime pas les applications cross-platform car elles bafouent souvent les convention d’interface spécifiques à chaque plateforme, et proposent donc une expérience utilisateur de moindre qualité selon moi.
    L’article présente des solutions en ne parlant que de délais, de coûts de développement, de rentabilité. Et la qualité des applications ? Les interfaces soignées ? La continuité de l’expérience utilisateur ?
    Mais non. Faites du Windev, c’est pas cher, c’est vite fait, c’est cross-platform, c’est made in France, cocorico.
    Ce n’est pas la technologie qui m’énerve, c’est cet état d’esprit.

  32. “Mr Lanthier, une petite mise à jour de l’article ? En l’état, il donne de sérieux doutes sur la qualité de l’expertise de Qualia Systèmes…”
    +1 🙂

    “Je n’aime pas les applications cross-platform car elles bafouent souvent les convention d’interface spécifiques à chaque plateforme, et proposent donc une expérience utilisateur de moindre qualité selon moi.”
    Jetez un oeil à NeoMAD (http://neomades.com): à partir d’un code source Java unique, NeoMAD produit des projets “natifs” en transcompilant le code source, puis utilise les outils de chaque plateforme pour compiler l’application. En sortie, on obtient donc une application native pour chaque terminal, n’utilisant que des composants des API natives et respectant de ce fait les conventions spécifiques. Il est impossible de distinguer une application développée une fois en Java avec NeoMAD d’une application développée n fois pour chaque plateforme. Quand délais, coûts de développement, rentabilité et made in France (cocorico) riment avec qualité des applications, interfaces soignées et continuité de l’expérience utilisateur ! 😉

  33. @wat: “Mr Lanthier, une petite mise à jour de l’article ? En l’état, il donne de sérieux doutes sur la qualité de l’expertise de Qualia Systèmes…”
    +1 🙂

    @Xzoky: “Je n’aime pas les applications cross-platform car elles bafouent souvent les convention d’interface spécifiques à chaque plateforme, et proposent donc une expérience utilisateur de moindre qualité selon moi.”
    Jetez donc un oeil à NeoMAD (http://neomades.com). A partir d’un code source Java unique, NeoMAD produit des projets natifs pour chaque plateforme en transcompilant le code si nécessaire, puis utilise les outils propres à chaque plateforme pour générer l’application. Une application produite avec NeoMAD n’utilise donc que des composants natifs de chaque plateforme et est impossible à distinguer d’une application développée n fois pour couvrir toutes les plateformes à la main.
    Quand délais, coûts de développement, rentabilité et made in France (cocorico) riment avec qualité des applications, interfaces soignées et continuité de l’expérience utilisateur! 😉

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *