Předvánoční Black Friday Předvánoční Black Friday
Až 80% zdarma! Předvánoční BLACK FRIDAY akce. Více informací

Lekce 1 - Úvod do jazyka Kotlin, platformy a IntelliJ

Kotlin Základy Úvod do jazyka Kotlin, platformy a IntelliJ American English version English version

Unicorn College ONEbit hosting Tento obsah je dostupný zdarma v rámci projektu IT lidem. Vydávání, hosting a aktualizace umožňují jeho sponzoři.

Vítejte v první lekci kurzu programování v jazyce Kotlin. Postupně se spolu prokousáme těmi nejzákladnějšími konzolovými programy až ke grafickým aplikacím pro platformu Android. V dnešním Kotlin tutoriálu si řekneme něco o historii jazyka, nainstalujeme jej a naprogramujeme svou první Kotlin aplikaci!

Historie jazyka Kotlin

Kotlin by se dal stručně představit jako modernější Java. V roce 2011 JetBrains, firma vyvíjející několik velmi populárních IDE, oznámila nový programovací jazyk pro JVM, běhové prostředí Javy. Aplikace v něm vytvořené tedy fungují všude, kde je nainstalována populární Java, což je jeden z důvodů, proč má smysl investovat do učení se Kotlinu svůj čas. Jeden z členů vývojářského týmu nového jazyka zdůvodnil svůj výtvor tím, že tehdejší náhrada za Javu, Scala, trpěla pomalou kompilací, tedy pomalým převodem Scaly do kódu pro Java prostředí, a mizernou podporou pro vývoj Android aplikací. Přestože Kotlin má jinou syntaxi, tak zkompilovaný kód je plně kompatibilní s Javou, proto se v jazyce Kotlin dají i používat Java knihovny. Od roku 2017 Kotlin je oficiální jazyk pro vývoj pro Android a vsadilo na něj hned několik velkých firem včetně Google. Protože se jedná o relativně nový jazyk, tak si s sebou z minulosti nenese nejrůznější problémy a nabízí řadu moderních přístupů.

Vlastnosti jazyka Kotlin

Programovací jazyk Kotlin

Po stránce návrhu se jedná o objektový, kompilovaný jazyk s typovou kontrolou. Poměrně blízko tak má k jazykům jako jsou Swift, Scala a jim podobným. Kotlin je od úplného začátku, kdy firma JetBrains oznámila jeho vývoj, open source a proto aplikace v něm napsané jdou spustit téměř na všech operačních systémech. Kotlin je zpětně kompatibilní.

V Kotlinu si můžete napsat cokoliv co byste napsali v jazyce Java. Chcete si napsat Android aplikaci? Použijete Kotlin. Chcete si napsat okenní aplikaci v JavaFX/Swing? Použijete Kotlin. Chcete si napsat grafickou hru? Použijete opět Kotlin.

Kotlin lze použít i na tvorbu webových aplikací. Existuje řada knihoven, které podporují Kotlin jako například Spring, Vert.x a nebo oficiální knihovna od JetBrains, Ktor. Pro psaní frontendu můžeme použít Kotlinx.html.

Jak již bývá zvykem u modernějších jazyků, jako např. u Dartu, Kotlin umožňuje své vlastní zdrojové kódy zkompilovat do jazyka JavaScript. Ať již z jakéhokoliv důvodu potřebujete vyvíjet v JavaScriptu, můžete psát v Kotlinu, který se vám poté do JavaScriptu zkompiluje. Tato možnost je v současné době ještě experimentální.

Intalace

Protože Kotlin běží na JVM, je zapotřebí mít nainstalovaný Java SDK (Klikneme na Accept License Agreement a zvolíme verzi podle našeho OS, nejčastěji asi "Windows x64"). Po instalaci Java SDK stačí pouze nainstalovat IDE, Intellij. Intellij má dvě verze, Ultimate Edition a Community Edition. Ultimate edition je placená a nabízí více možností pro vývojáře. Nám bohatě postačí Community Edition, které je zdarma.

Stažení IDE IntelliJ

Poté, co si stáhneme IntelliJ a spustíme instalační program, stačí jen klikat na tlačítko "Další". Po instalaci IntelliJ spusťte. Mělo by na nás vyskočit následující okno ohledně importování nastavení (např. klávesových zkratek) z jiného IDE. Import můžeme zamítnout.

