Java vs Kotlin Skal du bruke Kotlin til Android Development?

Når du tenker på Android-utvikling, er det sjansene for at et programmeringsspråk umiddelbart sprer seg: Java.

Selv om det er sant at flertallet av Android-apper er skrevet i Java, når det gjelder Android-utvikling, er Java ikke din bare alternativ.

Du kan skrive Android-apper på et hvilket som helst språk som kan kompilere og kjøre på Java Virtual Machine (JVM), og sluttbrukerne dine blir ingen klokere. Og ett JVM-kompatibelt programmeringsspråk som virkelig har fått oppmerksomheten til Android-fellesskapet, er Kotlin, et statisk skrevet programmeringsspråk fra JetBrains.

Hvis du har hørt gode ting om Kotlin og er interessert i å prøve det selv, så er du på rett sted. I denne tredelte serien skal jeg dele alt du trenger å vite for å kunne begynne å bruke Kotlin for Android-utvikling.

I denne første tråden ser jeg på hvorfor du som Android-utvikler kanskje vil vurdere å skifte bryteren fra Java i utgangspunktet, og deretter undersøker jeg fordeler og ulemper med å velge Kotlin som din Java-erstatning. Ved slutten av denne artikkelen vil du ha en god forståelse av nøyaktig hva Kotlin har å tilby, og vil vite om det passer deg. 

I del to ser vi på hvordan du konfigurerer Android Studio-installasjonen din for å støtte Kotlin og opprette en enkel Android-app som er skrevet helt i Kotlin. Med disse grunnene på plass, i tredje tredel ser vi på hvordan du overbelast din Android-utvikling, ved å bruke noen mer avanserte funksjoner i Kotlin-språket.

Hvorfor skal jeg gjøre bryteren fra Java?

Mens Java er et av verdens mest brukte programmeringsspråk, og det er ganske mye det offisielle språket i Android-utviklingen, er det mange grunner til at Java kanskje ikke alltid være det beste alternativet for din Android-prosjekter.

Det største problemet er at Java ikke er et moderne språk, og selv om Java 8 var et stort skritt fremover for plattformen, introduserte mange funksjoner som utviklere hadde ventet på (inkludert lambda-funksjoner), når det gjaldt Android bare støttet en delmengde av Java 8-funksjoner. Det virker lite sannsynlig at Android-utviklere vil høste de fulle fordelene med Java 8 når som helst snart, så i overskuelig fremtid hvis du vil bruke Java i Android-prosjektene dine, så er du ganske fast med Java 7.

Java som helhet har også noen ganske godt dokumenterte språkproblemer, inkludert endeløse prøve-å fange blokker, mangel på utvidbarhet, null-usikkerhet (og det beryktet NullPointerException), for ikke å nevne mangel på støtte for funksjonelle programmeringsfunksjoner. Selv om Java begynner å legge til noen funksjonelle programmeringselementer, for eksempel lambda-uttrykk og funksjonelle grensesnitt, er kjerne Java fortsatt et prosesspråk. Java-syntaksen er også ganske ordentlig, spesielt i forhold til mange moderne programmeringsspråk.

Fordeler med Kotlin

Så du vil kanskje vurdere å bytte til et av de mange moderne programmeringsspråkene som er designet for å kjøre på JVM. Selv om det ikke er mangel på språk som kompilerer til Java bytecode, er det noen faktorer som gjør Kotlin skiller seg ut fra mengden:

Utvekslingsmuligheter med Java

En av Kotlins største styrker som et potensielt alternativ til Java er det rene interoperabilitetsnivået mellom Java og Kotlin. Du kan til og med ha Java og Kotlin-kode som eksisterer side om side i samme prosjekt, og alt vil fortsatt kompilere perfekt. Nedenfor kan du se et eksempel på et prosjekt som består av en Java Aktivitet og en Kotlin aktivitet.


Faktisk, når ditt blandede Kotlin- og Java-prosjekt er kompilert, kan brukerne ikke fortelle hvilke deler av prosjektet du skriver i Java, og hvilke deler er skrevet i Kotlin.

Siden Kotlin og Java klasser kan eksistere side om side i samme prosjekt, kan du begynne å bruke Kotlin uten å måtte gjøre noe drastisk som å konvertere et helt prosjekt til Kotlin eller starte et nytt prosjekt spesielt slik at du kan prøve hånden din på Kotlin. 

Takket være dette interoperabilitetsnivået, hvis du har et prosjekt som du allerede jobber med, kan du prøve Kotlin i en liten del av det prosjektet uten å påvirke resten av koden din. Og hvis du bestemmer deg for at du vil fortsette å bruke Kotlin, kan du enten overføre prosjektets eksisterende Java-kode til Kotlin en fil om gangen, eller la prosjektets eldre Java-kode være uberørt og bare bruke Kotlin for de nye klassene og funksjonene.

