Szkolenie: Android - zaawansowane tworzenie aplikacji
Zaawansowane tworzenie aplikacji na platformie Android
2805 PLN+23% VAT (3450 PLN brutto / 1 os.)Czas trwania szkolenia:3 dni (24h)
Kod kursu:ANDROID/ADVANCED
Android - zaawansowane tworzenie aplikacji
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
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
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
Wymagania
Od uczestników szkolenia wymagana jest praktyczna umiejętność programowania w języku Kotlin, a także podstawowa znajomość platformy Android
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
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
Obsługa wyjątków
Współdzielenie stanu
Programowanie reaktywne
Wprowadzenie do biblioteki RxJava/RxAndroid
Publikowanie i nasłuchiwanie zdarzeń
Operatory umożliwiające m.in. transformację, filtrowanie i kombinowanie zdarzeń
Subjects
Zmiana kontekstu wykonania z użyciem Schedulers
Aplikacje bezstanowe i praca ze strumieniami
Debugowanie i obsługa błędów
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