Convertir toutes les applications Android (Java) en Kotlin

Aperçu

Je voulais convertir l'application de mon entreprise en Java-> Kotlin, alors j'ai d'abord essayé de tout convertir en Kotlin avec mon application Android (tout le code Java).

Sur les mesures prises à ce moment-là. Cela n'a pas demandé beaucoup d'efforts, probablement parce que mon application était petite.


cible


Mon expérience Android, Kotlin


Application convertie en Kotlin

Une application de recherche périphérique appelée PLACE SEARCH.

qiita.gif

https://play.google.com/store/apps/details?id=com.hikarusato.placesearch


Effectif correspondant

Jour 2


manière

  1. Si Kotlin n'est pas inclus dans Android Studio, installez le plugin. Il existe des moyens de le faire dans divers articles.
    http://blog.ch3cooh.jp/entry/20160217/1455676200
  2. Modifiez build.gladle.

build.gradle (pour le projet)


buildscript {
        
    ext.kotlin_version = '1.0.6'//ajouter à
    repositories {
        jcenter()
    }
    dependencies {
        
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"//ajouter à
    }
}

bash:build.gradle(Module:application)


apply plugin: 'kotlin-kapt'//Ajouté si vous souhaitez rendre les annotations disponibles dans kotlin.
apply plugin: 'kotlin-android'//ajouter à.

・
・
・

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"//ajouter à.
    compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"//Ajouté lors de l'utilisation de la réflexion (acquisition du nom de propriété ou du nom de classe)
    testCompile "org.jetbrains.kotlin:kotlin-test:$kotlin_version"//Ajouté lors de l'utilisation d'un projet de test
    testCompile "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version"//Ajouté lors de l'utilisation d'un projet de test
}

Référence: https://kotlinlang.org/docs/reference/using-gradle.html

  1. Dans la navigation du projet Android, sélectionnez le dossier app-> java et sélectionnez le menu principal [Code] -> [Convertir le fichier Java en fichier Kotlin]. スクリーンショット 2017-02-04 23.51.16.png

Cela convertira tout le code java en code Kotlin.


Erreur de compilation écrasée


-ObjetNullableType. Ajoutez !! ou? Où il se trouve dans le format de la méthode.

Exemple


        //Java dans Android Studio->Après la conversion à Kotlin

        mWaitDialog = ProgressDialog(this, AlertDialog.THEME_DEVICE_DEFAULT_LIGHT)
        //Ici, mWaitDialog!!.setMessage or  mWaitDialog?.J'obtiens une erreur lorsque je passe à setMessage
        mWaitDialog.setMessage(resources.getString(R.string.now_updating))


-Impossible de reconnaître les Enums privés dans la même classe au sein de la classe interne.

Code Kotlin après conversion automatique


class A {
   private enum class TYPE {
        TYPE_1,
        TYPE_2
    }

   internal class B {
        var state = TYPE.TYPE_1//Erreur selon laquelle l'énumération TYPE ne peut pas être reconnue ici
   }
}

modifié


class A {
    //Supprimer privé
    enum class TYPE {
        TYPE_1,
        TYPE_2
    }

   internal class B {
        var state = TYPE.TYPE_1
   }
}

-Java Enum.valueOf (Enum name.class, "Enum enumeration name") n'est pas converti correctement

Code Kotlin après conversion automatique


    enum class TYPE {
        TYPE_1,
        TYPE_2
    }

・
・
・

    Enum.valueOf<TYPE>(TYPE::class.java!!, "Nom de l'énumération enum")//Enum.valueOf<TYPE>Erreur dans

modifié


    enum class TYPE {
        TYPE_1,
        TYPE_2
    }

・
・
・

    TYPE.valueOf("Nom de l'énumération enum")//Nom enum.Passer au format valueOf

Erreur d'exécution écrasée


・ Null, paramètre favicon à ~ .onPageStarted

Avant correction