Siden Kotlin er helt kompatibelt med Java, vil du også kunne bruke de fleste Java-biblioteker og -rammer i dine Kotlin-prosjekter - til og med avanserte rammer som er avhengige av annotasjonsbehandling.

Enkel læringskurve

Kotlin har som mål å være en forbedring for Java, i stedet for en fullstendig omskrivning, så mange av ferdighetene du har kjøpt og honed gjennom hele japansk karriere, bør fortsatt gjelde for dine Kotlin-prosjekter.

Kotlin er også designet for å ha en forsiktig læringskurve for Java-utviklere. Java-utviklere bør oppdage at det meste av Kotlin-syntakset kjenner seg kjent; for eksempel er koden som brukes til å lage en ny klasse i Kotlin veldig ligner på Java:

klasse MainActivity: AppCompatActivity () 

Kotlin er også designet for å være intuitiv og lett å lese, så selv om du gjøre støter på noen kode som er drastisk forskjellig, bør du likevel kunne forstå hva denne koden gjør.  

Kombiner det beste av funksjonell og prosessuell programmering

Det finnes for tiden en rekke programmeringsparadigmer som er i utbredt bruk, men når det gjelder spørsmålet om "hvilken tilnærming er best", er det ikke noe lett svar. Hvert programmeringsparadigm har sitt eget sett med sterke og svake sider, så mens det ikke er mangel på scenarier der funksjonell programmering har en fordel, er det også mange problemer hvor en prosessorisk tilnærming er mer effektiv.

Så hvorfor bør du velge mellom funksjonell og prosessorisk? Som mange moderne programmeringsspråk, har Kotlin som mål å bringe deg det beste fra begge verdener ved å kombinere begreper og elementer fra både prosessorisk og funksjonell programmering.

Første klasse Android Studio Support

Kotlin er utviklet av JetBrains, selskapet bak IntelliJ-IDE som Android Studio er basert på. Det er ingen overraskelse da Android Studio har utmerket støtte til Kotlin. Når du har installert Kotlin-pluginet, gjør Android Studio at du konfigurerer Kotlin i prosjektet så enkelt som å åpne noen menyer. 


Når du har konfigurert Kotlin-pluginet for Android Studio, har IDE ikke noe problem å forstå, kompilere og kjøre Kotlin-kode. Android Studio tilbyr også feilsøking, automatisk fullføring, kodenavigering, enhetstesting og full refactoring-støtte for Kotlin.

Når Android Studio-prosjektet ditt er konfigurert til å støtte Kotlin, kan du til og med konvertere en hel Java kildefil til en Kotlin-fil, med bare noen få museklikk.

Mer konsistent kode

Hvis du sammenligner en Java-klasse og en Kotlin-klasse som gir de samme resultatene, vil den som skrives i Kotlin, typisk være mye mer kortfattet og kompakt enn den som er skrevet i Java. Og som alle utviklere vet, betyr mindre kode mindre bugs!

For eksempel oppretter følgende Java-kode en aktivitet som består av en flytende handlingsknapp (FAB) som, når den er tappet, viser en snackbar som inneholder den nyttige meldingen Dette er en snackbar.

offentlig klasse MainActivity utvider AppCompatActivity @Override protected void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); Verktøylinjeverktøylinje = (Verktøylinje) findViewById (R.id.toolbar); setSupportActionBar (verktøy); FloatingActionButton myfab = (FloatingActionButton) findViewById (R.id.myfab); Myfab.setOnClickListener (ny View.OnClickListener () @Override public void onClick (View view) Snackbar.make (se, "Dette er en snackbar", Snackbar.LENGTH_LONG) .setAction ("Action", null) .show ););  

Kotlin-ekvivalenten oppnår det samme arbeidet i mindre kode, spesielt når det gjelder å lage FAB og sette inn onClickListener:

klassen MainActivity: AppCompatActivity () override fun onCreate (savedInstanceState: Bundle?) super.onCreate (savedInstanceState) setContentView (R.layout.activity_main) val toolbar = findViewById (R.id.toolbar) som verktøylinje setSupportActionBar (verktøylinje) val myfab = findViewById (R.id.myfab) som FloatingActionButton myfab.setOnClickListener view -> Snackbar.make (se, "Dette er en snackbar", Snackbar.LENGTH_LONG) .setAction ("Action", null) .show ()  

Begge kodestykker har nøyaktig samme utgang:


Kotlin er spesielt godt å redusere mengden av boilerplate-koden du trenger å skrive, noe som vil gjøre koding i Kotlin en mye mer fornøyelig opplevelse, sammenlignet med koding på flere verbale språk som Java. 

