Szkolenie: Android - zaawansowane tworzenie aplikacji
Zaawansowane tworzenie aplikacji na platformie Android
- Trenerzy praktycy
- Kameralne grupy
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
Architektura i jaj znaczenie dla projektu
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)
Programowanie reaktywne
Wprowadzenie do biblioteki RxJava/RxKotlin
Publikowanie i nasłuchiwanie zdarzeń
Operatory
Subjects
Zmiana kontekstu wykonania z wykorzystaniem Schedulers
Aplikacje bezstanowe i praktyczna praca ze strumieniami
Debugowanie i obsługa błędów
Kotlin coroutines
Idea i zasada działania
Podstawy pracy z coroutines
Suspended functions, builders, context, dispatchers, jobs
Obsługa wyjątków
Wprowadzenie do structured concurrency
Współdzielenie stanu i metody synchronizacji
Strumienie/sekwencje oparte o Channels oraz Flows
Testowanie
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 biblioteki JUnit
Obiekty zastępcze/izolacja zależności
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