override fun onPageStarted(view: WebView, url: String, favicon: Bitmap) {


modifié



//favicon peut être nul, donc?Attacher.
override fun onPageStarted(view: WebView, url: String, favicon: Bitmap?) {


-Java.lang.IllegalStateException: ViewUtils.createNaviTran… transit, enter, nextAnim) ne doit pas être nul


Avant correction



 override fun onCreateAnimation(transit: Int, enter: Boolean, nextAnim: Int): Animation

modifié


//L'animation peut être nulle, donc?Attacher.
 override fun onCreateAnimation(transit: Int, enter: Boolean, nextAnim: Int): Animation?

Avantages / inconvénients de la conversion de kotlin (impression)


mérite




Démérite



Résumé


Recommended Posts

Convertir toutes les applications Android (Java) en Kotlin
[Android] Convertir le code Java Android en Kotlin
[Android] Convertissez Map en JSON à l'aide de GSON avec Kotlin et Java
Spécifier les options de compilation Java / Kotlin pour les applications Android
Maîtriser Kotlin ~ Convertir un fichier Java en fichier Kotlin Road to Graduation ~ Partie 3
Classe Kotlin à envoyer aux développeurs Java
[Android] Convertir le code Java Android en Kotlin
Maîtriser Kotlin ~ Convertir un fichier Java en fichier Kotlin Road to Graduation ~ Partie 2
Maîtriser Kotlin ~ Convertir un fichier Java en fichier Kotlin Road to Graduation ~ Partie 1
Comment convertir la base Java
[Java] Convertir ArrayList en tableau
Reportez-vous à C ++ dans le module Android Studio (Java / kotlin)
Classe Kotlin à envoyer aux développeurs Java
[Java] Convertir 1 en N liste en carte
[Java] Convertit un tableau en ArrayList * Attention
Kotlin's Class part.2 à envoyer aux développeurs Java
Utilisez ViewModel pour faire pivoter approximativement les applications Android
Convertir l'heure UTC Java en heure JST
[Java] Convertit null du type Object en type String
Convertir des fichiers SVG en fichiers PNG en Java
Fonctions de portée Kotlin à envoyer aux développeurs Java
Création d'applications Web Java sur Azure Web Apps
Mémo pour la migration de Java vers Kotlin
De Java à C et de C à Java dans Android Studio
Kotlin vs Java: quel langage de programmation choisir pour votre application Android
Résumé des bons points et des précautions lors de la conversion de l'application Java Android vers Kotlin
Fonctions Kotlin et lambdas à envoyer aux développeurs Java
[Android] Comment convertir une chaîne de caractères en resourceId
Présentation de Kotlin à un projet Java Maven existant
Migrer de Java vers Kotlin côté serveur + Spring-boot
[Java] Convertit le code DB en valeur de code à l'aide d'énum
Paramètres initiaux pour la réécriture de projets Java sur Kotlin
Comment convertir un contrat de solidité en une classe de contrat Java
Premiers pas avec Kotlin à envoyer aux développeurs Java
[Java] Introduction à Java
Ce que j'ai fait lorsque j'ai converti Java en Kotlin
Convertir les beans imbriqués Java au format aaa.bbb [0] .ccc
Introduction à Java
Où les programmeurs Java ont tendance à trébucher sur Kotlin
Comment écrire Java String # getBytes dans Kotlin?
Ce que des personnes inexpérimentées en Java ont fait pour étudier Kotlin
Causes techniques et contre-mesures pour les points accro aux applications Android et Kotlin (3. Traitement lié aux images Android)
Lancez Docker à partir de Java pour convertir des documents Office en PDF
<java> Lire le fichier Zip et le convertir directement en chaîne
Convertir l'énumération Java et JSON vers et depuis Jackson
Exemple de code pour convertir List en List <String> dans Java Stream
[Java] Convertit les chaînes de caractères en majuscules / minuscules (AOJ⑨ --swap majuscules / minuscules)
[Android / Java] Configurer un bouton pour revenir à Fragment
[Android Studio] [Java] Comment réparer l'écran verticalement
Comment utiliser Truth (bibliothèque d'assertions pour Java / Android)
Pour les applications Java, convertissez des documents Word (DOC / DOCX) en PDF
Présentation de New Relic aux applications Java exécutées sur Heroku
Je veux faire des transitions d'écran avec kotlin et java!
Comment convertir A en A et A en A en utilisant le produit logique et la somme en Java
Comment convertir un fichier en tableau d'octets en Java
[Kotlin] Convertit ZonedDateTime en chaîne en spécifiant le format
[Java] Convertir JSON en Java et Java en JSON-Comment utiliser GSON et Jackson-
Comment configurer le mappeur Android OU "Orma" (Kotlin)
[Java] Convertir la version PDF
Changements de Java 8 à Java 11