0 Introduction Water Pouring Problem Pour démarrer Excercices

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

Pré-requis - Exercices

  1. git clone http://github.com/MonkeyPatchIo/KotlinByExample
  2. git checkout {branch} avec la branche dans exo-mobile, exo-server, exo-web
  3. ./gradlew clean assemble test (les tests doivent ĂŞtre en erreurs)
  4. (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 Android JavaScript LLVM

JVM et Android

JavaScript

Native avec LLVM

Water Pouring Problem

Tonneau magique

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 les data class on peut faire des Abstract Data Class
  • Le sealed nĂ©cessite Kotlin 1.1.

Excercices

Choisir son exercice

Serveur avec SpringBoot 2

exo-server

Pré-requis

Exercices

  • Exercice 1: les bases
  • Exercice 2: un peu plus loin
  • Exercice 3: (SpringBoot) injection, routes, reactor, ...

Android

exo-mobile

Pré-requis

Exercices

  • Exercice 1: les bases
  • Exercice 2: un peu plus loin
  • Exercice 3: android

Freestyle

Pré-requis

Exercice

  • RĂ©soudre le problème du transvasement en Kotlin

Liens