Bądźmy w kontakcie

Plan Szkolenia

Wprowadzenie

Tydzień 1: Zaawansowane koncepcje Swift, Kotlin i JavaScript

  • Swift (iOS)
    • Zaawansowane funkcje: Domknięcia, przechwytywanie wartości, funkcje wyższego rzędu
    • Programowanie zorientowane na protokoły i generyki
    • Zarządzanie pamięcią z ARC (Automatic Reference Counting)
  • Kotlin (Android)
    • Funkcje rozszerzeń i biblioteka standardowa Kotlin
    • Korutyny do programowania asynchronicznego
    • Klasy zapieczętowane, enums i zaawansowane obsługiwanie błędów
  • JavaScript (React Native)
    • Zaawansowane funkcje ES6+: Destrukturyzacja, async/await, obietnice
    • Koncepcje programowania funkcyjnego w JavaScript
    • Praca z bibliotekami stron trzecich w React Native

Tydzień 2: Architektura aplikacji mobilnych i wzorce projektowe

  • MVVM (Model-View-ViewModel) dla iOS i Android
    • Zrozumienie architektury MVVM dla iOS (Swift) i Android (Kotlin)
    • Implementowanie ViewModels i obserwowanie danych z LiveData (Android) i Combine (iOS)
    • Programowanie reaktywne z RxSwift i RxKotlin
  • Architektura oparta na komponentach w React Native
    • Zrozumienie cyklu życia komponentów i hooków
    • Najlepsze praktyki w zarządzaniu stanem i właściwościami na dużą skalę
    • Używanie React Context API do globalnego zarządzania stanem

Tydzień 3: Zaawansowane koncepcje sieciowe

  • Sieci w iOS (Swift)
    • Praca z URLSession do niestandardowych żądań sieciowych
    • Zaawansowane wywołania REST API i obsługa błędów
    • Praca z Codable i parsowaniem JSON
    • Najlepsze praktyki w bezpiecznej komunikacji API (SSL pinning, OAuth)
  • Sieci w Android (Kotlin)
    • Retrofit do wykonywania wywołań API i obsługi odpowiedzi
    • Zaawansowana obsługa błędów API i mechanizmy ponawiania
    • Używanie Gson lub Moshi do parsowania JSON
    • Bezpieczna komunikacja przy użyciu HTTPS i uwierzytelniania OAuth

Tydzień 4: Sieci w React Native

  • Integracja API z Axios i Fetch
    • Zaawansowana integracja API z Axios i Fetch
    • Strategie obsługi błędów i ponawiania w żądaniach sieciowych
    • Praca z uwierzytelnianiem (JWT, OAuth)
  • WebSockets i komunikacja w czasie rzeczywistym
    • Wprowadzenie do WebSockets w React Native
    • Tworzenie funkcji czatu lub powiadomień w czasie rzeczywistym z połączeniami WebSocket
    • Zarządzanie trwałymi połączeniami i aktualizacjami danych

Tydzień 5: Zaawansowane techniki trwałości danych

  • Core Data i SQLite (iOS)
    • Zaawansowane relacje, pobieranie i zapytania w Core Data
    • Bezpośrednie używanie SQLite w aplikacjach iOS i zarządzanie połączeniami z bazą danych
    • Efektywne zarządzanie danymi i optymalizacja
  • Room Persistence i SQLite (Android)
    • Zaawansowane relacje i zapytania w bazie danych Room
    • Zarządzanie dużymi zbiorami danych i optymalizacja wydajności bazy danych
    • Używanie ProGuard do zabezpieczania struktur bazy danych
  • Firebase do przechowywania w chmurze (iOS i Android)
    • Integracja z Firebase do zarządzania bazą danych w czasie rzeczywistym
    • Najlepsze praktyki w synchronizacji danych lokalnych i chmurowych

Tydzień 6: Zaawansowane zarządzanie stanem w React Native

  • Redux do zarządzania stanem
    • Zaawansowane koncepcje Redux: Middleware, Thunks i Sagas
    • Optymalizacja Redux pod kątem wydajności i skalowalności
  • Recoil do zarządzania stanem
    • Wprowadzenie do Recoil: Bardziej elastyczna alternatywa dla Redux
    • Zarządzanie stanem na dużą skalę w różnych komponentach
    • Efektywne aktualizacje stanu i atomowe zarządzanie stanem

Tydzień 7: Zaawansowane animacje w iOS i Android

  • iOS (Swift)
    • Core Animation: Animowanie widoków, warstw i przejść
    • UIKit Dynamics: Tworzenie animacji opartych na fizyce
    • Niestandardowe przejścia i animacje między kontrolerami widoków
  • Android (Kotlin)
    • MotionLayout do tworzenia złożonych animacji
    • TransitionManager i przejścia z udziałem elementów
    • Animacje właściwości dla skalowania, obrotu i zmian alfa widoków

