Kotlin par l'exemple
Speakers
đź—ş Roadmap
Présentation,
Installation
Exercice
...
Wifi
🤩
Vous avez déjà une connexion internet correcte.
🤬
Sinon utilisez le wifi
Monkey
/
bananaTree
.
Pré-requis - IDE
-
Installation de l'IDE
Android Studio 3.0, Download IntelliJ IDEA -
Configuration Ă©ventuelle du plugin Kotlin
Tools | Kotlin | Configure Kotlin Plugin Updates
Pré-requis - Exercices
git clone http://github.com/MonkeyPatchIo/KotlinByExample
-
git checkout {branch}
avec la branche dansexo-mobile
,exo-server
,exo-web
./gradlew clean assemble test
(les tests doivent être en erreurs)- (Optionel) Récupérer la présentation : http://bit.ly/kotlin-lab
Caractéristiques de Kotlin
- Dévoilé en 2011 par JetBrains
- v1.0 en 2016, v1.1 et v1.2 en 2017
- Expressif et pragmatique
- Sûr: statiquement typé, null-safety
- Inspiré par Java, Scala, C#, Groovy, ...
- Abordable, si on vient de Java
- Cross-platform
Cible
JVM et Android
JavaScript
Native avec LLVM
Water Pouring Problem
Tonneau magique
Verres
8 / 8
0 / 6
1 / 4
Remplir
Fill
1 / 4
➡️
4 / 4
Verser
Pour
6 / 8
into
2 / 6
➡️
2 / 8
,
6 / 6
Vider
Empty
3 / 4
➡️
0 / 4
DĂ©mo
Pour démarrer
Hello World
fun main(args: Array<String>) {
println("Hello BreizhCamp !")
}
- Utilisez Alt + Shift + (Cmd|Ctrl) + K pour convertir une classe Java en Kotlin
- Ou copiez du code Java dans un fichier Kotlin
Glass
data class Glass(val capacity: Int, val current: Int = 0) {
init {
require(capacity > 0) {
"Capacity: $capacity should be > 0"
}
require(current in 0..capacity) {
"Current: $current should be into [0, $capacity]"
}
}
}
typealias State = List<Glass>
- En Ă©crivant du Kotlin vous aurez plein de
fun
! - Le
typealias
nécessite Kotlin 1.1.
Moves
sealed class Move
data class Empty(val index: Int) : Move()
data class Fill(val index: Int) : Move()
data class Pour(val from: Int, val to: Int) : Move() {
init {
require(from != to)
}
}
- Avec les
sealed
et lesdata class
on peut faire des Abstract Data Class - Le
sealed
nécessite Kotlin 1.1.
Excercices
Choisir son exercice
Serveur avec SpringBoot 2 Implémentation du solveur côté serveur
Android DĂ©finition et affichage de la solution sous Android
Navigateur avec KotlinJS DĂ©finition et affichage de la solution dans un navigateur
Freestyle Implémenter sans guide
Serveur avec SpringBoot 2
exo-server
Pré-requis
- Java 8
- Un IDE qui marche bien avec Kotlin comme IntelliJ IDEA CE
Exercices
- Exercice 1: les bases
- Exercice 2: un peu plus loin
- Exercice 3: (SpringBoot) injection, routes, reactor, ...
Android
exo-mobile
Pré-requis
- Java 8
- Android Studio 3
- Android SDK 27
Exercices
- Exercice 1: les bases
- Exercice 2: un peu plus loin
- Exercice 3: android
Freestyle
Pré-requis
- Java 6+
- Un IDE qui marche bien avec Kotlin comme IntelliJ IDEA CE
Exercice
- Résoudre le problème du transvasement en Kotlin