Szkolenie dostępne na zamówienie

Szkolenie: Programowanie w języku Kotlin

Szkolenie Programowanie w języku Kotlin to praktyczny i ambitny kurs dla programistów, który uczy nowoczesnych technik, idiomów i wzorców Kotlin - od podstaw składni i programowania obiektowego, przez programowanie funkcyjne, asynchroniczność z korutynami i Flow, projektowanie własnych DSL, aż po testowanie i utrzymanie jakości kodu - przygotowując do tworzenia wydajnych, bezpiecznych i czytelnych aplikacji na JVM, Androida i inne platformy

  • Trenerzy praktycy
  • Kameralne grupy

Czas trwania szkolenia:3 dni (24h)

Poziom zaawansowania:

Kod kursu:KOTLIN/PROG

tworzenie-aplikacjijezyk-kotlinprogramowanie-kotlin

Szkolenie na zamówienie

  • Dostosowany program
  • Indywidualna wycena
  • Dowolny termin
Zapytanie o szkolenie

Programowanie w języku Kotlin

Cele szkolenia

  • Szkolenie przygotowuje do samodzielnego projektowania i implementowania aplikacji w języku Kotlin z wykorzystaniem nowoczesnych wzorców programistycznych

  • Szkolenie uczy stosowania idiomatycznych rozwiązań Kotlin, w tym obsługi null safety, rozszerzeń, programowania funkcyjnego oraz integracji z innymi technologiami

  • Szkolenie przygotowuje do tworzenia kodu współbieżnego i asynchronicznego z użyciem coroutines, structured concurrency oraz reaktywnych strumieni Flow

  • Szkolenie pokazuje, jak budować czytelne, type-safe DSL oraz świadomie wykorzystywać zaawansowane elementy systemu typów Kotlin

  • Szkolenie uczy testowania kodu (w tym asynchronicznego) i utrzymania jego jakości z użyciem narzędzi statycznej analizy oraz pomiaru pokrycia testami

  • Szkolenie rozwija umiejętność analizy i refaktoryzacji kodu w celu zwiększenia jego czytelności, bezpieczeństwa i testowalności


Dla kogo?

  • Programiści Java z podstawowym doświadczeniem, chcący rozszerzyć kompetencje o nowoczesny język Kotlin

  • Programiści aplikacji mobilnych, szczególnie na platformę Android, zainteresowani efektywnym i bezpiecznym kodowaniem

  • Osoby posiadające podstawową znajomość programowania obiektowego, chcące poznać praktyczne zastosowania Kotlin


Efekty kształcenia

  • Uczestnik projektuje aplikacje wykorzystujące idiomy i wzorce Kotlin

  • Uczestnik analizuje i wdraża mechanizmy null safety oraz rozszerzenia funkcjonalności

  • Uczestnik implementuje logikę biznesową z użyciem programowania obiektowego i funkcyjnego

  • Uczestnik tworzy aplikacje współbieżne i asynchroniczne z użyciem korutyn, Flow oraz structured concurrency

  • Uczestnik projektuje czytelne, type-safe DSL wykorzystujące lambda with receiver i type-safe builders

  • Uczestnik integruje kod Kotlin z istniejącymi rozwiązaniami Java

  • Uczestnik pisze testy jednostkowe, właściwościowe oraz integracyjne (Kotest, MockK, Testcontainers), w tym dla kodu asynchronicznego

  • Uczestnik testuje i refaktoryzuje kod zgodnie z najlepszymi praktykami

  • Uczestnik konfiguruje środowisko pracy dla projektów Kotlin


Wymagania

  • Podstawowa umiejętność programowania w dowolnym języku obiektowym


W cenie otrzymasz:

  • Materiały szkoleniowe

  • Certyfikat ukończenia szkolenia

  • W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki

Program szkolenia

Pobierz program w PDF

Wprowadzenie do języka Kotlin

  • Charakterystyka, możliwości i zastosowanie języka Kotlin

  • Środowisko pracy dewelopera i jego konfiguracja

  • REPL, scratch files, Kotlin Playground

  • Typy danych i konwersje

  • Zmienne, stałe, lateinit

  • Operatory

  • Instrukcje sterujące

  • Pętle i zakresy

  • Funkcje top-level, lokalne, infix, vararg, parametry domyślne i nazwane

  • Pakiety, importy, type aliases

  • String templates i raw strings

  • Istotne idiomy programistyczne