Tydzień 8: Animacje i UI/UX w React Native

  • Animacje w React Native
    • Używanie API Animated i Reanimated do złożonych animacji
    • Implementowanie gestów i interakcji przy użyciu React Native Gesture Handler
    • Najlepsze praktyki w tworzeniu wydajnych animacji w React Native
  • Tworzenie niestandardowych komponentów UI
    • Tworzenie wielokrotnego użytku i konfigurowalnych komponentów w React Native
    • Implementowanie responsywnych projektów z użyciem mediów zapytań i flexbox

Tydzień 9: Integracja modułów natywnych i funkcji urządzeń

  • Dostęp do natywnych funkcji urządzeń
    • Zaawansowane użycie kamery, geolokalizacji, Bluetooth i czujników
    • Tworzenie natywnych modułów w Swift i Kotlin do integracji z React Native
    • Integracja ARKit do rzeczywistości rozszerzonej w iOS
    • Integracja CameraX i ARCore do rzeczywistości rozszerzonej w Android
  • React Native Bridge i moduły natywne
    • Tworzenie niestandardowych modułów natywnych do integracji z funkcjami specyficznymi dla platformy
    • Tworzenie mostów Java i Swift dla aplikacji React Native
    • Najlepsze praktyki w zarządzaniu kodem natywnym w środowisku wieloplatformowym

Tydzień 10: Testowanie i debugowanie zaawansowanych aplikacji

  • Testowanie w iOS (Swift)
    • Pisanie testów jednostkowych z XCTest i testów UI dla iOS
    • Używanie Xcode Instruments do profilowania wydajności i wycieków pamięci
    • Ciągła integracja i przepływy pracy testowe z Jenkins i CircleCI
  • Testowanie w Android (Kotlin)
    • Zaawansowane testy JUnit i Espresso dla aplikacji Android
    • Profilowanie wydajności i identyfikowanie wąskich gardeł przy użyciu Android Profiler
    • Używanie Firebase Test Lab do automatycznego testowania na wielu urządzeniach
  • Testowanie React Native
    • Testy jednostkowe z Jest i testy komponentów z Enzyme
    • Testy end-to-end z Detox i automatyczne konfiguracje testowe
    • Profilowanie wydajności przy użyciu React Native Debugger i Flipper

Tydzień 11: Wdrażanie aplikacji i ciągła integracja

  • Wdrażanie w App Store (iOS)
    • Przygotowanie aplikacji do zgłoszenia: Certyfikaty App Store, profile provisioningowe i beta testowanie w TestFlight
    • Używanie Fastlane do automatyzacji wdrażania aplikacji iOS
    • Zarządzanie App Store Connect i konfigurowanie procesów recenzji aplikacji
  • Wdrażanie w Google Play (Android)
    • Przygotowanie APK i podpisywanie go do zgłoszenia w Google Play
    • Automatyzacja wdrażania aplikacji Android z Fastlane i Gradle
    • Używanie Google Play Console do recenzji aplikacji i beta testowania
  • Konfigurowanie CI/CD Pipeline
    • Konfigurowanie Jenkins, GitHub Actions lub CircleCI do automatycznych potoków budowania i wdrażania
    • Używanie Fastlane do CI/CD workflow dla iOS i Android
    • Najlepsze praktyki w zarządzaniu wersjami, numerami buildów i kanałami wydań

Tydzień 12: Projekt końcowy

  • Rozwój projektu końcowego
    • Zaprojektuj i opracuj w pełni funkcjonalną aplikację, która obejmuje zaawansowane funkcje poznane w trakcie kursu.
    • Zaimplementuj niestandardowe UI/UX, zaawansowane animacje, zarządzanie stanem, integrację modułów natywnych i komunikację API w czasie rzeczywistym.
    • Zoptymalizuj aplikację pod kątem wydajności i wdróż ją do App Store i Google Play.

Podsumowanie i kolejne kroki

Wymagania

  • Solidne zrozumienie koncepcji programowania, szczególnie w Swift, Kotlin i JavaScript
  • Wcześniejsze doświadczenie w tworzeniu podstawowych aplikacji iOS, Android lub React Native
  • Znajomość wzorców projektowych, takich jak MVC lub MVVM, oraz doświadczenie w podstawowym zarządzaniu stanem

Odbiorcy

  • Programiści mobilni
  • Programiści
 420 godzin

Liczba uczestników


Cena za uczestnika (netto)

Opinie uczestników (4)

Propozycje terminów

Powiązane Kategorie