1. Avant de commencer
Dans ce cours, vous allez créer des applications en écrivant du code dans le langage de programmation Kotlin, le langage recommandé par Google pour créer des applications Android.
Kotlin est un langage de programmation moderne qui aide les développeurs à gagner en productivité. Par exemple, Kotlin vous permet d'être plus concis et d'écrire moins de lignes de code pour la même fonctionnalité que les autres langages de programmation. Les applications développées en Kotlin sont également moins susceptibles de planter, ce qui se traduit par une application plus stable et plus robuste pour les utilisateurs. Globalement, Kotlin vous permet de créer de meilleures applications Android et plus rapidement. C'est pourquoi Kotlin prend de l'ampleur dans le secteur et est d'ailleurs le langage utilisé par la majorité des développeurs Android professionnels.
Pour commencer à créer des applications Android en Kotlin, il est important d'avoir des bases solides en concepts de programmation en Kotlin. Grâce à ces ateliers de programmation, vous découvrirez les bases de la programmation Kotlin avant de vous plonger dans la création d'applications.
Objectifs de l'atelier
- Programmes courts en Kotlin qui affichent des messages lorsque vous les exécutez.
Points abordés
- Rédiger et exécuter un programme Kotlin simple.
- Modifier un programme simple pour changer la sortie.
Ce dont vous avez besoin
- Un ordinateur avec accès à Internet et un navigateur Web.
2. Commencer
Dans cet atelier de programmation, vous allez explorer et modifier des programmes simples en Kotlin. Un programme est une série d'instructions qui permettent à un ordinateur ou à un appareil mobile d'effectuer une action, comme afficher un message à un utilisateur ou calculer le prix des articles d'un panier. Les instructions détaillées sur ce que doit faire l'ordinateur sont appelées code. Lorsque vous modifiez le code d'un programme, la sortie peut changer.
Vous pouvez utiliser un outil appelé éditeur de code pour rédiger et modifier votre code. Il ressemble à un éditeur de texte dans lequel vous pouvez écrire et modifier du texte, mais il permet également d'écrire du code avec plus de précision. Par exemple, un éditeur de code propose des suggestions de saisie semi-automatique lors de la frappe et affiche des messages d'erreur lorsque le code est incorrect.
Pour vous familiariser avec le langage Kotlin, vous allez utiliser un éditeur de code interactif appelé Kotlin Playground. Vous pouvez y accéder depuis un navigateur Web, ce qui vous évite d'installer un logiciel sur votre ordinateur. Vous pouvez modifier et exécuter le code Kotlin directement dans Kotlin Playground et afficher la sortie.
Notez que vous ne pouvez pas créer d'applications Android dans Kotlin Playground. Par la suite, vous installerez et utiliserez un outil appelé Android Studio pour rédiger et modifier le code de votre application Android.
Maintenant que vous savez tout sur Kotlin, découvrez votre premier programme !
3. Ouvrir Kotlin Playground
Dans un navigateur Web sur votre ordinateur, ouvrez Kotlin Playground.
Vous devriez voir une page Web semblable à celle-ci :
Un code par défaut est déjà inséré dans l'éditeur de code. Ces trois lignes de code constituent un programme simple :
fun main() {
println("Hello, world!")
}
Même si vous n'avez jamais programmé, pouvez-vous deviner ce que fait le programme ?
Vérifiez si votre hypothèse est correcte en passant à la section suivante !
4. Exécuter votre premier programme
Cliquez sur pour exécuter le programme.
Beaucoup de choses se produisent lorsque vous cliquez sur le bouton "Exécuter". Le code en langage de programmation Kotlin est conçu pour être compris par les humains. Il permet aux utilisateurs de lire, écrire et collaborer plus facilement sur les programmes Kotlin. Cependant, votre ordinateur ne comprend pas immédiatement cette langue.
Vous avez besoin d'un outil appelé compilateur Kotlin, qui convertit le code Kotlin que vous avez écrit ligne par ligne afin de le traduire en un langage compréhensible par l'ordinateur. Ce processus est la compilation de votre code.
Si votre code se compile correctement, votre programme se lancera (c'est-à-dire s'exécutera). Lorsque l'ordinateur exécute votre programme, il effectue chacune de vos instructions. Si vous avez déjà suivi une recette de cuisine, l'exécution de chaque étape est considérée comme l'exécution de chaque étape de préparation.
Voici une capture d'écran de ce que vous devriez voir lorsque vous exécutez votre programme.
En bas de l'éditeur de code, vous devriez voir un volet qui affiche la sortie, ou le résultat de votre programme :
Hello, world!
Cool ! Ce programme a pour but d'imprimer ou d'afficher le message Hello, world!
.
Comment ça marche ? Un programme Kotlin doit disposer d'une fonction principale, qui correspond à l'endroit précis de votre code où commence le compilateur Kotlin. La fonction principale est le point d'entrée (ou point de départ) du programme.
Vous vous demandez peut-être ce qu'est une fonction ?
5. Composantes d'une fonction
Une fonction est un segment d'un programme qui exécute une tâche spécifique. Votre programme peut avoir une seule ou plusieurs fonctions.
Définir vs appeler une fonction
Dans votre code, vous commencez par définir une fonction. Vous devez donc spécifier toutes les instructions nécessaires pour effectuer cette tâche.
Une fois la fonction définie, vous pouvez l'appeler afin que les instructions qu'elle contient soient effectuées ou exécutées.
Voici une analogie. Vous écrivez étape par étape comment préparer un gâteau au chocolat. Cet ensemble d'instructions peut avoir le nom suivant : bakeChocolateCake
. Chaque fois que vous souhaitez faire un gâteau, vous pouvez exécuter les instructions bakeChocolateCake
. Si vous voulez trois gâteaux, vous devez exécuter les instructions bakeChocolateCake
trois fois. La première étape consiste à définir les étapes et à leur attribuer un nom, c'est ce qu'on appelle définir la fonction. Vous pouvez ensuite revenir à ces étapes à tout moment pour qu'elles soient exécutées, c'est l'appel de la fonction.
Définir une fonction
Voici les éléments clés nécessaires pour définir une fonction :
- La fonction a besoin d'un nom pour que vous puissiez l'appeler plus tard.
- La fonction peut également nécessiter des entrées ou des informations à fournir une fois appelée. La fonction utilise ces entrées pour remplir son objectif. Les entrées sont facultatives, et certaines fonctions ne nécessitent aucune entrée.
- La fonction comporte également un corps, qui contient les instructions pour effectuer la tâche.
Pour traduire le schéma ci-dessus en code Kotlin, utilisez la syntaxe (ou le format) suivante pour définir une fonction. L'ordre de ces éléments est important. Le mot "fun" apparaît en premier, suivi du nom de la fonction, puis des entrées entre parenthèses, et enfin des accolades autour du corps de la fonction.
Retenez les éléments clés d'une fonction présentés dans l'exemple d'une fonction principale que vous avez vu dans Kotlin Playground :
- La définition de la fonction commence par le mot
fun
. - Le nom de la fonction est alors
main
. - Comme il n'existe aucune entrée pour la fonction, les parenthèses sont vides.
- Le corps de la fonction contient une ligne de code,
println("Hello, world!")
, située entre les accolades d'ouverture et de fermeture de la fonction.
Chaque partie de la fonction est expliquée plus en détail ci-dessous.
Mot clé d'une fonction
Pour indiquer que vous êtes sur le point de définir une fonction en Kotlin, utilisez le mot spécial fun
(abréviation de fonction) sur une nouvelle ligne. Vous devez saisir fun
exactement tel qu'il apparaît en minuscules. Vous ne pouvez pas utiliser "func", "function" ou toute autre orthographe, car le compilateur Kotlin ne reconnaîtra pas ce que vous voulez dire.
Ces mots spéciaux sont appelés mots clés en Kotlin et sont réservés à un usage spécifique, comme la création d'une fonction par exemple.
Nom d'une fonction
Les fonctions ont des noms qui permettent de les distinguer les unes des autres, de la même manière que les utilisateurs ont des noms pour s'identifier. Le nom de la fonction se trouve après le mot clé fun
.
Choisissez un nom adapté à votre fonction, en lien avec son rôle ou objectif. Le nom est généralement un verbe ou une expression verbale. Nous vous recommandons d'éviter d'utiliser un mot clé Kotlin comme nom de fonction.
Les noms de fonction doivent respecter la convention camel case : le premier mot du nom de la fonction s'écrit en minuscules. S'il est composé de plusieurs mots, il ne doit pas y avoir d'espace entre eux, et tous les autres mots doivent commencer par une majuscule.
Exemples de noms de fonctions :
calculateTip
displayErrorMessage
takePhoto
Entrées d'une fonction
Notez que le nom de la fonction est toujours suivi de parenthèses. Et que c'est entre ces parenthèses que vous listez les entrées de la fonction.
Une entrée est une donnée nécessaire à l'exécution d'une fonction. Lorsque vous définissez une fonction, vous pouvez exiger que certaines entrées soient transmises lors de l'appel de la fonction. Si aucune entrée n'est requise pour une fonction, les parenthèses sont vides ()
.
Voici quelques exemples de fonctions avec un nombre d'entrées différent :
Le schéma suivant illustre une fonction appelée addOne
. L'objectif de la fonction est d'ajouter 1 à un nombre donné. Il y a une entrée, qui est le nombre donné. Dans le corps de la fonction, un code ajoute 1 au nombre transmis dans la fonction.
Dans l'exemple suivant, la fonction s'appelle printFullName
. Deux entrées sont requises pour la fonction, l'une pour le prénom et l'autre pour le nom de famille. Le corps de la fonction affiche le prénom et le nom au niveau de la sortie, pour afficher le nom complet de la personne.
Ce dernier exemple montre une fonction qui ne nécessite aucune entrée pour être transmise lorsque la fonction est appelée. Lorsque vous appelez la fonction displayHello()
, un message "Hello" s'affiche dans le résultat.
Corps d'une fonction
Le corps de la fonction contient les instructions nécessaires à sa réalisation. Vous pouvez le repérer en cherchant les lignes de code entre les accolades d'ouverture et de fermeture.
Présentation d'un programme simple
Reprenons le programme simple que nous avons vu plus tôt dans cet atelier de programmation.
Le programme contient une fonction : la fonction principale. "main" est un nom de fonction spécial en Kotlin. Lorsque vous écrivez votre code dans Kotlin Playground, il doit être écrit dans la fonction main()
ou appelé à partir de la fonction main()
.
Le corps de cette fonction main()
ne contient qu'une seule ligne de code :
println("Hello, world!")
Cette ligne de code est une instruction, car elle effectue une action spécifique, qui consiste à afficher le texte Hello, world!
dans le volet de sortie. Plus précisément, la fonction println()
est appelée sur cette ligne de code. println()
est une fonction déjà définie dans le langage Kotlin. Cela signifie que l'équipe d'ingénieurs qui a créé le langage Kotlin a déjà écrit la déclaration de fonction pour la fonction println()
. La fonction requiert une entrée, c'est-à-dire le message devant être affiché
Lorsque vous appelez la fonction println()
, placez le texte du message entre parenthèses après le nom de la fonction. Veillez à insérer des guillemets autour du texte à afficher, par exemple "Hello, world!"
.
Une fois le programme exécuté, le message transmis à la fonction println()
est affiché dans la sortie :
Hello, world!
Essayez
Revenons à présent au code d'origine du programme. Pouvez-vous modifier le code dans Kotlin Playground pour afficher ce message à la place ?
Hello, Android!
6. Modifier votre programme
- Pour modifier le message affiché au niveau de la sortie, modifiez l'appel de fonction
println()
sur la deuxième ligne du programme. Remplacezworld
parAndroid
dans la fonctionprintln()
. Assurez-vous que"Hello, Android!"
est toujours entre guillemets et entre parenthèses.
fun main() {
println("Hello, Android!")
}
- Exécutez le programme.
- La sortie doit afficher le message suivant :
Hello, Android!
Bravo, vous avez modifié votre premier programme !
Pouvez-vous modifier votre code de sorte que le message s'affiche deux fois ? Voici ce que nous souhaitons obtenir :
Hello, Android! Hello, Android!
Afficher plusieurs messages
Vous pouvez insérer autant de lignes d'instructions dans une fonction que nécessaire pour effectuer une tâche. Toutefois, notez qu'il ne doit y avoir qu'une seule instruction par ligne en Kotlin. Si vous souhaitez écrire une autre instruction, placez-la sur une nouvelle ligne de la fonction.
Pour modifier votre programme afin d'afficher plusieurs lignes de texte :
- Copiez l'instruction initiale
println()
et collez-la en dessous dans le corps de la fonction. Les deux instructionsprintln()
doivent être placées entre les accolades de la fonction principale. Vous avez maintenant deux instructions dans le corps de la fonction.
fun main() {
println("Hello, Android!")
println("Hello, Android!")
}
- Exécutez le programme.
- Lorsque vous exécutez votre programme, vous devez obtenir la sortie suivante :
Hello, Android! Hello, Android!
Vous pouvez voir comment les modifications apportées au code affectent le résultat.
- Modifiez le code de sorte qu'il affiche
Hello,
YOUR_NAME
!
.
7. Guide de style Kotlin
Tout au long de ce cours, vous découvrirez les bonnes pratiques de codage à suivre en tant que développeur Android. L'une de ces bonnes pratiques consiste à suivre les normes de codage Android de Google pour le codage en Kotlin. Le guide complet, appelé "guide de style", explique comment mettre en forme le code en termes d'aspect visuel et les conventions à suivre lors de sa rédaction. Par exemple, le guide de style inclut des recommandations sur l'utilisation des espaces, des retraits, des noms, etc.
L'objectif du guide de style est de rendre votre code plus facile à lire et de l'harmoniser avec le code écrit par d'autres développeurs. Cette cohérence est importante lors d'une collaboration sur des projets volumineux, c'est pourquoi le style de code s'applique à tous les fichiers du projet.
Voici quelques recommandations du guide de style utiles pour ce que vous avez appris en Kotlin jusqu'à présent :
- Les noms de fonctions doivent être en camel case et être des verbes ou des expressions verbales.
- Chaque instruction doit figurer sur une ligne distincte.
- L'accolade ouvrante doit apparaître à la fin de la ligne où la fonction commence.
- Il doit y avoir une espace avant l'accolade ouvrante.
- Le corps de la fonction doit être en retrait de 4 espaces. N'utilisez pas de tabulation pour mettre votre code en retrait. Saisissez quatre espaces.
- L'accolade fermante se trouve sur sa propre ligne après la dernière ligne de code dans le corps de la fonction. L'accolade doit être alignée sur le mot clé
fun
au début de la fonction.
Vous découvrirez d'autres conventions de codage Android à mesure que vous développerez vos connaissances en Kotlin. Le guide de style complet est disponible sur cette page, mais ne vous inquiétez pas, il aborde d'autres sujets dans Kotlin que vous n'avez pas encore croisés.
8. Corriger les erreurs dans votre code
Lorsque vous apprenez une langue, vous devez respecter certaines règles de syntaxe et de grammaire pour utiliser correctement les mots et les phrases. Il en est de même pour les langages de programmation. Il existe des règles spécifiques qui définissent le code valide, c'est-à-dire le code qui se compile correctement.
Faire des erreurs et saisir par inadvertance du code incorrect font partie intégrante du processus de codage. En tant que débutant, cela peut être quelque peu déroutant et fatigant. Mais ne vous inquiétez pas, c'est parfaitement normal. Le code fonctionne rarement parfaitement dès la première saisie. Tout comme l'écriture d'un document nécessite de nombreux brouillons, l'écriture du code peut prendre de nombreuses itérations jusqu'à ce qu'elle fonctionne comme prévu.
Si la compilation du code échoue, cela signifie qu'une erreur s'est produite. Par exemple, si vous avez fait une faute de frappe, vous avez par exemple oublié un guillemet ou une parenthèse, le compilateur ne comprendra pas votre code et ne pourra pas le traduire en étapes pour que l'ordinateur fonctionne correctement. Si votre code ne fonctionne pas comme prévu ou qu'un message d'erreur s'affiche dans votre éditeur de code, vous devez revenir au code et le corriger. Le processus de résolution de ces erreurs s'appelle le dépannage.
- Copiez et collez l'extrait de code suivant dans Kotlin Playground, puis exécutez le programme. Que voyez-vous ?
fun main() {
println("Today is sunny!)
}
Dans l'idéal, le message Today is sunny!
doit s'afficher. À la place, des icônes en forme de point d'exclamation avec des messages d'erreur s'affichent dans le volet de sortie.
Message d'erreur de Kotlin Playground
Les messages d'erreur commencent par le mot "Expecting" (Attente), car le compilateur Kotlin "attend" quelque chose, mais ne le trouve pas dans le code. Dans ce cas, le compilateur attend un guillemet fermant et une parenthèse fermante pour le code dans la deuxième ligne de votre programme.
Dans l'instruction println()
, notez que le message à afficher comporte des guillemets ouvrants, mais pas de guillemets fermants. Bien qu'il y ait une parenthèse fermante dans le code, le compilateur pense que la parenthèse fait partie du texte à imprimer, car aucun guillemet fermant n'est placé avant.
- Ajoutez le guillemet fermant entre le point d'exclamation et la parenthèse fermante.
fun main() {
println("Today is sunny!")
}
La fonction principale contient une ligne de code, qui est une instruction println()
, dans laquelle le texte est placé entre guillemets et parenthèses : "Today is sunny!"
.
- Exécutez de nouveau le programme.
Aucune erreur ne devrait apparaître et le volet de sortie devrait afficher le texte suivant :
Today is sunny!
Bravo, vous avez corrigé l'erreur ! Une fois que vous aurez acquis plus d'expérience dans la rédaction du code et la résolution des erreurs, vous constaterez qu'il est important de prêter attention aux majuscules, à l'orthographe, aux espaces, aux symboles et aux noms lorsque vous saisissez du code.
Dans la section suivante, vous allez mettre en pratique ce que vous avez appris. Les solutions sont disponibles à la fin de l'atelier de programmation, mais faites de votre mieux pour trouver la réponse par vous-même.
9. Exercices
- Pouvez-vous lire le code de ce programme et deviner la sortie (sans l'exécuter dans Kotlin Playground) ?
fun main() {
println("1")
println("2")
println("3")
}
Une fois que vous avez une réponse, copiez et collez ce code dans Kotlin Playground pour vérifier votre réponse.
- Utilisez Kotlin Playground pour créer un programme qui génère les messages suivants :
I'm learning Kotlin!
- Copiez et collez ce programme dans Kotlin Playground.
fun main() {
println("Tuesday")
println("Thursday")
println("Wednesday")
println("Friday")
println("Monday")
}
Corrigez le programme pour qu'il affiche la sortie suivante :
Monday Tuesday Wednesday Thursday Friday
Pour vous améliorer en matière de dépannage, corrigez les erreurs dans les exercices suivants. Pour chaque exercice, copiez le code dans Kotlin Playground depuis votre navigateur. Essayez d'exécuter le programme. Un message d'erreur s'affiche.
- Corrigez l'erreur dans ce programme, de sorte qu'il affiche la sortie souhaitée.
fun main() {
println("Tomorrow is rainy")
Sortie souhaitée :
Tomorrow is rainy
- Corrigez l'erreur dans ce programme, de sorte qu'il affiche la sortie souhaitée.
fun main() {
printLine("There is a chance of snow")
}
Sortie souhaitée :
There is a chance of snow
- Corrigez l'erreur dans ce programme, de sorte qu'il affiche la sortie souhaitée.
fun main() {
println("Cloudy") println("Partly Cloudy") println("Windy")
}
Sortie souhaitée :
Cloudy Partly Cloudy Windy
- Corrigez l'erreur dans ce programme, de sorte qu'il affiche la sortie souhaitée.
fun main() (
println("How's the weather today?")
)
Sortie souhaitée :
How's the weather today?
Après avoir effectué ces exercices, comparez vos réponses aux solutions proposées dans la section suivante.
10. Solutions
- La sortie du programme est :
1 2 3
- Le code de votre programme devrait ressembler à ceci :
fun main() {
println("I'm")
println("learning")
println("Kotlin!")
}
- Voici le code attendu pour le programme :
fun main() {
println("Monday")
println("Tuesday")
println("Wednesday")
println("Thursday")
println("Friday")
}
- L'accolade fermante indiquant la fin du corps de la fonction
main
est manquante dans la troisième ligne du programme.
Code correct :
fun main() {
println("Tomorrow is rainy")
}
Sortie :
Tomorrow is rainy
- Lorsque vous exécutez le programme, une erreur
Unresolved reference: printLine
s'affiche. En effet,printLine()
n'est pas une fonction reconnue en Kotlin. La partie du code à l'origine de l'erreur est surlignée en rouge dans Kotlin Playground. Remplacez le nom de la fonction parprintln
pour afficher une ligne de texte dans la sortie, ce qui résout l'erreur.
Code correct :
fun main() {
println("There is a chance of snow")
}
Sortie :
There is a chance of snow
- Lorsque vous exécutez le programme, une erreur
Unresolved reference: println
s'affiche. Ce message n'indique pas directement comment résoudre le problème. Cela peut se produire lorsque vous repérez une erreur. Vous devez examiner votre code plus en détail pour résoudre le comportement inattendu.
En observant de plus près, le deuxième appel de la fonction println()
dans le code apparaît en rouge, ce qui indique l'origine du problème. Kotlin ne veut qu'une seule instruction par ligne. Dans ce cas, vous pouvez déplacer les deuxième et troisième appels de la fonction println()
sur des lignes distinctes pour résoudre le problème.
Code correct :
fun main() {
println("Cloudy")
println("Partly Cloudy")
println("Windy")
}
Sortie :
Cloudy Partly Cloudy Windy
- Si vous exécutez le programme, l'erreur
Function 'main' must have a body
s'affiche. Le corps de la fonction doit être placé entre accolades { }, et non entre parenthèses ().
Code correct :
fun main() {
println("How's the weather today?")
}
Sortie :
How's the weather today?
11. Conclusion
Bravo ! Vous avez terminé cette introduction à Kotlin.
Vous avez travaillé avec des programmes simples en Kotlin et vous les avez exécutés pour afficher leur sortie. Vous avez modifié les programmes de différentes manières et observé l'impact de ces modifications sur la sortie. Il est normal de faire des erreurs lors de la programmation. C'est pourquoi vous avez commencé à apprendre à repérer et à corriger les erreurs dans votre code, une compétence importante qui vous sera utile à l'avenir.
Passez à l'atelier de programmation suivant pour apprendre à utiliser des variables en Kotlin afin de créer des programmes plus intéressants.
Résumé
- Un programme Kotlin nécessite une fonction principale comme point d'entrée du programme.
- Pour définir une fonction en langage Kotlin, utilisez le mot clé
fun
, suivi du nom de la fonction, puis des entrées comprises entre parenthèses, et enfin du corps de la fonction, entre accolades. - Le nom d'une fonction doit respecter la convention camel case, et commencer par une lettre minuscule.
- Utilisez l'appel de fonction
println()
pour que la sortie affiche du texte. - Reportez-vous au guide de style Kotlin pour connaître les conventions de mise en forme et de programmation à suivre lors du codage en langage Kotlin.
- Le dépannage consiste à corriger les erreurs dans votre code.