Kotlin et Android

 

Avant-propos

Le langage de programmation orienté objet Kotlin est désormais supporté officiellement par Android.

Un plugin pour Kotlin est embarqué dans Android Studio depuis sa version 3.0.

Voir l’article issu de la documentation officielle Android : https://developer.android.com/kotlin/index.html

 

Principes du marquage avec Kotlin

Kotlin est entièrement supporté par Android Studio 3.0, il est donc relativement simple de créer de nouveaux projets contenant des fichiers Kotlin, d’ajouter des fichiers Kotlin dans un projet existant ou encore de convertir du code Java en Kotlin (voir la rubrique « Get Started with Kotlin » de la documentation officielle pour plus de détails).

Kotlin permet une interopérabilité complète avec le langage Java. C’est pourquoi, les principes de fonctionnement ainsi que les méthodes d’intégration documentés dans votre rubrique « Bien commencer » restent inchangés.

Android Studio 3.0 propose différents outils de conversion. Il est ainsi possible de convertir un fichier Java (extension .java) en fichier Kotlin (extension .kt) en ouvrant le fichier puis en sélectionnant le menu Code > Convert Java File to Kotlin File. Vous pouvez aussi créer un nouveau fichier Kotlin (menu File > New > Kotlin File/Class) puis y insérer du code Java. Dans ce cas, une boîte de dialogue s’ouvrira proposant la conversion automatique du code. Les exemples de marquage Android définis en Java peuvent donc être insérés en l’état entraînant une conversion automatique.

 

Exemple de marquage

Marquage d’un Geste avec Debugger en Java

package com.atinternet;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

import com.atinternet.tracker.ATInternet;
import com.atinternet.tracker.Debugger;
import com.atinternet.tracker.Tracker;

public class MainActivity extends AppCompatActivity {

    Tracker tracker;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        tracker = ATInternet.getInstance().getDefaultTracker();

        findViewById(R.id.sendHit).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tracker.Gestures().add("TouchTest").sendTouch();
            }
        });

        Debugger.create(this, tracker);
    }
}

 

Marquage équivalent en Kotlin

package com.atinternet

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
import com.atinternet.tracker.ATInternet
import com.atinternet.tracker.Debugger
import com.atinternet.tracker.Tracker

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val tracker: Tracker = ATInternet.getInstance().getDefaultTracker()

        val button = findViewById<Button>(R.id.sendHit)

        button.setOnClickListener(object : View.OnClickListener {
            override fun onClick(v: View?) {
                tracker.Gestures().add("TouchTest").sendTouch()
            }
        })

        Debugger.create(this, tracker)
    }
}

 

 

Dernière mise à jour : 03/01/2018