Import nastavení do IntelliJ

Klikneme na "Ok" a dále vybereme vzhled našeho IDE.

Výběr vzhledu IDE IntelliJ

Vyberte si jaký vzhled vám vyhovuje a poté klikněte na "Next". S klikáním na "Next" pokračujeme dokud se nám nezobrazí následující okno:

IntelliJ Kotlin projekt

Kliknutím na "Create New Project" založíme nový projekt. Mělo by se nám zobrazit nové okno, kde po levé straně uvidíme Kotlin. Vybereme jej a klikneme na tlačítko "Next".

Nový Kotlin projekt v IntelliJ IDE

Jako jméno projektu vyplníme HelloWorld a klikneme na "Finish".

Dále je zapotřebí vytvořit Kotlin soubor, kam budeme psát náš kód. Klikneme pravým tlačítkem myši na složku src po levé straně a zvolíme 'New' -> 'Kotlin File/Class'.

Vytvoření nového Kotlin souboru

V dalším kroku souboru přiřadíme název Main.kt a potvrdíme "Ok".

Hello world

Je zarytým zvykem, že prvním programem v nějakém novém jazyce bývá tzv. Hello world. Jedná se o program, který jakýmkoli způsobem uživateli zobrazí hlášku "Hello world", případně nějaký podobný text.

Otevřeme náš Main.kt soubor a připíšeme do něj následující kus kódu:

fun main(args: Array<String>) {
    println("Hello, World!")
}

Kód definuje funkci main(), to je hlavní funkce, která se vždy spustí se startem programu. Asi tušíte, že fun označuje funkci. Část s args a Array zatím nemusíme řešit, je zde pro případ, kdybychom chtěli programu předat nějaké argumenty z příkazové řádky. Důležité jsou složené závorky { a }. Mezi ně (do funkce main()), budete v základních lekcích psát vždy svůj kód.

Kód v main() funkci vypisuje známý pozdrav do speciálního okna, které najdete pod editorem. Právě sem budete později také psát i vstup z klávesnice, na který budou programy z dalších lekcí reagovat. println() je funkce, která vypíše text do konzole. Funkce mohou obsahovat nějaké vstupní parametry, které se zadávají do závorky a jsou oddělené čárkou. V případě funkce println() je parametrem text k vypsání. Textu budeme říkat textový řetězec nebo jen řetězec (anglicky String) a budeme ho psát do uvozovek, aby tomu Kotlin rozuměl a nezaměňoval ho s jinými příkazy. Můžete si text zkusit upravit a vypsat tak nějakou svou hlášku. Pro tvorbu jiných programů samozřejmě řádek s výpisem tohoto textu odstraníme. main() funkci naopak u všech svých dalších programů ponecháme.

Svůj první program spustíme zeleným tlačítkem "Play" v horní liště. V konzoli níže se objeví vypsaný text.

Hello World v Kotlinu

Kotlin vs. Java

Tímto dnes skončíme. Již jste se skamarádili s IntelliJ a víte, jak snadno spustit Kotlin kód. Pro ty z vás, kteří přecházejí z Javy nebo mají hlubší povědomí o tom jak funguje, uvedu ještě rozdíly oproti Kotlin. Vy ostatní tuto pasáž ignorujte, zbytečně by vás zmátla a vše si vysvětlíme během kurzu.

Kotlin oproti Javě NEobsahuje

Následující funkcionality jazyka Java se časem ukázaly jako problematické a proto je Kotlin NEimplementoval:

  • Checked Exceptions
  • Primitivní typy (které nejsou třídy)
  • Statika
  • Neprivátní atributy
  • Wildcards u genericity
  • Ternární operátor

Kotlin oproti Javě obsahuje navíc

Následující funkcionality naopak autoři Javy stále nepřidali, jsou to:

  • Jednodušší lambda výrazy a inline funkce
  • Extension funkce
  • Null-safety (konec NullPointerEx­ception :) )
  • Smart casts
  • Řetězcové šablony
  • Vlastnosti (gettery/settery co se implementují samy)
  • Primární konstruktory
  • First-class delegation
  • Automatické odvozování datových typů
  • Singletony
  • Declaration-site variances a Type projections (generika)
  • Range expressions (rozsahy)
  • Přetěžování operátorů
  • Companion objects
  • Datové třídy
  • Oddělená rozhraní pro read-only a mutable kolekce
  • Coroutines

