· hutor.tech
Kako prebaciti Android aplikaciju s Jave na Kotlin
Kotlin i Java žive u istom projektu bez ikakvih problema, i to je najkorisnija činjenica o ovoj migraciji: ne mora se dogoditi odjednom i ne mora se dogoditi svugdje. Aplikacija se može objaviti nakon svakog koraka, i upravo to čini posao sigurnim.
Najprije pripremite teren. Svjež Android Gradle Plugin, uključen Kotlin dodatak u datotekama gradnje i zelen build na stroju koji sastavlja izdanja, ne samo na prijenosniku. Ako u projektu nema testova uopće, napišite nekoliko oko onoga što odlučuje o novcu ili podacima prije nego što dirnete kod; na njih ćete se oslanjati cijelu migraciju.
Zatim prevodite redoslijedom koji drži rizik niskim:
— počnite s podatkovnim klasama i sitnim pomagalima, gdje je pretvorba mehanička i razlika se lako čita;
— potom repozitoriji i mrežni sloj;
— potom view modeli i prezenteri;
— zaslone i sve što dira životni ciklus frameworka ostavite za kraj.
„Convert Java File to Kotlin File“ u Android Studiju odradi mehanički dio, ali njegov rezultat nikad ne uzimajte kao konačan. Sve tipove koji dolaze iz Jave označi kao platformske, čime tiho isključuje upravo onu sigurnost od null vrijednosti zbog koje ste i krenuli. Prođite pretvorenu datoteku i za svako polje odlučite što doista može biti null — pa to zapišite u tip. Baš je u tom prolazu većina koristi ove migracije.
Nekoliko stvari pretvarač napravi sintaktički ispravno, a smisleno pogrešno: `lateinit` po poljima koja bi bolje bila parametar konstruktora, nullable tipovi „za svaki slučaj“, `!!` ondje gdje pripada prava provjera i companion object umjesto onoga što su bili statički pomoćnici, a danas bi mogle biti funkcije najviše razine.
Kad je sloj u Kotlinu, koristite ono što jezik nudi umjesto da pišete Javu u sintaksi Kotlina: korutine umjesto lanaca callbackova i `AsyncTaska`, podatkovne klase umjesto ručno pisanih `equals`, sealed klase za stanje zaslona, funkcije proširenja umjesto vreće statičkih metoda u `Utils`.
Do kraja držite dva pravila. Svaki commit ostavlja aplikaciju spremnom za gradnju i objavu — nikakvih napola prevedenih grana koje žive tjednima. I mješovit projekt sasvim je dobro konačno stanje: ako je Java modul stabilan, razumljiv i rijetko se dira, njegova pretvorba ne donosi ništa osim rizika. Smisao migracije je sigurniji kod ondje gdje se mijenja, a ne zelena značka Kotlina na repozitoriju.