Développement mobile : les bons outils pour débuter

Tous les férus de programmation le savent : que l’on soit orienté web, mobile ou plutôt desktop, il n’est jamais facile de décider quel langage, framework ou outil choisir quand vient le moment de se lancer. Leur apprentissage est chronophage. On arpente donc la toile pendant des heures à la recherche de « l’outil ultime » à la fois « future-proof » et parfaitement adapté à nos besoins. Voici un rapide tour d’horizon des possibilités pour s’initier au développement mobile.

développement mobile : menu d'un smartphone android

Applications natives, web et hybrides

Avant de se lancer à corps perdu dans le développement à proprement parler, il est nécessaire de savoir ce qu’il est possible de créer. Voici les trois principaux types d’applications mobiles présents sur le marché :

Les applications natives

Une application native est conçue spécialement pour les appareils mobiles. Leur langage de programmation est spécifique à un système d’exploitation (Swift pour iOS, par exemple). Cela signifie, en reprenant l’exemple précédent, que si l’on souhaite faire fonctionner son application iOS sur Android, il faudra entièrement la reprogrammer en Java ou Kotlin. Les applications natives sont donc très coûteuses, mais sont les plus performantes. De plus, elles ont directement accès aux fonctionnalités relatives aux différents composants de l’appareil tels que le GPS ou l’appareil photo. On peut les utiliser hors-ligne. On les télécharge directement depuis les plateformes type Google Play ou Appstore.

Applications web

Une application web est une application mobile exécutable via le navigateur internet de votre appareil mobile, comme un site internet classique. Elle a plusieurs avantages :

  • Entièrement en HTML, CSS et JavaScript. L’apprentissage du code est donc bien moins long et coûteux que pour les applications natives.
  • Un seul code à écrire. Pas besoin de se soucier des compatibilités avec Android ou iOS. En effet, elles seront compatibles avec tous les navigateurs modernes.
  • D’autres avantages propres au web. Notamment, la facilité d’insertion de nombreux types de médias, la gestion de l’affichage sur différents types d’écrans.

L’application web n’offrira pas toutes les fonctionnalités dont sont dotées les applications natives. Par exemple l’interaction avec d’autres applications ou le contrôle direct d’un composant de l’appareil ne sera pas aussi performant. Cependant, JavaScript reste un langage très puissant. Couplé à l’un de ses nombreux frameworks comme Angular.js, il est tout à fait possible de créer d’excellentes applications qui seront puissantes, multiplateformes. Elle sont surtout faciles et rapides à développer, donc peu coûteuses.

Applications hybrides

Une application hybride est un mélange des deux premiers types d’applications. Ce sont des applications web qui disposent de fonctionnalités propres à des applications natives, comme le GPS par exemple. Elles peuvent constituer une alternative intéressante aux applications natives car moins coûteuses et téléchargeables depuis leur plateforme de téléchargement d’applications respective, mais elles restent moins performantes que les natives et d’une ergonomie pas toujours optimisée.

Les langages du développement mobile

HTML5 – JavaScript

Sans surprise, si votre choix s’est porté sur les applications web, alors HTML5 sera un choix évident. Intégrez des librairies CSS populaires telles que Bootstrap dans votre application. Profitez aussi de la grande puissance de Javascript en le couplant à des librairies comme jQuery Mobile ou des frameworks comme React Native ou Ionic 2. Vous développerez ainsi facilement et rapidement des applications peu coûteuses, puissantes et compatibles avec tous les navigateurs modernes.

Typescript

Il s’agit d’un langage open-source développé par Microsoft. Son but est de renforcer la sécurité et l’efficacité de Javascript. TypeScript est « transcompilé » en JavaScript, ce qui veut dire qu’il peut être interprété par n’importe quel navigateur web ou moteur JavaScript. Couplez ce langage à des frameworks comme Angular.js ou NativeScript pour créer de puissantes application web ou hybrides.

Swift

C’est le langage à choisir pour la programmation d’applications natives iOS. Swift a le vent en poupe et est en train de prendre petit à petit le dessus sur Objective-C, le langage de programmation principal pour iOS, bien qu’ils soient encore souvent utilisés ensemble. Swift a de nombreux avantages : il clarifie la syntaxe d’Objective-C et facilite la détection d’erreurs de programmation. Si vous aimez la pomme et ne jurez que par elle, ces deux langages sont pour vous.

Java

