Close

Kotlin – pierwsze starcie – Barnsley Fern

Kotlin dołączył do oficjalnych języków programowania aplikacji na Androida, więc postanowiłam sobie, że coś w nim napiszę. Miało być szybkie i niekoniecznie funkcjonalne. Ot, taka apka żeby zapoznać się troszkę z nowym językiem programowania. Padło na Paproć Barnsleya.

Zaczęłam od ściągnięcia Android Studio w wersji 3.0, a taki jest efekt po kilku dniach klepania kodu 😉

To co jest fajne w Kotlinie to to, że nie muszę już wywoływać funkcji ‘findViewById(R.id.seekBar)’, tylko od razu mogę użyć ID – poniżej ustawianie listenera dla obiektu o id seekBar:

Z innych ciekawostek: ? po nazwie typu sprawia, że ten SeekBar będzie mógł być nullem.

Udało mi się stworzyć własną klasę FernView, dziedziczący po View. Wykorzystałam ją do rysowania na canvasie pikseli paprotki. Kotlin udostępnia szczególną składnię jeśli chodzi o konstruktory 😉

Różnica między var a val? val to takie javowe final. Jak raz się coś przypisze do takiej zmiennej to nie ma mowy żeby ją przepisać na coś innego.

Drugi konstruktor zawierający w parametrze Attribute set jest potrzebny po to, żeby można było ten widok zadeklarować w xmlu, który nie zmienia się niezależnie od tego, z którego języka się korzysta 😉

Samo tworzenie paproci nie jest jakoś specjalnie skomplikowane. Są 4 funkcje wyliczające współrzędne x i y kolejnego punktu. Funkcje wybierane są z odgórnie ustalonym prawdopodobieństwem.

I znowu dziwny operator: !! -> to wyrzuca Null Pointer Exception 😉

Jak wyglądają funkcje wyliczające współrzędne kolejnych punktów:

W programie użyłam znalezionego na angielskiej wikipedii zapisu prawdopodobieństw i składników wyrażeń.Dzięki temu mogłam dodawać kolejne wariacje paprotki bez dodawania za dużej liczby linijek kodu. I mogłam się przy okazji dowiedzieć jak używa się HashMap w Kotlinie:

Pierwsze wrażenie ogólnie dobre. Choć były momenty kiedy kompilator krzyczał do mnie: Array<Float> is not a FloatArray! Zastanawiam się jaką aplikację mogłabym jeszcze napisać z wykorzystaniem Kotlina, ale na ten moment brak mi pomysłów 😉

Cały kod dostępny na githubie: https://github.com/jezinka/BarnsleyFern

Wytłumaczenie tych wszystkich operatorów dotyczących null-safe tu: http://kotlinlang.org/docs/reference/null-safety.html#null-safety

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: