Faites votre choix
Si vous voulez développer des applications Android, cela commence par le choix d'un langage. Les différences entre les différents langages de programmation Android peuvent être un peu complexes et nuancées. Choisir avec lequel commencer nécessite une compréhension des forces et des faiblesses individuelles, donc je ne veux pas vous court-circuiter.
Mais je ne veux pas non plus vous ennuyer à mourir et, dans cet esprit, vous trouverez une brève décomposition de chaque option de langage ici, suivie d'informations plus détaillées ci-dessous. Choisissez celui qui vous semble intéressant et sautez-y.
Les langages que vous pourriez envisager d'apprendre pour le développement Android comprennent :
- Java - Java est le langage officiel du développement Android et est pris en charge par Android Studio. Il a cependant une courbe d'apprentissage abrupte.
- Kotlin - Kotlin a été récemment introduit comme un langage Java " officiel " secondaire. Il est similaire à Java à bien des égards, mais il est un peu plus facile à prendre en main.
- C/C++ - Android Studio prend également en charge C++ avec l'utilisation du Java NDK. Cela permet de coder des applications en mode natif, ce qui peut être pratique pour des choses comme les jeux. C++ est encore plus compliqué cependant.
- C# - C# est une alternative légèrement plus conviviale pour les débutants que C ou C++ qui obfusque plus de code. Il est pris en charge par des outils très pratiques comme Unity et Xamarin qui sont parfaits pour le développement de jeux et pour le développement multiplateforme.
- BASIC - Une option bonus est d'apprendre le BASIC et d'essayer l'IDE B4A de Anywhere Software. C'est un outil facile mais puissant, bien que définitivement beaucoup plus " niche " !
- Corona/LUA - Un autre outil multiplateforme construit sur LUA. Il simplifie massivement le processus de création d'applications et vous permet d'appeler des bibliothèques natives.
- PhoneGap (HTML, CSS, JavaScript) - Si vous savez déjà comment construire des pages web interactives, alors vous pouvez utiliser ces connaissances avec PhoneGap pour construire une application multiplateforme plus basique.
Java
Quand il est temps de développer des applications Android, la première option et la plus populaire est Java. Java est le langage officiel du développement Android, ce qui signifie que c'est celui qui a le plus de soutien de la part de Google et celui avec lequel la plupart des applications sur le Play Store sont construites.
La façon numéro un de développer des applications Android, est d'aller de l'avant et de télécharger Android Studio. Il s'agit d'un logiciel appelé " IDE " ou " environnement de développement intégré ". Il sera livré emballé avec le SDK Android (un ensemble d'outils pour faciliter le développement Android spécifiquement) et fondamentalement, cela vous donnera tout ce dont vous avez besoin en un seul endroit pour être opérationnel.
Les tutoriels officiels et la documentation de Google feront référence à cette méthode et vous trouverez le plus grand nombre de bibliothèques (code gratuit pour améliorer vos propres applications) et de tutoriels qui se concentrent sur cette méthode.
Java lui-même a été publié par Sun Microsystems en 1995 et est utilisé pour un large éventail d'applications de programmation. Le code Java est exécuté par une " machine virtuelle " qui fonctionne sur les appareils Android et interprète le code.
Malheureusement, Java est aussi un peu compliqué et ce n'est pas un excellent " premier langage ". C'est ce qui constituera la plus grande barrière pour de nombreuses personnes qui veulent se lancer dans le développement Android, en fait. Android est un langage de programmation orienté objet avec des sujets confus comme les constructeurs, les exceptions de pointeur nul, les exceptions vérifiées et plus encore. Il n'est pas terriblement lisible et vous utiliserez beaucoup de code "passe-partout" pour faire des choses simples. Si l'on ajoute le SDK Java, les choses se compliquent encore : un codeur débutant peut avoir du mal à savoir ce qu'est Java et ce qu'est Android ! Le développement utilisant cette voie nécessite également une compréhension de base de concepts comme Gradle, comme le manifeste Android et le langage de balisage XML.
Ceci ne veut pas dire que Java est un mauvais langage - loin de là. Non seulement il serait faux de qualifier n'importe quel langage de "mauvais", mais il est également vrai que la plupart des "inconvénients" de Java sont en fait là pour notre bien et encouragent le code propre. Beaucoup de gens aiment Java pour cette raison et c'est aussi l'un des langages les plus polyvalents et les plus utilisés. Selon le tableau PYPL (PopularitY of Programming Languages), Java est le langage de programmation le plus recherché par les employeurs.
Pour se simplifier la vie, il y a Android Studio, qui n'a cessé de se renforcer ces dernières années. Des fonctionnalités telles qu'un concepteur visuel et des suggestions rendent le processus assez fluide, tandis que des fonctionnalités avancées et puissantes sont ajoutées en permanence pour permettre aux développeurs d'accéder à des choses comme le stockage dans le cloud avec une mise en œuvre facile. Cela vaut la peine de monter à bord, même si ces progrès rapides font qu'il est parfois difficile de suivre le rythme.
Alors, quel est le verdict ? Pour ceux qui veulent l'expérience " complète " du développement Android, se plonger dans Java est le meilleur endroit pour commencer. Pour ceux qui sont rebutés par un code complexe, il est possible de travailler en grande partie avec le concepteur et de suivre des tutoriels pour tout ce qui est plus compliqué. Si vous êtes un débutant et que vous cherchez à faire un jeu cependant, ou si vous voulez juste commencer à apprendre pour le plaisir d'apprendre et que vous aimeriez faire décoller quelques projets gratifiants ; alors je vous recommande de commencer par quelque chose de plus facile et de revenir à cela une fois que vous aurez un peu plus de bases.
Voyez l'introduction à Java de Gary ici.
Note:
Cela dit, il est également possible d'utiliser Java avec Unity. J'aborderai Unity dans la section consacrée à C# - mais notez simplement que vous pourriez opter pour le langage Java, légèrement plus compliqué, lorsque vous empruntez cette voie et l'utiliser ensuite pour passer plus facilement au développement avec Android Studio.
Kotlin
Kotlin a récemment fait irruption sur la scène en tant qu'" autre " langage officiel pour le développement Android. Certaines spéculations suggèrent que cela est susceptible de rehausser le profil du langage et qu'il pourrait éventuellement devenir le prochain 'Siwft'.
Comme Java, Kotlin fonctionne sur la machine virtuelle Java. Il est également totalement interopérable avec Java et n'entraîne aucun ralentissement ou augmentation de la taille des fichiers. La différence est que Kotlin nécessite moins de code " boiler plate ", ce qui signifie que c'est un système plus rationalisé et plus facile à lire. Il élimine également les erreurs telles que les exceptions de point nul et vous dispense même de terminer chaque ligne par un point-virgule. En bref, c'est génial si vous apprenez à développer des applications Android pour la première fois.
Donc, Kotlin est définitivement un point de départ plus facile pour les débutants et le fait que vous puissiez toujours utiliser Android Studio est un gros plus. Cependant, il n'est pas encore aussi simple à prendre en main que C# avec Unity, par exemple, et le soutien de la communauté en est encore à ses débuts. En fait, vous devez actuellement télécharger une version bêta d'Android Studio afin d'obtenir le support out-the-box.
Pour autant, Kotlin devrait définitivement être sur votre radar et pourrait offrir un point d'entrée plus facile au développement Android "proprement dit". Ce qui est probablement la raison pour laquelle Google l'a introduit en premier lieu.
Apprenez pourquoi vous devriez essayer Kotlin ici.
C/C++
Il est juste de dire que la plupart des gens qui lisent ceci ne devraient pas choisir cette voie pour développer des applications Android. Android Studio offre un support pour le code C/C++ en utilisant le NDK (Native Development Kit) d'Android. Cela signifie que vous écrirez du code qui ne s'exécute pas sur la machine virtuelle Java, mais qui s'exécute en mode natif sur l'appareil et vous donne plus de contrôle sur des éléments comme la mémoire. Pour les applications intensives comme les jeux en 3D, cela peut vous permettre de tirer des performances supplémentaires d'un appareil Android. Cela signifie également que vous pourrez utiliser des bibliothèques écrites en C ou C++.
Cependant, cela tend également à être beaucoup plus difficile à mettre en place, cela introduit plus de bugs et c'est moins flexible. Et si vous vouliez effectivement créer un jeu vidéo, vous feriez probablement mieux d'utiliser un moteur de jeu prêt à l'emploi
C#
C# est essentiellement une version plus facile et purement orientée objet de C et C++ développée par Microsoft. Il visait à apporter la puissance du C++ et la facilité de Visual Basic et se lit un peu comme une version simplifiée de Java. Comme Java, C# est doté d'un système de collecte des données, ce qui signifie que vous n'avez pas à vous soucier de fuites de mémoire ni à libérer de la mémoire vous-même. Dans le même temps, C# est plus moderne que Java avec une syntaxe plus propre - mais il se peut que ce ne soit que mon propre parti pris. Le meilleur langage pour développer des applications Android se résume souvent à une question de goût.
Si vous voulez une introduction particulièrement facile et accueillante au développement d'applications Android cependant, alors je recommande la combinaison de C# et Unity. Unity est un " moteur de jeu " (ce qui signifie qu'il fournit des choses comme les calculs physiques et le rendu graphique 3D) et un IDE comme Android Studio. Il s'agit d'un outil gratuit qui rend incroyablement facile la création de vos propres jeux - avec quelques lignes de code, vous pouvez avoir un jeu de plateforme de base mis en place en moins d'une heure. Sans exagérer. Et il est parfaitement performant, puisqu'il s'agit de l'outil utilisé par la plupart des studios de jeux sur le Google Play Store. Et il est également multiplateforme. En plus de tout cela, développer de cette manière offre un moyen très pratique d'apprendre le codage orienté objet (car les objets dans ce cas sont réellement des objets la plupart du temps).
La limitation ? Unity est utile pour créer des jeux, mais sous-par pour créer des applications Android standard, surtout si vous voulez vous conformer au langage Material Design de Google. Si vous voulez devenir un développeur Android professionnel, alors cette voie non standard limitera vos possibilités d'emploi - à moins que votre objectif soit de devenir un développeur de jeux, auquel cas il s'agit d'une formation parfaitement pertinente et professionnelle.
Vous n'aimez pas Unity ? Alors vous pouvez envisager Unreal à la place (meilleurs graphismes, moins adaptés au mobile) ou des game-makers simplifiés comme GameMaker Studio.
C# peut également être utilisé avec Xamarin via Visual Studio. Cela s'apparente davantage au développement Android traditionnel avec l'avantage d'être multiplateforme (une seule base de code pour Android et iOS). Pour un débutant complet, cette voie est encore une fois un point d'entrée légèrement obtus au développement Android - mais pour une petite entreprise qui veut créer une application pour iOS et Android, cela a du sens et il y a beaucoup de soutien et d'informations pour vous aider.
BASIC
Rappelez-vous comment j'ai dit que C# était une tentative d'offrir la puissance de C avec la facilité de Visual BASIC ? Eh bien c'est parce que BASIC (Beginners All-Purpose Symbolic Instruction Code) est incroyablement agréable à utiliser et un point de départ absolument idéal pour apprendre à coder.
Malheureusement, il n'est pas officiellement pris en charge par Android Studio et vous ne pouvez pas non plus l'utiliser dans Unity ou Xamarin. La bonne nouvelle est qu'il existe une option moins connue pour développer des applications Android en BASIC, appelée "B4A" par Anywhere Software. Il s'agit d'un acronyme pour "BASIC 4 Android" et, comme vous pouvez vous y attendre, il vous permet de coder des applications Android en BASIC. Ce n'est certainement pas le premier choix pour la plupart des programmeurs qui veulent développer des applications Android, mais c'est toujours bien d'avoir plus d'options.
B4A est conçu comme un environnement 'RAD' ou Rapid Application Development. Il y a beaucoup d'autres décisions de conception intelligentes pour faciliter la vie et il y a une communauté très favorable si vous avez des questions.
C'est une excellente façon d'apprendre à coder à mon avis personnel et vous pouvez construire des applications assez puissantes en utilisant cette seule méthode. Ce n'est cependant pas idéal pour créer des jeux plus haut de gamme et souffre une fois de plus d'être une option " non officielle " - il est donc plus difficile de créer quelque chose qui réponde exactement aux spécifications du Material Design et vous aurez plus de mal à travailler en tant que développeur professionnel avec seulement BASIC. L'autre gros inconvénient est que c'est la seule option de la liste qui n'est pas gratuite pour s'y mettre.
Corona
Corona offre une autre option considérablement plus simple pour développer des applications Android tout en vous donnant une bonne dose de puissance et de contrôle. Vous coderez en LUA, ce qui est déjà beaucoup plus simple que Java et, en plus de cela, le Corona SDK (Software Development Kit) vous facilitera encore plus les choses. Il prend en charge toutes les bibliothèques natives et vous permet de publier sur plusieurs plateformes. Il est largement utilisé pour la création de jeux, mais peut aussi être utilisé de diverses autres manières. Vous devrez utiliser un éditeur de texte comme Notepad++ pour saisir votre code et vous pouvez exécuter ledit code sur un émulateur sans même avoir besoin de le compiler au préalable. Lorsque vous serez prêt à créer un APK et à le déployer, vous pourrez le faire à l'aide d'un outil en ligne.
Cela nécessite des compétences de base en codage, mais cela offre une introduction agréable et douce au monde de la programmation. Dans le même temps cependant, il est définitivement limité dans une certaine mesure et est à quelques pas d'entrer dans le territoire des " constructeurs d'applications ". Il est plus utile pour quelqu'un qui veut créer quelque chose de relativement simple et qui n'a pas envie de développer ses compétences en codage ou de devenir un pro. Si vous souhaitez utiliser des fonctionnalités telles que les achats in-app, vous devrez payer des frais. Il en va de même pour l'utilisation des API Android natives.
PhoneGap
Enfin, la dernière grande option " simplifiée " vers laquelle vous pouvez vous tourner pour développer des applications Android est PhoneGap, à moins que vous ne souhaitiez plutôt vous tourner vers un programme de " construction d'applications ". PhoneGap est alimenté par Apache Cordova et vous permet essentiellement de créer des apps en utilisant le même code que vous utiliseriez normalement pour créer un site web : HTML, CSS et JavaScript. L'application est ensuite affichée dans une "WebView", mais elle est présentée comme une application. PhoneGap agit alors comme un pont, permettant aux développeurs d'accéder à certaines fonctionnalités natives de base du téléphone ou de la tablette - comme l'accéléromètre ou l'appareil photo.
Il ne s'agit cependant pas vraiment d'un " vrai " développement Android et la seule véritable programmation sera JavaScript. Pour de nombreuses tâches de base, il fera l'affaire, mais si vous voulez pouvoir prétendre à un véritable " développement d'applications Android " (ça existe), alors vous devriez braver l'un des autres choix de cette liste.
Les logiciels de développement d'applications Android sont des outils de pointe.