Kotlin: Simpele uitleg, voorbeelden en zelf Kotlin leren

Lees in dit artikel alles over Kotlin. Naast dat we gaan kijken wat het is en wat je ermee kan, ga je onder andere ook codevoorbeelden zien. Kotlin is een opkomende programmeertaal. Jij kan zelf ook Kotlin leren! Pak een lekker kopje koffie en lees verder.

Ja, ik wil Kotlin leren!

Wat is Kotlin en wat kan je ermee?

Kotlin is ontwikkeld door JetBrains en werd in 2011 gelanceerd. Het is een open source programmeertaal en is gericht op de Java Virtual Machine (JVM).

Tegenwoordig staat Kotlin vooral bekend om de programmeertaal voor Android development. Java is momenteel (nog) de meest populaire programmeertaal voor Android development. Kotlin wordt nu nog vaak als alternatief gezien of gebruikt in combinatie met Java. Kotlin wint de laatste tijd wel steeds meer aan populariteit.

Wie weet streeft Kotlin over een aantal jaar Java wel voorbij als meest populaire programmeertaal voor Android development? In 2017 is Kotlin door Google benoemd als officiële programmeertaal voor Android development. Sindsdien is de populariteit gestegen. Kotlin heeft enkele voordelen en extra features ten opzichte van Java, waar we later in dit artikel op terugkomen.

Kotlin werkt naadloos samen met Java. In een project met Java code kan je Kotlin gebruiken en andersom ook. Door de goede samenwerking is een combinatie van beide programmeertalen goed mogelijk of een switch van de ene naar de andere goed te realiseren.

Verder kan Kotlin gecompileerd worden naar JavaScript en machinecode. Je zou dus “gewoon” een website interactief kunnen maken met Kotlin in plaats van JavaScript. Wel wordt je Kotlin code dan logischerwijs gecompileerd naar JavaScript, zodat browsers het begrijpen.

Kotlin is zowel een functionele als een object georiënteerde (OOP) programmeertaal. Het is mogelijk om gebruik te maken van beide programmeerstijlen.

Het mooie is dat Kotlin ook een cross-platform programmeertaal is. Dit betekent dat Kotlin op meerdere besturingssystemen kan draaien. Momenteel gebruiken developers Kotlin vooral voor Android development, de client-side van een website en server-side applications. Zelfs voor data science wordt Kotlin steeds meer gebruikt.

Kotlin logo

Voorbeelden van Kotlin Android apps

Nu je een beter beeld hebt over wat Kotlin is en wat je ermee kan doen, is het leuk om naar voorbeelden te kijken van Android apps die gemaakt zijn met Kotlin.

Kotlin wordt momenteel het meest gebruikt voor Android development en daarom zijn daar ook de beste voorbeelden van te vinden.

Pinterest

Ken je het nog? Een prikbord? Vroeger werd het vaak gebruikt, tegenwoordig gebeurt dat steeds meer digitaal. Pinterest is een online prikbord waarop gebruikers allemaal afbeeldingen en video’s delen.

Achter die afbeeldingen en video’s zit een verhaal. Dit verhaal delen de gebruikers. Andere gebruikers doen hierdoor inspiratie op. Iedereen op Pinterest kan een eigen bord aanmaken en daarop afbeeldingen en video’s van zichzelf en anderen opslaan.

Dagelijks maken miljoenen mensen wereldwijd gebruik van Pinterest. Het geeft de status van Kotlin aan dat zo’n groot bedrijf als Pinterest is overgestapt van Java naar Kotlin voor de Android app.

De stap van Pinterest was vrij opmerkelijk, omdat het overstapte voordat Google Kotlin als officiële programmeertaal voor Android development erkende in 2017.

Pinterest Android app screenshot

Trello

Trello is online bord voor projectmanagement. De interface is heel gebruiksvriendelijk en daarom maken ook dagelijks meer dan een miljoen mensen gebruik van Trello.

Grote bedrijven gebruiken Trello, zoals Google, PayPal en Udemy. Het geeft aan dat Trello echt een grote speler is op het gebied van projectmanagement.

Trello heeft ook een Android app en deze is gedeeltelijk omgezet naar Kotlin code. Kotlin werkt goed samen met Java. Je kan eenvoudig Kotlin code gebruiken in Java en Java code gebruiken in Kotlin. Deze app is daar een mooi voorbeeld van.

Trello Android app screenshot

Coursera

Coursera is een platform met vele online cursussen en opleidingen. Er is een samenwerking met vele hoog aangeschreven universiteiten en onderwijsorganisaties wereldwijd, waardoor ze online educatie van hoge kwaliteit geven.

Hele grote bedrijven werken samen met Coursera, zoals Google en IBM.

De Android app van Coursera is erg populair. Op het moment van schrijven is de app al meer dan 5 miljoen keer gedownload. De app is geschreven in Kotlin.

In “Coursera review” lees je meer over dit online leerplatform.

Coursera Android app screenshot

Voor- en nadelen van Kotlin

Net zoals elke programmeertaal heeft ook Kotlin zijn voor- en nadelen. Laten we eerst gaan kijken naar de voordelen en daarna naar de nadelen.

Voordelen

  • Verhoogt efficiëntie, doordat er minder regels code nodig zijn
  • Goede samenwerking met Java
  • Meer stabiele code, minder fouten
  • Goed te onderhouden
  • Ondersteuning van goede ontwikkelomgevingen
  • Makkelijk om te leren

