Clean Android

Kod: android-clean
Kategoria: Android
Forma: 40% wykłady / 60% warsztaty
Czas trwania: 3 dni
Grupa docelowa: developerzy
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.
Data i dokładny zakres do ustalenia podczas analizy przed-szkoleniowej.

Szkolenie zostało przygotowane z myślą o programistach Android, którzy szukają lepszych sposobów na strukturyzację architektury aplikacji i organizację porządku w kodzie.

Podczas szkolenia tworzona jest od podstaw aplikacja oparta o Clean Architecture oraz rozwiązania, które z niej wynikają: testability logiki biznesowej i modularyzacja.

Materiały wstępne

Przed szkoleniem możesz zapoznać się z serią naszych artykułów: Zaawansowane programowanie na platformie Android.

Wyróżniki szkolenia

Podczas zajęć możesz oczekiwać szczególnych akcentów położonych na poniższe aspekty:

  • Aspekty bezpieczeństwa
  • Architektura i wzorce projektowe
  • Bazujemy na Clean Architecture

Program Szkolenia

Program jest ramą w jakiej możemy się poruszać merytorycznie - program dla konkretnego szkolenia dedykowanego ustalamy z grupą na podstawie analizy przed-szkoleniowej.

  1. Testowanie
    1. Podstawy testowania
      1. Rodzaje testów i przykłady ich wykorzystania
      2. Zakres testów (Jednostkowe, Integracyjne, End 2 End)
      3. Rola testów (Akceptacyjne, Regresywne)
      4. Strategia budowania piramidy testów
    2. Projektowanie przypadków testowych
      1. Testowanie przypadków granicznych
      2. Nacisk na testy jednostkowe w celu osiągnięcia wysokiego pokrycia testami
      3. Rozwarstwienie logiki na Aplikacyjną i Domenową
      4. Modelowanie logiki przy pomocy Building Blocks z Domain Driven Design
      5. Powtarzalność testów, wyeliminowanie losowości z testów
      6. Najlepsze praktyki tworzenia przypadków testowych
    3. Testowanie jednostkowe
      1. Określanie zakresu jednostki i nazwy testów
      2. Implementacja testów (JUnit i Spock)
      3. Tworzenie własnych asercji
      4. Techniki: Mock, Stub, Fake (Mockito i Spock)
      5. Dobór technik do potrzeb - czym się kierować
      6. Zalety i wady testowania w izolacji
      7. Nagrywanie zachowania
      8. Weryfikacja wywołań
      9. Wprowadzenie do testowania z użyciem narzędzia Spock
    4. Android
      1. Testowanie w środowisku Androida
      2. Mockowanie w środowisku Androida
      3. Narzędzia, pułapki, najlepsze praktyki
      4. Tworzenie szybkich testów z wykorzystaniem biblioteki Robolectric
      5. Werbalizacja asercji z użyciem AssertJ oraz rozszerzenia AssertJ - Android
      6. Przegląd narzędzi wspomagających testowanie
  2. Tworzenie modularnego i testowalnego kodu
    1. Testability - podatność kodu na testy
      1. Jak pisać kod, który daje się testować
      2. Najlepsze praktyki: SOLID
      3. Wybrane wzorce projektowe, które zwiększają testability: Factory, Strategy, Value Object
      4. Code smell - "zapachy" kodu niepodatnego na testowanie
    2. Techniki Inversion of Control
      1. Dependency Injection (Dynamiczne wstrzykiwanie zależności)
        1. Wstrzykiwanie zaślepek na czas testów
      2. Events
        1. Separacja i decoupling testowanych modułów
        2. Luźne wiązanie komponentów z użyciem Event Bus
      3. Dobre praktyki i użyteczne wzorce projektowe na platformie Android
    3. Clean Architecture
      1. Separacja logiki aplikacji od frameworka
      2. Zastosowanie w praktyce zasad rządzących architekturą
      3. Dependency Inversion Principle w kontekście CA
      4. Testowanie poszczególnych elementów architektury
      5. Model View Presenter jako narzędzie do separacji widoku i logiki aplikacji
        1. integracja z Androidowym cyklem życia komponentów widoku
        2. współbieżne wykonywanie operacji w prezenterze i komunikacja z widokiem
  3. Czysty kod oraz poprawa wydajności w warstwie prezentacji aplikacji Androidowych
    1. Zaawansowane tworzenie interfejsu użytkownika.
      1. Tworzenie własnych elementów interfejsu użytkownika
        1. Agregacja wielu widoków w celu wielokrotnego użycia i zastosowania SRP w warstwie widoku
        2. Bezpośrednie rysowanie własnych elementów interfejsu użytkownika
        3. Stylowanie własnych widoków
        4. Obsługa interakcji użytkownika
        5. Zarządzanie stanem w widokach
    2. Optymalizacja działania aplikacji Android
      1. Profilowanie działania aplikacji
      2. Optymalizacje warstwy widoku
      3. Optymalizacje widoków opartych o adaptery (ListView / RecyclerView)
      4. Wykrywanie i zapobieganie wyciekom pamięci
      5. Wydajne zapisywanie stanu
      6. Optymalizacja kodu pod kątem maszyny wirtualnej Dalvik
  4. Obfuskowanie i optymalizowanie kodu przy użyciu narzędzia proguard


Pobierz program w formacie PDF

Trenerzy

Poznaj ekspertów, którzy mogą poprowadzić Twoje szkolenie.

Materiały związane ze szkoleniem

Idea renesansowej pracowni - Bottegi zakłada nieustanną pracę jej członków i dzielenie się jej wynikami.

Zapytaj o szkolenie

Imię i nazwisko:
Firma:
E-mail/Nr tel:
Temat:
Wiadomość:

Jeżeli preferujesz osobisty kontakt to zawsze możesz zadzwonić.

Iwona Sobótka

Koordynatorka szkoleń