Android - zaawansowane tworzenie aplikacji
Czas trwania szkolenia:3 dni (24h)
Kod kursu:ANDROID/ADVANCED
Poziom zaawansowania:
O szkoleniu Android - zaawansowane tworzenie aplikacji
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
Dla kogo?
- Szkolenie dedykowane dla osób znających platformę Android, chcących poznać bardziej zaawansowane aspekty, dotyczące między innymi architektury, dobrych praktyk, wykorzystania dostępnych narzędzi oraz SDK
Wymagania
- Od uczestników szkolenia wymagana jest praktyczna umiejętność programowania w języku Kotlin, a także podstawowa znajomość platformy Android
Zalety
- Rozbudowana część warsztatowa pomagająca zrozumieć i przyswoić omawiane zagadnienia
- Duża ilość kompletnych i życiowych przykładów, gotowych do wykorzystania podczas realizacji własnych aplikacji
- Praktyka przed teorią - wszystkie szkolenia technologiczne prowadzone są w formie warsztatowej. Konieczna teoria jest wyjaśniana na przykładzie praktycznych zadań
- Konkretne umiejętności - w ramach każdego szkolenia rozwijamy praktyczne umiejętności związane z daną technologią i tematyką
- Nauka z praktykami - wszyscy trenerzy na co dzień pracują w projektach, gwarantuje to dostęp do eksperckiej wiedzy i praktycznego know-how
Cele szkolenia
- Zrozumienie i przyswojenie wiedzy z zakresu budowania bezpiecznego kodu wielowątkowego/asynchronicznego
- Rozszerzenie wiedzy o zagadnienia zaawansowane m.in. poprawna architektura aplikacji, kotlin coroutines
- Przyswojenie wiedzy niezbędnej do efektywnego testowania aplikacji na poziomie jednostkowym i end2end
Program
Architektura aplikacji Android
- Czym jest architektura i jakie ma znaczenie?
- Spójność, niskie sprzężenie, programowanie z użyciem interfejsów
- Moduły i ich granice, mapowanie modelu danych między warstwami
- Poprawna organizacja kodu i komponentów w projekcie
- Wstrzykiwanie zależności z użyciem Dagger/Hilt
- Czysta architektura w praktyce (Clean architecture + MVVM)
- Przegląd podejść alternatywnych: Model-View-Presenter, Model-View-Intent
Kotlin coroutines
- Podstawy pracy z coroutines
- Zasięg i kontekst wykonania
- Programowanie współbieżne oparte o coroutines
- Wprowadzenie do structured concurrency
- Strumienie/sekwencje oparte o Channels oraz Flows
- Kotlin Context Receivers
- Obsługa wyjątków
- Współdzielenie stanu
Testowanie
- Dlaczego testowanie jest ważne?
- Piramida testów
- Metryki pokrycia testami
- Definicja i rola testów jednostkowych
- Czym jest jednostka kodu i co testować (podejście classic vs. mockist)?
- Unit tests vs. Instrumented unit tests
- Testowanie w praktyce z wykorzystaniem bibliotek JUnit i Kotest
- Obiekty zastępcze/izolacja zależności z wykorzystaniem Mockito oraz MockWebServer
- Praca z kodem asynchronicznym
- Definicja i rola testów end2end
- Wprowadzenie do testów opartych o Espresso - zasada działania, matchers, actions, assertions
- Espresso praktyce
- Espresso vs. inne rozwiązania: Barista, Kaspresso, BusyBee, Repeato, Waldo