Plan Szkolenia

Wprowadzenie

Tydzień 1: Zaawansowane Swift, Kotlin i Java koncepcje skryptów

  • Swift (iOS)
    • Zaawansowane funkcje: Zamknięcia, przechwytywanie wartości, funkcje wyższego rzędu
    • Programowanie zorientowane na protokoły i generyczne
    • Zarządzanie pamięcią za pomocą ARC (Automatic Reference Counting)
  • Kotlin (Android)
    • Funkcje rozszerzające i biblioteka standardowa Kotlin
    • Coroutines dla programowania asynchronicznego
    • Zamknięte klasy, wyliczenia i zaawansowana obsługa błędów
  • Java Script (React Native)
    • Zaawansowane funkcje ES6+: Destrukturyzacja, async/await, obietnice
    • Koncepcje programowania funkcjonalnego w JavaScript
    • Praca z bibliotekami innych firm w React Native

Tydzień 2: Architektura aplikacji mobilnych i Design Patterns

  • MVVM (Model-View-ViewModel) dla iOS i Android
    • Zrozumienie architektury MVVM dla iOS (Swift) i Android (Kotlin)
    • Wdrażanie ViewModels i obserwowanie danych za pomocą LiveData (Android) i Combine (iOS)
    • Programowanie React ive z RxSwift i RxKotlin
  • Architektura oparta na komponentach w React Native
    • Zrozumienie cykli życia komponentów i haków
    • Najlepsze praktyki zarządzania stanem i rekwizytami na dużą skalę
    • Używanie React Context API do globalnego zarządzania stanem

Tydzień 3: Zaawansowane koncepcje Networking

  • Networking w iOS (Swift)
    • Praca z URLSession dla niestandardowych żądań sieciowych
    • Zaawansowane wywołania REST API i obsługa błędów
    • Praca z Codable i parsowanie JSON
    • Najlepsze praktyki bezpiecznej komunikacji API (SSL pinning, OAuth)
  • Networking 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: Networking w React Native

  • Integracja API z Axios i Fetch
    • Zaawansowana integracja API z Axios i Fetch
    • Strategie obsługi błędów i ponawianie żądań sieciowych
    • Praca z uwierzytelnianiem (JWT, OAuth)
  • WebSockets i czas rzeczywisty Communication
    • Wprowadzenie do WebSockets w React Native
    • Tworzenie funkcji czatu lub powiadomień w czasie rzeczywistym za pomocą połączeń 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 Core Data
    • Używanie SQLite bezpośrednio w aplikacjach iOS i zarządzanie połączeniami z bazą danych
    • Wydajna obsługa i optymalizacja danych
  • 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 baz danych
  • Firebase dla Cloud Storage (iOS i Android)
    • Integracja z Firebase do zarządzania bazą danych w czasie rzeczywistym
    • Najlepsze praktyki synchronizacji danych lokalnych i w chmurze

Tydzień 6: Zaawansowany Stan Management w React Natywny

  • Redux dla State Management
    • Zaawansowane koncepcje Redux: Middlewares, Thunks i Sagas
    • Optymalizacja Redux pod kątem wydajności i skalowalności
  • Recoil dla State Management
    • Wprowadzenie do Recoil: Bardziej elastyczna alternatywa dla Redux
    • Obsługa zarządzania stanem na dużą skalę między komponentami
    • Wydajne aktualizacje stanu i atomowe zarządzanie stanem