Nadelen

  • Compilatie snelheid is in sommige gevallen minder snel dan Java
  • De community is nog niet zo groot als populaire programmeertalen, zoals Java en Python, maar het groeit wel hard iedere dag
  • Er zijn nog niet veel Kotlin specialisten

Ja, ik wil Kotlin leren!

Kotlin vs Java

Er zijn duidelijke verschillen tussen Kotlin en Java. Laten we eerst kijken naar enkele belangrijke features die Kotlin wel heeft en Java niet:

  • Null-safety
  • Extension functions
  • Smart casts
  • Data classes
  • Operator overloading

En nu enkele belangrijke features die Java wel heeft en Kotlin niet:

  • Checked exceptions
  • Static members
  • Ternary operator
  • Primitive types

Kotlin codevoorbeelden

We gaan kijken naar drie codevoorbeelden in Kotlin. Eerst een voorbeeld waarin je ziet dat in Kotlin minder code nodig is dan in Java met een data class. Daarna pikken we nog twee features eruit die Kotlin heeft en Java niet, dat is null-safety en extension functions.

Voorbeeld van minder code in Kotlin dan in Java met een data class

Stel dat we een class Cat maken in Java, met name en age als eigenschappen. Hier maken we ook getters en setters van. In Java ziet dat er zo uit:

public class Cat {
    private String name;
    private int age;
    
    public Cat() {}
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    public int getAge() {
        return age;
    }
    
    public void setAge(int age) {
        this.age = age;
    }
}

Dit doet een beetje pijn aan onze ogen. Een class waarin zo weinig data wordt bewaard en toch zoveel code heeft. In Kotlin heb je daar veel minder code voor nodig:

data class Cat(var name: String,
               var age: Int)

In Kotlin heb je een speciale data class. Het hoofddoel van de data class is om data te bewaren. In een data class worden automatisch getters en setters gegenereerd. Ook de volgende functions worden automatisch gegenereerd:

  • toString()
  • equals()
  • hashCode()
  • componentN()
  • copy()

Bij classes in Java zie je veel van deze code weer terugkomen en het heeft weinig effect op de inhoud. Dat wordt ook wel boilerplate code genoemd. Kotlin gaat daar netter mee om en daarom heb je ook minder code nodig. Het bovenstaande is daar een mooi voorbeeld van.

Null-safety

Als je een Java developer bent, zal je deze Exception zeker tegengekomen zijn, namelijk de NullPointerException. Het is een grote frustratie voor veel Java developers. In Kotlin kan een variable geen null waarde hebben. Bij het volgende zal de compiler een error geven:

var age: Int = null

Eigenlijk heb ik een beetje gelogen. Een variable in Kotlin kan wel een null waarde hebben. Daarvoor moet je een ? achter het type zetten. Op deze manier kan een variable in Kotlin wel een null waarde hebben en geeft de compiler geen error:

var age: Int? = null

Als je bijvoorbeeld gebruikt wil maken van Java libraries, is het handig om toch een null waarde toe te staan.

Extension functions

Extension functions zijn heel handig in Kotlin. Door extension functions kan je een extra function aan een class toevoegen, zonder de class zelf daadwerkelijk aan te passen of gebruik te maken van inheritance.

Dit klinkt misschien nu nog niet helemaal duidelijk, laten we daarom naar een voorbeeld gaan kijken:

fun main(args: Array<String>) {
    var calculator = Calculator()
    
    println("Calculator multiply: " + calculator.Multiply(3, 4))
    println("Calculator divide by: " + calculator.divideBy(10, 2))
}

fun Calculator.divideBy(number1: Int, number2: Int): Int {
    return number1 / number2
}

class Calculator {

    fun Multiply(number1: Int, number2: Int): Int {
        return number1 * number2
    }
}

In regel 5 zie je dat het calculator object een function/method aanroept die niet in de Calculator class staat. Deze function is los van de class aangemaakt in regel 8. Je hoeft dus niet de class aan te passen of gebruik te maken van inheritance om een function aan de class toe te voegen in Kotlin.

Het heeft enkele voordelen, zoals:

  • Het vermindert de code
  • Makkelijker om de code te lezen
  • Duidelijke structuur
  • Eenvoudiger om bestaande classes uit te breiden

Zelf Kotlin leren

Wil je zelf Kotlin gaan leren? Dat kan, maar dan zal je er logischerwijs wel mee aan de slag moeten gaan. Een goede manier om Kotlin te leren is door online cursussen te volgen en ook zelf te oefenen.

Pluralsight is een heel goed platform met veel Kotlin videocursussen, zowel voor beginners die Kotlin willen leren als ervaren Kotlin developers. Je bekijkt niet alleen de cursussen, maar gaat ook zelf daadwerkelijk aan de slag om bijvoorbeeld een echte Android app te maken.

Pluralsight logo

Lees hier een uitgebreide review over Pluralsight en mijn persoonlijke ervaringen met het platform.

Het platform is zelfs 10 dagen helemaal gratis uit te proberen. Kotlin is een groeiende programmeertaal en wint elke dag steeds meer aan populariteit. Er komt steeds meer vraag naar Kotlin developers.

Als je echt geïnteresseerd bent in Kotlin, zou je er zeker goed aan doen om Kotlin te leren. Je kan uitdagend werk doen en er een goed salaris mee verdienen. Leer Kotlin en pak je kans!

Heb je nog vragen en/of opmerkingen? Laat dan hieronder een reactie achter of neem contact op.

Plaats een reactie