Spesielt kan Kotlin Android-utvidelser (som vi utforsker i del to) tillate deg å importere referansen til en visning i en aktivitetsfil, så du kan deretter arbeide med visningen som om den er en del av den aktiviteten. Dette betyr at du ikke lenger må identifisere hver visning ved hjelp av findViewById, som kan forvandle kode som:

TextView text = (TextView) findViewById (R.id.myTextView); text.setText ("Hello World"); 

Inn i mye mer kortfattet:

myTextView.setText ("Hello World")

Hva er fangst?

Ingen programmeringsspråk er perfekt, så selv om Kotlin har mye å tilby Android-utviklere, er det noen ulemper du trenger å huske på:

Ekstra Runtime Størrelse

Kotlin Standard Library og runtime vil øke størrelsen på din .apk. Selv om dette bare tilsvarer rundt 800KB, hvis søknaden din allerede er på den store siden, kan den ekstra 800KB tippe den over kanten og få brukerne til å tenke to ganger før du laster ned appen din.

Innledende lesbarhet av kode

Selv om Kotlins konsise syntaks er et av språkets største styrker, kan du i utgangspunktet finne noen Kotlin vanskelig å dechifere, bare fordi det er så mye som skjer i så lite kode. Java kan være mer verbose, men oppsiden er at alt er tydelig stavet ut, noe som betyr at ukjent Java-kode pleier å være lettere å dechifrere enn ukjent Kotlin.

Også, hvis brukt feil, kan Kotlins overbelastning av operatøren resultere i kode som er vanskelig å lese.

Mangel på offisiell støtte 

Kotlin kan ha utmerket støtte i Android Studio, men det er verdt å huske at Kotlin ikke er offisielt godkjent av Google.

Dessuten har Android Studio automatisk gjennomføring og kompilering en tendens til å løpe litt tregere når du jobber med Kotlin, sammenlignet med et rent Java-prosjekt.

Mindre fellesskap og mindre tilgjengelig hjelp

Siden Kotlin er et relativt nytt språk, er Kotlin-samfunnet fortsatt ganske lite, spesielt i forhold til samfunnet rundt mer etablerte språk som Java. Hvis du gjøre gjør byttet til Kotlin, da har du kanskje ikke tilgang til det samme antall opplæringsprogrammer, blogginnlegg og brukerdokumentasjon, og kan støte på mindre fellesskapsstøtte på steder som fora og Stack Overflow. På tidspunktet for skriving, søker etter Kotlin på Stack Overflow returnerer litt over 4.600 innlegg merket med Kotlin-sammenlignet med de fulle 1.000.000 + innleggene som inneholder Java stikkord.

Konklusjon

I det første innlegget i denne tredelte serien så vi på hvorfor du kanskje vil vurdere å bytte Java-delen av Android-utviklingen til et av de mer moderne, JVM-kompatible språkene. Vi tok også en nærmere titt på de unike fordelene og ulempene ved Kotlin som en potensiell Java-erstatning. 

Hvis du har veid opp fordeler og ulemper og besluttet å ta Kotlin for et spinn, så i del to av denne serien, viser jeg deg hvordan du bruker Android Studio til å lage en enkel Android-app, skrevet helt i Kotlin . Vi vil også se på hvordan du kan bruke Kotlin for å sørge for at du aldri trenger å skrive en annen findViewById en gang til! 

I mellomtiden kan du se noen av våre andre opplæringsprogrammer på Android-utvikling her på Envato Tuts+!

  • Forstå samtidighet på Android ved hjelp av HaMeR

    I denne opplæringen vil vi utforske HaMeR (Handler, Message and Runnable) rammeverket, en av de kraftigste samtidige modellene som er tilgjengelige på Android. Du vil ...
    Tin Megali
    Android SDK
  • Kom i gang med Firebase for Android

    Opprette en back-end-server krever et ferdighetssett som de fleste uavhengige apputviklere mangler. Heldigvis er det Firebase, en skybasert plattform som ...
    Ashraff Hathibelagal
    Android SDK
  • Android fra scratch: Bruke REST APIer

    I denne opplæringen skal jeg vise deg hvordan du bruker klassene og metodene som er tilgjengelige i Android SDK, for å koble til eksterne webservere og samhandle med ...
    Ashraff Hathibelagal
    Android SDK
  • Slik kommer du i gang med en Android App-mal

    CodeCanyon har hundrevis av Android-appmaler som du kan bruke til å hoppe på utviklingen av neste app. I denne veiledningen hjelper jeg deg med å komme i gang ...
    Ashraff Hathibelagal
    Android
  • Ta bilder med din Android-app

    Google Play-butikken har dusinvis av kameraprogrammer, hver av dem gjør det mulig å ta bilder eller gjøre noe unikt med bildene fra ...
    Ashraff Hathibelagal
    Android SDK