Nyní je to již opravdu vše. V příští lekci, Proměnné, typový systém a parsování v Kotlin, to bude zajímavější. Naučíme se pracovat s proměnnými a získávat vstup od uživatele.


 

 

Článek pro vás napsal Samuel Kodytek
Avatar
Jak se ti líbí článek?
11 hlasů
Autor se věnuje všem jazykům okolo JVM. Rád pomáhá lidem, kteří se zajímají o programování. Věří, že všichni mají šanci se naučit programovat, jen je potřeba prorazit tu bariéru, který se říká lenost.
Aktivity (12)

 

 

Komentáře
Zobrazit starší komentáře (6)

Avatar
Atrament
Člen
Avatar
Atrament:10. dubna 20:08

Dík:)

 
Odpovědět 10. dubna 20:08
Avatar
Samuel Kodytek
Šéfredaktor
Avatar
Samuel Kodytek:10. dubna 21:13

Ahoj, máš pravdu, Lambda funkce jsou od Java 8, ale je to spíš takový syntactic sugar než anonymní funkce.

V Javě se lambda funkce tvoří přes anonymní třídy, které implementují nějaký interface s jednou metodou a ten interface pak vytvoříš... Je to docela komplikovaný a zdlouhavý proces oproti Kotlinu, Swiftu, Scale atd.

Například v Kotlinu si můžeš definovat proměnou jako funkci, a nemusíš řešit žádný interface nic.

Proto bych lambda funkce nechal v tom porovnání :)

Odpovědět 10. dubna 21:13
There is more than one way to screw it
Avatar
nickname01
Člen
Avatar
nickname01:6. června 14:35

var moznost: String = "kompilace do js"

Tato možnost je v současné době ještě experimentální.

Znamena to nejake riziko pri pouzivani teto funkce?

Editováno 6. června 14:36
 
Odpovědět 6. června 14:35
Avatar
Samuel Kodytek
Šéfredaktor
Avatar
Odpovídá na nickname01
Samuel Kodytek:13. června 13:13

Znamená to, že "kompilace" do js nebude zatím moc stabilní. I když si myslím, že kotlinovskej interpret má už i nějakou stabilní verzi, ale jelikož se moc nezajímám o js tak mě tahle možnost nikdy moc nelákala a proto si nejsem 100% jistý.

Odpovědět  +1 13. června 13:13
There is more than one way to screw it
Avatar
Richard H.
Redaktor
Avatar
Richard H.:8. října 13:11

Co mají všichni pořád proti NullPointerEx­ception ?

Odpovědět 8. října 13:11
Malý užitečný manuál je vždy lepší než bichle k ničemu.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Richard H.
David Čápka:8. října 15:09

Podle dotazů to skoro vypada jako bys ještě nepracoval na projektu větších rozměrů. Když ti jde instance v parametrech přes 5 metod, které s ní manipuluji, a na konci máš null, tak je vážně opruz to hledat. A stává se to dost casto, jak je tam hodně souborů a pořád mezi nimi překlikavas, tak ti obcas něco uteče.

Odpovědět 8. října 15:09
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Richard H.
Redaktor
Avatar
Odpovídá na David Čápka
Richard H.:8. října 17:18

Netvrdím že je ta chyba není nepříjemná, nechápu však jak může kotlin něco takového jako null nemí.

Odpovědět 8. října 17:18
Malý užitečný manuál je vždy lepší než bichle k ničemu.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Richard H.
David Čápka:8. října 17:20

Ale umí, jenom má mechanismus k tomu, abys musel vždy ošetřit když tam ten null je.

Odpovědět  +1 8. října 17:20
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Richard H.
Redaktor
Avatar
Odpovídá na David Čápka
Richard H.:8. října 17:30

Jak přesně null přece jen může být kdekoliv.

Editováno 8. října 17:33
Odpovědět 8. října 17:30
Malý užitečný manuál je vždy lepší než bichle k ničemu.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Richard H.
David Čápka:8. října 17:45

Tak si to přečti, máš tu o tom kurz ;-)

Odpovědět 8. října 17:45
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 16. Zobrazit vše