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.
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.
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:
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.
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.
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.
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.
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")
Ingen programmeringsspråk er perfekt, så selv om Kotlin har mye å tilby Android-utviklere, er det noen ulemper du trenger å huske på:
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.
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.
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.
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.
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+!