1. diel - Úvod do jazyka Kotlin, platformy a IntelliJ
Vitajte v prvej lekcii kurze programovanie v jazyku Kotlin. Postupne sa spolu prokousáme tými najzákladnejšími konzolovými programy až ku grafickým aplikáciám pre platformu Android. V dnešnom Kotlin tutoriálu si povieme niečo o histórii jazyka, nainštalujeme ho a naprogramujeme svoju prvú Kotlin aplikáciu!
História jazyka Kotlin
Kotlín by sa dal stručne predstaviť ako modernejší Java. V roku 2011 JetBrains, firma vyvíjajúce niekoľko veľmi populárnych IDE, oznámila nový programovací jazyk pre JVM, runtime prostredie Javy. Aplikácie v ňom vytvorené teda fungujú všade, kde je nainštalovaná populárny Java, čo je jeden z dôvodov, prečo má zmysel investovať do učenia sa Kotlinu svoj čas. Jeden z členov vývojárskeho tímu nového jazyka zdôvodnil svoj výtvor tým, že vtedajší náhrada za Javu, Scala, trpela pomalú kompilácií, teda pomalým prevodom Scaly do kódu pre Java prostredie, a mizernú podporou pre vývoj Android aplikácií. Hoci Kotlin má inú syntax, tak skompilovaný kód je plne kompatibilný s Javou, preto sa v jazyku Kotlin dajú aj používať Java knižnice. Od roku 2017 Kotlin je oficiálny jazyk pre vývoj pre Android a vsadilo na neho hneď niekoľko veľkých firiem vrátane Google. Pretože sa jedná o relatívne nový jazyk, tak si so sebou z minulosti nenesie najrôznejšie problémy a ponúka rad moderných prístupov.
Vlastnosti jazyka Kotlin
Po stránke návrhu sa jedná o objektový, kompilovaný jazyk s typovou kontrolou. Pomerne blízko tak má k jazykom ako sú Swift, Scala a im podobným. Kotlín je od úplného začiatku, kedy firma JetBrains oznámila jeho vývoj, open source a preto aplikácie v ňom napísané idú spustiť takmer na všetkých operačných systémoch. Kotlín je spätne kompatibilný.
V Kotlinu si môžete napísať čokoľvek čo by ste napísali v jazyku Java. Chcete si napísať Android aplikáciu? Použijete Kotlin. Chcete si napísať okenné aplikáciu v JavaFX / Swing? Použijete Kotlin. Chcete si napísať grafickú hru? Použijete opäť Kotlin.
Kotlín možno použiť aj na tvorbu webových aplikácií. Existuje rad knižníc, ktoré podporujú Kotlin ako napríklad Spring, Vert.x a alebo oficiálne knižnica od JetBrains, ktory. Pre písanie frontende môžeme použiť Kotlinx.html.
Ako už býva zvykom u modernejších jazykov, ako napr. U Dart, Kotlin umožňuje svoje vlastné zdrojové kódy skompilovať do jazyka JavaScript. Či už z akéhokoľvek dôvodu potrebujete vyvíjať v JavaScripte, môžete písať v Kotlinu, ktorý sa vám potom do JavaScriptu skompiluje. Táto možnosť je v súčasnej dobe ešte experimentálne.
Inštalácia
Pretože Kotlin beží na JVM, je potrebné mať nainštalovaný Java SDK (Klikneme na Accept License Agreement a zvolíme verziu podľa nášho OS, najčastejšie asi "Windows x64"). Po inštalácii Java SDK stačí len nainštalovať IDE, IntelliJ. IntelliJ má dve verzie, Ultimate Edition a Community Edition. Ultimate edition je platená a ponúka viac možností pre vývojárov. Nám bohato postačí Community Edition, ktoré je zadarmo.
Potom, čo si stiahneme IntelliJ a spustíme inštalačný program, stačí len klikať na tlačidlo "Ďalší". Po inštalácii IntelliJ spustite. Malo by na nás vyskočiť nasledujúce okno ohľadom importovanie nastavení (napr. Klávesových skratiek) z iného IDE. Import môžeme zamietnuť.
Klikneme na "Ok" a ďalej vyberieme vzhľad nášho IDE.
Vyberte si aký vzhľad vám vyhovuje a potom kliknite na "Next". S klikaním na "Next" pokračujeme kým sa nám nezobrazí nasledujúce okno:
Kliknutím na "Create New Project" založíme nový projekt. Malo by sa nám zobraziť nové okno, kde po ľavej strane uvidíme Kotlin. Vyberieme ho a klikneme na tlačidlo "Next".
Ako meno projektu vyplníme HelloWorld
a klikneme na
"Finish".
Ďalej je potrebné vytvoriť Kotlin súbor, kam budeme písať náš kód.
Klikneme pravým tlačidlom myši na priečinok src/
po ľavej
strane a zvolíme 'New' -> 'Kotlin File / Class'.
V ďalšom kroku súboru priradíme názov Main.kt
a potvrdíme
"Ok".
Hello world
Je zarytým zvykom, že prvým programom v nejakom novom jazyku býva tzv. Hello world. Ide o program, ktorý akýmkoľvek spôsobom užívateľovi zobrazí hlášku "Hello world", prípadne nejaký podobný text.
Otvoríme náš Main.kt
súbor a pripíšeme do neho
nasledujúce kus kódu:
fun main(args: Array<String>) {
println("Hello, World!")
}
Kód definuje funkciu main()
, to je hlavné funkcie, ktorá sa
vždy spustí so štartom programu. Asi tušíte, že fun
označuje
funkciu. Časť s args
a Array
zatiaľ nemusíme
riešiť, je tu pre prípad, keby sme chceli programu odovzdať nejaké
argumenty z príkazového riadku. Dôležité sú zložené zátvorky
{
a }
. Medzi ne (do funkcie main()
),
budete v základných lekciách písať vždy svoj kód.
Kód v main()
funkciu vypisuje známy pozdrav do špeciálneho
okna, ktoré nájdete pod editorom. Práve sem budete neskôr tiež písať aj
vstup z klávesnice, na ktorý budú programy z ďalších lekcií reagovať.
println()
je funkcia, ktorá vypíše text do konzoly. Funkcia
môžu obsahovať nejaké vstupné parametre, ktoré sa zadávajú do zátvorky
a sú oddelené čiarkou. V prípade funkcie println()
je
parametrom text k vypísanie. Texte budeme hovoriť textový reťazec alebo len
reťazec (anglicky String
) a budeme ho písať do úvodzoviek, aby
tomu Kotlin rozumel a nezamieňal ho s inými príkazmi. Môžete si text
skúsiť upraviť a vypísať tak nejakú svoju hlášku. Pre tvorbu iných
programov samozrejme riadok s výpisom tohto textu odstránime.
main()
funkciu naopak pri všetkých svojich ďalších programov
ponecháme.
Svoj prvý program spustíme zeleným tlačidlom "Play" v hornej lište. V konzole nižšie sa objaví vypísaný text.
Kotlín vs. Java
Týmto dnes skončíme. Už ste sa skamarátili s IntelliJ a viete, ako ľahko spustiť Kotlin kód. Pre tých z vás, ktorí prechádzajú z Javy alebo majú hlbší povedomie o tom ako funguje, uvediem ešte rozdiely oproti Kotlin. Vy ostatní túto pasáž ignorujte, zbytočne by vás zmiatla a všetko si vysvetlíme počas kurzu.
Kotlín oproti Jave neobsahujú
Nasledujúce funkcionality jazyka Java sa časom ukázali ako problematické a preto je Kotlin neimplementovala:
- checked Exceptions
- Primitívne typy (ktoré nie sú triedy)
- statika
- Neprivátní atribúty
- Wildcards u genericity
- ternárne operátor
Kotlín oproti Jave obsahuje navyše
Nasledujúce funkcionality naopak autori Javy stále nepridali, sú to:
- Jednoduchšie lambda výrazy a inline funkcie
- extension funkcie
- Null-safety (koniec NullPointerException )
- smart Casts
- reťazcové šablóny
- Vlastnosti (Getter / setter čo sa implementujú samy)
- primárne konstruktory
- First-class delegation
- Automatické odvodzovanie dátových typov
- Singleton
- Declaration-site variances a Type projections (generiká)
- Range expressions (rozsahy)
- preťažovanie operátorov
- Companion objects
- dátové triedy
- Oddelená rozhranie pre read-only a mutable kolekcie
- Coroutines
Teraz je to už naozaj všetko. V budúcej lekcii, Premenné, typový systém a parsovanie v Kotlin , to bude zaujímavejšie. Naučíme sa pracovať s premennými a získavať vstup od užívateľa.