Hello Kotlin! Jak zacząć z Kotlinem? Narzędzia, skróty i podpowiedzi


  • Podziel się Google+

W poprzednim wpisie wyjaśniałem, dlaczego uważam, że Kotlin to przyszłość programowania na Androida. Jeśli czytasz ten artykuł, istnieje szansa, że Cię przekonałem.
Chciałbyś dowiedzieć się, jak zacząć pracę z Kotlinem? Zapraszam do lektury dzisiejszego wpisu.

Hello, world! This is Kotlin

Jeśli jeszcze nigdy nie miałeś okazji pracować w Kotlinie, jednym z narzędzi, które pomoże Ci napisać pierwszą linijkę kodu będzie Kotlin Playground.
Jest to sandbox, w którym możecie przeglądać przykładowy kod i wypróbować pierwsze polecenia. Zobaczmy pokrótce, jak wygląda praca z tym narzędziem.

Wchodzimy na https://play.kotlinlang.org/. Naszym oczom ukazuje się bardzo podstawowe środowisko deweloperskie, w którym możemy wklepać kod:

Aby wypróbować działanie narzędzia i wykonać polecenie „Hello, world!!!”, nie zmieniamy nic, tylko klikamy przycisk [Play] w prawym górnym rogu okna. Wszystkie polecenia przetwarzane są w czasie rzeczywistym w JavaScripcie, bez dodatkowych kompilacji.

Teraz stwórzmy sobie zmienną name, jak na poniższym zrzucie ekranu. Zobaczymy, że środowisko od razu podsuwa nam podpowiedzi co do wpisywanych wartości i ostrzega o błędach w kodzie, wyjaśniając ich przyczynę.

C:\Users\Asia\AppData\Local\Temp\SNAGHTMLc031f52.PNG

Naprawiam błąd, podając wartość zmiennej, na przykład val name = ”Sylwester”, a dodatkowo w zwracanym tekście wykorzystam funkcjonalność sklejania stringów, do czego użyję symbolu dolara $. 

W cudzysłowie po frazie Hello, world!!! wpisuję symbol dolara i precyzuję, że chciałbym dokleić do zwracanego stringa właśnie zmienną name.

W rezultacie u dołu ekranu wykonuje mi się kod Hello, world!!!Sylwester.

Kotlin Playground – kiedy stosować?

Chociaż Kotlin Playground warto znać, nie przywiązujcie się do niego zbytnio. Jak wskazuje sam URL strony (play.kotlinlang.org), to nie jest narzędzie do poważnych projektów, a raczej środowisko do zabawy, eksperymentowania i stawiania pierwszych kroków w Kotlinie. 

Przyda się, kiedy będziecie chcieli bezpiecznie coś przetestować, wypróbować fragment kodu, stworzyć tablicę z wartościami, nie mając dostępu do właściwego IDE. W innym wypadku posłużycie się „prawdziwymi” Kotlinowymi narzędziami. Dzisiaj poznamy pierwsze z nich.

Uczymy się Kotlina – środowisko IntelliJ IDEA

Podstawowym narzędziem do pracy z Kotlinem jest środowisko IntelliJ IDEA. Występuje ono w dwóch dystrybucjach, płatnej Ultimate oraz darmowej Community. Na początek spokojnie wystarczy ta druga. 

Aby zacząć pracę ze środowiskiem, wchodzimy na stronę https://www.jetbrains.com/idea/ i klikamy [Download]. Pobierze się paczka, którą należy rozpakować i zainstalować.

Po zainstalowaniu i odpaleniu programu wybieramy opcję Create New Project.

W oknie, które się otworzy, wybieramy Kotlin Kotlin/JVM. Jak widzimy, do wyboru mamy także Kotlina JavaScriptowego, Kotlina generującego kod do aplikacji natywnych, itd.

W kolejnym kroku nadajemy projektowi nazwę, u nas będzie to hellokotlin, oraz wybieramy katalog, w którym znajduje się SDK.

Po zakończeniu konfiguracji otrzymujemy widok bardzo podobny do tego, który znamy z Android Studio. Widzimy w nim zestaw katalogów, min. src, w którym znajdują się źródła.

Zaczniemy właśnie od tego katalogu. Klikamy na niego za pomocą prawego przycisku myszy i wybieramy New → Kotlin File/Class. Następnie w oknie dialogowym wpisujemy nazwę katalogu i wciskamy [OK]. Utworzy się nowy katalog.

Zanim wykonamy polecenie „Hello, world” wewnątrz nowego katalogu, warto zwrócić uwagę na dwie kwestie związane z właściwościami Kotlina.

