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
- Rozszerzenie wiedzy o zagadnienia zaawansowane m.in. poprawna architektura aplikacji, testowanie, kotlin coroutines
- Poznanie istotnych elementów SDK takich jak Google Play Services czy Sensors API
- Nabycie wiedzy niezbędnej do tworzenia atrakcyjnego interfejsu użytkownika
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
- Structured concurrency
- Obsługa wyjątków
- Współdzielenie stanu
- Asynchronous Flows
- Channels
- Testowanie
Zaawansowane aspekty tworzenia interfejsu użytkownika
- Budowanie niestandardowych kontrolek
- Rysowanie z użyciem obiektu Canvas
- Wykorzystanie animacji
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