1. díl - Úvod do jazyka Kotlin, platformy a IntelliJ

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

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?
4 hlasů
Autor se věnuje Javě, Kotlinu, PHP, C, HTML. Zajímá ho spíše game design.
Aktivity (8)

 

 

Komentáře

Avatar
Michael Škrášek:9. dubna 21:35

Paráda ... říkal jsem si kdy se tady objeví i Kotlin :)

Odpovědět  +1 9. dubna 21:35
I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it ... Bill Gates
Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:10. dubna 11:59

Přidány rozdíly mezi Javou a Kotlin

Odpovědět  +2 10. dubna 11:59
You can do anything you set your mind to.
Avatar
Atrament
Člen
Avatar
Odpovídá na David Čápka
Atrament:10. dubna 16:01

Java má lambda výrazy od verze 8

 
Odpovědět 10. dubna 16:01
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Atrament
David Čápka:10. dubna 19:21

To sice má, ale pokud vím, vypadají asi nějak takhle:

List<String> collect = data1.stream().map(account -> account.getName()).collect(Collectors.toList());

A v Kotlinu takhle:

val collect = data1.map { it.name }
Odpovědět  +1 10. dubna 19:21
You can do anything you set your mind to.
Avatar
Atrament
Člen
Avatar
Odpovídá na David Čápka
Atrament:10. dubna 20:05

Tak ten javovský příklad by asi byl správněji takto:

List<String> collect = data1.stream().map(Account::getName).collect(Collectors.toList());

ale to není pointa, ta je v tom, že Java prostě lambda výrazy má, takže tvrzení v článku, že je 'autoři Javy stále nepřidali' je nesprávné.

 
Odpovědět 10. dubna 20:05
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Atrament
David Čápka:10. dubna 20:06

Ok, doplnil jsem tam slovo jednodušší.

Odpovědět 10. dubna 20:06
You can do anything you set your mind to.
Avatar
Atrament
Člen
Avatar
 
Odpovědět 10. dubna 20:08
Avatar
Samuel Kodytek
Redaktor
Avatar
Odpovídá na Atrament
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
Programming is thinking, not typing.
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 8 zpráv z 8.