Tydzień 7: Zaawansowane Animations w iOS i Android

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

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

  • React Native Animations
    • Używanie Animated API i Reanimated do złożonych animacji
    • Implementowanie gestów i interakcji przy użyciu React Native Gesture Handler
    • Najlepsze praktyki dla wydajnych animacji w React Native
  • Tworzenie niestandardowych komponentów interfejsu użytkownika
    • Tworzenie komponentów wielokrotnego użytku i konfigurowalnych w React Native
    • Wdrażanie responsywnych projektów za pomocą zapytań o media i flexbox

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

  • Natywne funkcje urządzenia Access
    • Zaawansowane wykorzystanie kamery, geolokalizacji, Bluetooth i czujników
    • Tworzenie natywnych modułów w Swift i Kotlin dla React natywnej integracji
    • Integracja ARKit dla rzeczywistości rozszerzonej w iOS
    • Integracja CameraX i ARCore dla rzeczywistości rozszerzonej w Android
  • React Natywny most i natywne moduły
    • Tworzenie niestandardowych modułów natywnych w celu integracji z funkcjami specyficznymi dla platformy
    • Tworzenie Java i Swift mostów dla React aplikacji natywnych
    • Najlepsze praktyki zarządzania kodem natywnym w środowisku wieloplatformowym

Tydzień 10: Testowanie i debugowanie zaawansowanych aplikacji

  • Testowanie w iOS (Swift)
    • Pisanie testów jednostkowych za pomocą XCTest i testów interfejsu użytkownika dla iOS
    • Korzystanie z Xcode Instruments do profilowania wydajności i wycieków pamięci
    • Ciągła integracja i testowanie przepływów pracy z Jenkins i CircleCI
  • Testowanie w Android (Kotlin)
    • Zaawansowane testowanie JUnit i Espresso dla aplikacji Android
    • Profilowanie wydajności i identyfikacja wąskich gardeł przy użyciu Android Profiler
    • Korzystanie z Firebase Test Lab do zautomatyzowanego testowania na wielu urządzeniach
  • Testowanie natywne React
    • Testowanie jednostkowe za pomocą Jest i testowanie komponentów za pomocą Enzyme
    • Testowanie end-to-end przy użyciu Detox i zautomatyzowanych konfiguracji testowych
    • Profilowanie wydajności przy użyciu React Native Debugger i Flipper

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

  • Wdrażanie aplikacji w App Store (iOS)
    • Przygotowanie aplikacji do przesłania: Certyfikaty App Store, profile udostępniania i testy beta TestFlight
    • Używanie Fastlane do automatyzacji iOS wdrażania aplikacji
    • Zarządzanie App Store Connect i konfigurowanie procesów weryfikacji aplikacji
  • Wdrażanie aplikacji Go w Google Play (Android)
    • Przygotowanie pliku APK i podpisanie go w celu przesłania do Google Play
    • Automatyzacja Android wdrażania aplikacji za pomocą Fastlane i Gradle
    • Korzystanie z Google Play Console do przeglądu aplikacji i testów beta
  • Konfigurowanie potoków CI/CD
    • Konfigurowanie Jenkins, GitHub Actions lub CircleCI dla zautomatyzowanych potoków kompilacji i wdrażania
    • Korzystanie z Fastlane zarówno dla iOS, jak i Android przepływów pracy CI/CD
    • Najlepsze praktyki dotyczące obsługi wersjonowania, numerów kompilacji i kanałów wydań

Tydzień 12: Projekt końcowy

  • Opracowanie projektu końcowego
    • Zaprojektuj i opracuj w pełni funkcjonalną aplikację, która zawiera zaawansowane funkcje poznane w trakcie kursu.
    • Wdrożenie niestandardowego interfejsu użytkownika/UX, zaawansowanych animacji, zarządzania stanem, natywnej integracji modułów i komunikacji API w czasie rzeczywistym.
    • Zoptymalizuj aplikację pod kątem wydajności i umieść ją w App Store i Google Play.

Podsumowanie i kolejne kroki

Wymagania

  • Solidne zrozumienie koncepcji programowania, w szczególności w Swift, Kotlin i Java Script.
  • Wcześniejsze doświadczenie w tworzeniu podstawowych iOS, Android lub React aplikacji natywnych
  • Znajomość wzorców projektowych, takich jak MVC lub MVVM oraz doświadczenie z podstawowym zarządzaniem stanem.

Uczestnicy

  • Programiści mobilni
  • Programiści
 420 godzin

Liczba uczestników


cena netto za uczestnika

Opinie uczestników (5)

Propozycje terminów

Powiązane Kategorie