Kotlin est un language de programmation informatique pour le development Android.
Historiquement la technologie utilisée pour le développement Android en natif est Java. Google a toujours eu des souci quant au support et à l’apport de nouvelles nouvelles versions de Java. Par conséquent un nouveau language a été pensé. Il s’agit de Kotlin.
C’est JetBrains, l’éditeur de l’environnement de développement Android Studio qui est à l’origine de Kotlin. Ce nouveau langage de programmation a été révèlé au public pour la toute première fois en 2011.
Kotlin a pour objectif la création d’applications mobiles sous les systèmes d’applications d’Android.
Lors de la conférence Google I/O 2017, le géant américain a annoncé que Kotlin devenait “officiellement” le second langage de programmation supporté sur Android après Java. Aujourd’hui de célèbres entreprises ont adopté Kotlin pour la création de leur applications mobiles comme Pinterest, Trello, Evernote ou encore Uber.
Un Sponsor Nommé Google ——— >
L’appui technologique de Google envers ce langage est à la fois un gage de qualité et de longévité.
Google a très vite adapté beaucoup de librairies au langage. La documentation officielle présente maintenant par défaut les exemples de code en Kotlin, et des développeurs influents chez eux militent et encouragent la migration de Java vers Kotlin.
L’évolution Kotlin
Les équipes de JetBrains font constamment évoluer Kotlin. Le cycle des mises à jour est régulier, les bugs éventuels sont corrigés très rapidement et de nouvelles fonctionnalités apparaissent de manière récurrente.
Un exemple parfait de cette évolution constante est la fonctionnalité des coroutines qui est passée par plusieurs phases de développement afin d’intégrer l’API stable en version 1.3.
Pourquoi utiliser Kotlin pour la création de son application mobile ?
Un code Minimaliste
La simplicité et la robustesse de Kotlin permettent aux développeur d’écrire, de comprendre et donc de débuguer facilement des applications. En règle générale, Kotlin nécessite moins d’étapes protocolaires lors de la composition du code, ce qui simplifie totalement le processus même de la réduction du code.
En + ————>
Si l’on devait citer quelques fonctionnalités : ne plus avoir besoin de mettre des points virgules à la fin de chaque instruction, la fin des null checks, l’inférence de type, étendre des classes existantes, les casts intelligents…et bien d’autres détaillées sur la page officielle Kotlin.
Le langage de programmation Kotlin permettait déjà théoriquement de créer des applications Android. ll est maintenant traité à égalité avec Java et C++. Il faut ajouter que Kotlin est prévu pour fonctionner directement sur une machine virtuelle Java. N’oublions pas de preciser qu’il peut également être compilé sous ART. Ce dernier est l’environnement d’exécution proposé sous Android. Le bonheur est de souligner sont interopérabilité avec le code Java. Kotlin ne nécessite en aucun cas de réécrire l’ensemble des applications.
Kotlin Vs Java
Nous allons voir ici quelques differences par rapport à son aîné Java, Kotlin a :
- Les fonctions venant des Object (toString,equals,..) sont apportées par le mot clef “data” devant “class” dans le fichier Kotlin.
- Le nombre de lignes de code d’un programme Kotlin est nettement plus faible qu’un même programme développé en Java.
- Le caractère optionnel des points-virgules
- la gestion de la mutabilité des variables (avec les notions de var et de val)
- l’affranchissement du NullPointerException
- le nouvel outil de contrôle de structure « when »
Toutes ces dernières représentent un atout majeur pour la production d’un code ‘safe’ ou organisé.
Un langage de programmation plus concis représentent moins d’erreurs potentielles. Il minimise donc le risque de crashs sur le long terme. Le développement des applications étant facilité, les fonctionnalités peuvent être déployées avec rapidité et efficacité.
Interopérabilité avec Java
Nous ajoutons également que l’une des fonctionnalités “phare” de Kotlin est son interopérabilité “totale” avec Java. Effectivement, un code Java Android peut être invoqué à partir de Kotlin de même qu’un code Kotlin peut l’être à partir de Java.
De plus, un projet Android peut inclure à la fois des fichiers Java et Kotlin. Il est d’ailleurs possible de convertir les fichiers Java existants en Kotlin.
Les deux plateformes, Kotlin et Java, identifient chacune de leurs classes, ce qui permet un échange facilité et une compatibilité transparente.
Type | dit | statique
Kotlin est un langage de programmation à typage statique. Cela signifie que le type de chaque variable et expression est connu au moment de la compilation.
L’avantage du typage statique est que le compilateur peut valider les appels de méthodes et l’accès aux propriétés sur les objets lors de la compilation, et éviter ainsi de nombreux bugs anodins qui risqueraient autrement de se produire au moment de l’exécution.
Bien que Kotlin soit un langage à typage statique, il n’est pas nécessaire de spécifier explicitement le type de chaque variable que vous déclarez.
La plupart du temps, Kotlin peut déduire le type d’une variable à partir de l’expression d’initialisation ou du contexte environnant. Ceci est appelé inférence de type. Nous reviendrons plus tard sur cette notion.
Language sécurisé
Kotlin est sécurisé. Il évite les exceptions ‘NullPointerExceptions‘ les plus redoutées et gênantes en prenant en charge la nullabilité dans le cadre de son système de types.
Une syntaxe explicite
Kotlin est explicite. Il fera ou permettra des choses seulement si vous lui dites de le faire. L’explicite est un attribut positive en programmation. Être explicite est synonyme de précision quant aux choix des concepts et garder une transparence totale de son code face aux lecteurs et/ou aux utilisateurs.
Voici quelques exemples d’explicites à Kotlin :
- Kotlin n’autorise pas les conversions de types implicites. Par exemple, int en long ou float pour double. Il fournit des méthodes comme toLong() et toDouble() pour le faire explicitement.
- Toutes les classes de Kotlin sont finales et definitives par défaut. Afin d’établir un heritage d’une classe à une autre, il est d’usage de marquer explicitement une classe comme étant ouverte. Toutes les propriétés et fonctions, membres d’une classe, sont également finales par défaut. Vous devez explicitement marquer une fonction ou une propriété comme étant ouverte pour permettre aux classes enfant de la remplacer.
- Toute substitution ou conversion d’une fonction ou une propriété de classe ‘parent’ nécessite une annotation explicite par l’intermédiaire du modificateur override.
Un language abordable
Kotlin est facile d’usage et d’apprentissage. Les bases de sa syntaxe ressemble beaucoup à Java. Si vous avez des bases de Java ou de tout autre langage orienté objets, vous pourrez vous apprehender Kotlin en deux à trois heures maximum.
Une programmation fonctionnelle
Kotlin possède à la fois des fonctionnalités fonctionnelles et orientées objet. Il dispose d’un riche ensemble de fonctionnalités permettant de prendre en charge la programmation fonctionnelle, notamment les types fonctionnels, les expressions lambda, les classes de données, etc.
Armé jusqu’au dents
Kotlin dispose d’une excellente plateforme d’outils. N’importe quel IDE cree pour Java est : IntelliJ IDEA, Eclipse, et Android Studio.
De plus, vous pouvez également télécharger le compilateur autonome de Kotlin et exécuter le code Kotlin à partir de la ligne de commande.
Un language versatile
Vous pouvez utiliser Koltin pour créer des applications sur une large gamme de plates-formes. Nous pouvons citer notamment Serveur, Android, navigateurs et Desktop.
- Android dispose d’un support officiel pour Kotlin.
- Du côté du serveur, vous pouvez utiliser Kotlin avec le framework Spring, qui offre un support complet pour Kotlin dans Spring version 5.
- Kotlin peut également être compilé en Javascript et en code machine.
Opensource
Le langage de programmation Kotlin, y compris le compilateur, les bibliothèques et tous les outils, sont entièrement gratuits et open source. Il est disponible sous licence Apache 2 et le projet complet est hébergé sur Github.
Les bases de kotlin
Nous verrons ici le squelette de cette syntaxe simple à comprendre et à utiliser du language Kotlin.
Les packages
La spécification du package doit être en haut du fichier source:
Il n’est pas nécessaire de faire correspondre les répertoires et les packages: les fichiers source peuvent être placés arbitrairement dans le système de fichiers.
Les variables
Les variables locales en lecture seule sont définies à l’aide du mot-clé val. Une valeur leur est attribuée une seule fois.
Les variables qui peuvent être réaffectées utilisent le mot-clé var:
La fonction principale
Le point d’entrée d’une application Kotlin est la fonction principale.
Les fonctions
Fonction ayant deux paramètres Int avec le type de retour Int:
Fonction avec un corps d’expression et un type de retour inféré:
Fonction ne renvoyant aucune valeur significative:
Les commentaires
Tout comme la plupart des langages modernes, Kotlin prend en charge les commentaires sur une seule ligne (ou de fin de ligne) et sur plusieurs lignes (bloc).
Les commentaires de bloc dans Kotlin peuvent être imbriqués comme nous le voyons ci-dessus dans la deuxième partie de notre exemple.
Les strings
un “string” une chaîne de caractères, une suite ordonnée de caractères. Il s’agit d’un type de donnée.
Les expressions conditionnelles
une instruction ou bien expression conditionnelle est une fonction d’un langage de programmation, qui procède à divers calculs ou bien actions, selon l’évaluation d’une condition booléenne, c’est à dire vraie ou fausse.
Dans Kotlin, if peut également être utilisé comme expression:
Les valeurs ‘null’ et les ‘nullables’
Une référence doit être explicitement marquée comme nullable lorsque la valeur null est possible.
Renvoie null si str ne contient pas d’entier:
Utilisez une fonction renvoyant une valeur ‘nullable’:
Ou bien ->
Boucle ‘for‘
la boucle for est une structure de contrôle qui permet de réitérer l’exécution d’une série d’instructions.
Cette dernière a deux parties dont une qui indique la manière de procéder à l’itération, et un tronc qui est exécuté à chaque itération.
Ou encore ->
Boucle ‘While‘
La boucle While est une structure de contrôle permettant d’exécuter un ensemble d’instructions de façon répétée sur la base d’une condition booléenne. Elle répète une suite d’instructions tant qu’une condition est respectée.
L’expression ‘when’
When peut être utilisé comme une expression. La valeur de la branche satisfaite est renvoyée :
Range
Vous vérifiez si un nombre se trouve dans une plage à l’aide de l’opérateur in:
Vous voyez si un nombre est hors de portée:
Itération sur une plage:
ou sur une progression:
Collections
Itérer sur une collection:
Vous testez si une collection contient un objet à l’aide de l’opérateur in:
Utilisation d’expressions lambda pour filtrer et mapper des collections:
Les classes et leurs instances
En programmation orientée objet (POO), la déclaration d’une classe rassemble des membres, méthodes et propriétés ou attributs communs à un groupe d’objets. En premier lieu, La classe déclare des propriétés représentatifs de l’état des objets. Elle declare par la suite des méthodes définissant leur comportement.
Conclusion
Nous avons vu que Kotlin était un language favori de google pour le développement mobile Android. Il’agissait d’un language versatile, sécurisé, concis et facile à utiliser et dont l’apprentissage est accessible à tous.
Les bases de sa syntaxique de programmation est on ne peut plus simple d’usage et d’apprentissage.
Vous pouvez désormais télécharger intellij dont la version ‘community’ est gratuite afin de vous faire la main :
Ou bien télécharger l’Android Studio et commencer l’aventure :
Grand nombre de tutoriels existent pour vous aider à faire vos premiers pas. Le lien ci-dessous vous permettra de vous familiariser d’avantage avec Kotlin et l’univers de développement Android :
https://kotlinlang.org/docs/reference/android-overview.html
Merci pour cette lecture et ‘Happy Coding !’
——— Une carrière signée Android ———-
Si vous êtes déjà un développeur Android capable de produire du code propre écrit en Kotlin au sein de l’univers d’applications mobiles et cela auprès d’entreprises innovantes, je vous prie de trouver quelques liens interessants ci-dessous:
https://www.lesjeudis.com/metiers
ou bien
Leave a Reply