C’est le langage de programmation le plus utilisé de la planète. C’est aussi le langage par défaut pour le développement d’applications natives Android. La force de Java est que, contrairement à des langages plus « fermés » comme Swift, conçu pour iOS seulement, n’est pas uniquement destiné à Android. On peut l’utiliser comme code de base pour le développement de programmes qui tourneront sur presque tous les appareils possibles et imaginables. De plus, la communauté de programmeurs Java est tellement immense qu’il est presque impossible de rester bloqué sur une ligne de code : votre problème a sûrement déjà été rencontré et résolu. Java est une valeur sûre, vous ne pouvez pas vous tromper en le choisissant.

Kotlin

A l’instar de Java, Kotlin est un langage permettant le développement d’applications natives Android. Sa syntaxe est plus simple, plus propre et moins source d’erreurs que celle de Java. C’est ce qui lui vaut sa grande popularité et sa position de « langage de programmation de base d’Android » aux côtés de Java, depuis mai 2017. Associable avec Java pour des performances encore plus poussées, Kotlin est un allié indispensable si la programmation Android vous tente.

C++

Aucun article traitant de programmation ne serait complet sans quelques mots sur le langage C++. Ce langage de programmation de référence était là bien avant nos smartphones. Il  a été créé pour développer des programmes pour tous types d’objectifs et tous supports. Ce qu’il a fait à merveille. C++ n’est pas très moderne et sa syntaxe complexe en rebutera plus d’un, mais il reste une référence fiable et très puissante en matière de programmation qui vous permettra encore aujourd’hui de faire littéralement tout ce que vous voudrez.

C#

Menu de Nokia Lumia, développement du mobile sous windows phone
Menu de Nokia Lumia avec OS Windows Phone

Parce qu’Android et iOS ne sont pas les seuls sur le marché, il serait injuste de ne pas mentionner C#. C’est le langage de base pour de développement d’applications natives Windows Mobile. Sa syntaxe ressemble à celle de C++, simplifiée grâce à l’adoption de certains éléments du langage Java, rendant sa structure plus intuitive.

Quelques outils pratiques le développement mobile

Sans coder…

Vous voulez créer une application mais le code vous donne de l’urticaire ? Il existe aujourd’hui des plateformes de développement d’applications web et hybrides permettant de créer des applications sans aucune connaissance en programmation, comme Buildfire, Eachscape ou encore Gamesalad. Pour des applications simples, il peut s’agir d’une excellente alternative car peu coûteuse et très rapide à mettre en place.

Balsamiq, Moqups, et HotGloo sont d’excellents outils de création de wireframes qui vous serviront à designer vos applications.

Si vous travaillez en équipe, essayez Zeplin. Il s’agit d’un excellent outil de collaboration entre webdesigners et développeurs qui vous permettront de façonner des applications exactement telles que vous vous les imaginez.

Les gestionnaires de bibliothèques sont très pratiques pour gérer toutes vos bibliothèques de manière propre et organisée. Les plus populaires sont Cocoapods sur iOS, et le plugin Gradle pour Android Studio sur Android.

… ou coder facilement

IntelliJ IDEA est un outil pour la programmation d’applications Android. Développé par JetBrains, l’objectif est de « rendre la programmation agréable ». Et il le fait à merveille ! Et ce, notamment grâce à son assistance de programmation, sa navigation rapide, son analyse rapide d’erreurs et ses nombreuses autres fonctionnalités pratiques.

Corona Labs est un autre très bon outil de développement. Il a l’avantage de pouvoir être utilisé pour tous types de programmes et d’OS. Il est particulièrement efficace pour la création de jeux vidéo 2D.

RhoMobile est un framework basé sur le langage Ruby. On peut créer des applications natives qui seront compatibles avec un grand nombre d’OS, notamment Android, iOS, Windows Mobile, Symbian, etc.

A partir d’un seul code de base en HTML et Javascript, Cordova va créer une application multi-plateformes qui fonctionnera sur Android, iOS, Windows, Blackberry, Firefox, LG WebOS et FireOS. Cordova contient en plus des outils facilitant le processus de programmation comme PhoneGap, Ionic ou encore Onsen UI.

Appcelerator utilise le code Javascript pour générer du code natif grâce à plus de 5000 API pour Android, iOS, Blackberry, etc.

À votre tour !

Le développement mobile est un secteur passionnant et plein de possibilités. Il existe des solutions adaptées à tous les projets et à toutes les bourses, et il n’y a pas de mauvais choix. Quoi que puissent dire les puristes du code, si une plateforme de création d’application par drag and drop vous permet de créer exactement ce dont vous avez besoin à moindre coût et en quelques heures, ne vous en privez pas.

Gardez à l’esprit qu’il n’y a pas de meilleur outil que celui qui sera adapté à vos besoins.


Rédigé par Pierre Schmitt