Kotlin vs. Java – podstawowe różnice

W Kotlinie operujemy plikami. Każdy plik odpowiedzialny jest za kawałek kodu, ale inaczej niż w Javie, w której istnieje silna zależność pomiędzy nazwą pliku a klasą, jaką on opisuje, tutaj możemy do pliku wrzucić dowolny kod. 

Kotlin vs. Java – pakiety

Podobną swobodą charakteryzuje się zarządzanie pakietami. Wewnątrz domyślnego katalogu w katalogu src możemy stworzyć jakikolwiek plik, klasę lub funkcję i dowolnie określić ich pakiet, na przykład:

package pl.szkoleniaandroid.hellokotlin

Teraz niezależnie od tego, że plik, w którym stworzyliśmy nasz pakiet znajduje się w katalogu głównym src, klasa i funkcje, które utworzymy w tym pliku, będą traktowane jako kod znajdujący się w pakiecie pl.szkoleniaandroid.hellokotlin.

Pomimo tej dowolności, warto zachować konsekwentne nazewnictwo i strukturę, aby ułatwić sobie zarządzanie plikami.

Kotlin vs. Java – tworzenie obiektów

W Javie wygląda to tak: tworzymy klasę, wewnątrz której musimy stworzyć metodę main. W Kotlinie metoda ta może istnieć w dowolnym miejscu.

W naszym katalogu wpisujemy main i klikamy tabulator. System automatycznie rozpozna polecenie i utworzy funkcję:

Z lewej strony funkcji pojawi się zielona strzałka (1). Po jej naciśnięciu w górnej sekcji okna wyświetla się kod, który możemy uruchomić (2). Dokonujemy wyboru, a system skompiluje kod i wykona metodę (3).

Wyświetlanie kodu

W Kotlinie również wyświetlanie kodu nie sprawia żadnej trudności. Używamy do tego metody print.

Wyświetlimy zatem nasz string „Hello Kotlin” i dodamy do niego tekst. Wykorzystamy do tego celu formatowanie w postaci symbolu dolara i nawiasów $(). W nawiasy możemy ująć np. nazwę zmiennej lub fragment wyrażenia.

fun main()   {
     print("Hello Kotlin ${3 * 4}")
}

W tym wypadku system ma najpierw wykonać obliczenie 3*4, a następnie zamienić je na string i zwrócić wraz ze stringiem „Hello Kotlin”. 

Hello Kotlin 12

Podglądamy kod w Kotlinie

Funkcjonalnością, która zdecydowanie nam się przyda przy pracy z Kotlinem jest możliwość podejrzenia, jak będzie wyglądał nasz kod zwracany w Javie. Można to zrobić zarówno w IntelliJ IDEA jak i w Android Studio.

W menu nawigacji wybieramy Tools → Kotlin → Show Kotlin Bytecode

Po wyborze polecenia, z prawej strony panelu wyświetli nam się kod bajtowy zawartości naszego katalogu.

C:\Users\Asia\AppData\Local\Temp\SNAGHTMLc908dce.PNG

Gdy klikniemy na [Decompile], w głównym oknie podejrzymy kod Javowy.

Widzimy tu na przykład, że na podstawie nazwy naszego Kotlinowego pliku HelloKotlin.kt w Javie została wygenerowana klasa HelloKotlinKt, do której wrzucono funkcję main.

Zauważmy też, że wywołanie public static void jest nadal generowane.

Dlaczego nie Android Studio?

Niektórzy z Was zapytają, czemu do nauki Kotlina rekomenduję IntelliJ IDEA, a nie Android Studio. Android Studio oczywiście ofiaruje wsparcie dla Kotlina, jednak kiedy dopiero zaczynamy pracę z tym językiem, najłatwiej moim zdaniem będzie nam go opanować w IntelliJ IDEA. 

Możemy tam stworzyć projekt czysto Kotlinowy i uczyć się na jego przykładzie. Poza tym środowisko IntelliJ IDEA jest od Android Studio lżejsze i szybsze oraz pozwala na łatwe zarządzanie projektami. Doskonale nadaje się do stawiania pierwszych kroków z Kotlinem.

Hello i co dalej?

Kiedy już opanujecie podstawy Kotlina, zachęcam oczywiście do korzystania również z Android Studio. W dalszych artykułach pokażę Wam, jak to robić i ujawnię kilka kolejnych przydatnych sztuczek i narzędzi. 

Jeśli macie jakieś pytania odnośnie dzisiejszej lekcji lub całego kursu Kotlina, zachęcam do kontaktu (szkolenia@szkoleniaandroid.pl). Do usłyszenia!