Android KTX : le développement avec Kotlin sous Android simplifié

Par:
fredericmazue

mar, 06/02/2018 - 16:02

Android Studio 3.0 supporte le langage Kotlin, un nouveau langage introduit par Google dans l'écosystème Android, avec peut-être l'intention qu'il remplace à terme Java, tout comme Apple a créé Swift pour remplacer Objective C.

Kotlin est un langage conçu et développé par une équipe de JetBrains, l'éditeur de l'environnement de développement renommé Intellij IDEA, sur lequel Android Studio est lui-même construit. Kotlin emprunte à la programmation fonctionnelle. Il a un système de type statique (pour la sûreté) et il supporte l'inférence de types ainsi que les fonctions d'ordre supérieur (pour les expressions lambda et les closures). Kotlin emprunte également à la programmation objet. S'il emprunte à la programmation fonctionnelle, Kotlin est toutefois présenté comme un langage orienté objet. Les emprunts à la programmation fonctionnelle étant là surtout pour apporter des facilités dans le codage, selon les concepteurs de Kotlin qui ne veulent pas que celui-ci soit rangé dans la catégorie des langages de recherche ou universitaires. Au contraire Kotlin se veut pratique et JetBrains l'utilise en interne dans des projets réels. 

Sans doute dans l'intention de stimuler l'adoption de Kotlin par les développeurs, Google propose  Android KTX. Il s'agit d'un ensemble d'extensions conçues pour l'écriture de code Kotlin pour Android plus concise, idiomatique et agréable, souligne Mountain ViewAndroid KTX apporte une surcouche API sympathique à la fois sur le framework Android et la Android Support Library, précise encore Google.

Par exemple, soit l'installation d'un écouteur d'événement dans une vue arborescente en Kotlin:

view.viewTreeObserver.addOnPreDrawListener(
    object : ViewTreeObserver.OnPreDrawListener {
        override fun onPreDraw(): Boolean {
            viewTreeObserver.removeOnPreDrawListener(this)
            actionToBeTriggered()
            return true
        }
    }) 

Avec Android KTX, le code devient :

view.doOnPreDraw {
     actionToBeTriggered()
}

Ce qui est indéniablement plus agréable.

Android GTX est sur GitHub.