Programowanie obiektowe i system typów

  • Omówienie/przypomnienie najważniejszych pojęć z OOP

  • Klasy, konstruktory główne i pomocnicze, bloki init

  • Interfejsy

  • Specjalne typy klas (Data, Sealed, Nested, Inner, Enum, Value/Inline)

  • Hermetyzacja i kontrola dostępu - modyfikatory widoczności

  • Delegacja na poziomie klas i właściwości

  • Rozszerzenia typów - funkcje i właściwości rozszerzające, scope functions

  • Typy generyczne, wariancja (in/out), reified types

  • Objects, Companion Objects, idiomatyczne wzorce singleton i factory

  • Weryfikacja i rzutowanie typów - smart casts, is/as

  • Porównywanie obiektów - equals/hashCode, równość strukturalna vs referencyjna

  • Null safety i platform types przy współpracy z Javą

Biblioteka standardowa i interoperacyjność

  • Najważniejsze elementy SDK

  • Praca z kolekcjami - immutable vs mutable, operacje (map, filter, fold, groupBy, partition)

  • Sequences vs Collections - leniwa ewaluacja i wydajność

  • Obsługa wyjątków - try/catch jako wyrażenie, typ Result

  • Typy opcjonalne i bezpieczna praca z null

  • Adnotacje i ich wykorzystanie

  • Refleksja - KClass, KProperty, KFunction

  • Przeciążanie operatorów i konwencja invoke

  • Praca z datą/czasem

  • Interoperacyjność z Javą

Asynchroniczność i współbieżność z coroutines

  • Wątki vs coroutines - po co i kiedy

  • suspend functions i mechanizm Continuation

  • CoroutineScope, CoroutineContext, Dispatchers

  • Structured concurrency - launch, async, await, runBlocking

  • Job, Deferred, zarządzanie cyklem życia

  • Anulowanie coroutines i obsługa wyjątków

  • Channels - komunikacja między coroutines, producer/actor pattern

  • Flow - reaktywne strumienie cold

  • Operatory Flow (map, filter, transform, flatMapConcat/Merge/Latest, zip, combine, debounce)

  • StateFlow i SharedFlow - hot streams, replay, conflation

  • Cold vs hot streams - kiedy czego używać

  • Testowanie kodu z coroutines

Tworzenie DSL i zaawansowane elementy systemu typów

  • Inline functions, noinline, crossinline, reified

  • Value classes - lekkie typy domenowe i wydajność

  • Lambda with receiver i type-safe builders

  • Operator overloading w służbie DSL

  • Adnotacja @DslMarker - kontrola zasięgu DSL

  • Praktyczne przykłady - HTML builder, konfiguracja w stylu Gradle, kotlinx.html

  • Projektowanie własnego DSL na bazie domeny biznesowej

  • Context receivers / context parameters - context-oriented programming (opcjonalnie)

Testowanie i jakość kodu

  • JUnit z Kotlinem - konfiguracja i idiomy

  • Kotest - style testów (FunSpec, BehaviorSpec), assertions, data-driven testing

  • Property-based testing z Kotest

  • MockK - mocki dla finalnych klas, relaxed mocks, coEvery dla suspend

  • Statyczna analiza kodu - ktlint i detekt

  • Code coverage z Kover

Autorem szkolenia jest Łukasz Andrzejewski

Od ponad 17 lat z pasją dzielę się wiedzą jako trener, wspierając rozwój kompetencji technologicznych wśród specjalistów IT na różnych etapach ich kariery. W ostatnich 5 latach przeszkoliłem ponad 2000 osób, prowadząc szkolenia zarówno otwarte, jak i dedykowane, dla czołowych firm z sektorów bankowości, ubezpieczeń i IT – m.in. Santander Bank Polska, ERGO Hestia, Asseco Poland oraz Orange. Specjalizuję się w szerokim zakresie technologii – od rozwiązań z ekosystemu Java, przez nowoczesny frontend,…

Wybrane opinie

Przeczytaj pozytywne opinie pochodzące z ankiet satysfakcji z naszych szkoleń wypełnianych wyłącznie przez ich uczestników po realizacji usługi

4.8
Ocena pochodzi ze średniej ocen Sages w serwisie Google i nie jest weryfikowanaŚrednia ocen Sages w serwisie Google Ocena pochodzi ze średniej ocen Sages w serwisie Google i nie jest weryfikowana

29.06.2023

Uczestnik szkoleniaProgramowanie w języku Kotlin

Trener dostosowywał materiał do kursantów. Bardzo merytorycznie poprawadzone szkolenie.

Więcej opinii