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
Opinie uczestników (4)
Wszystko jest w porządku.
Adrian Rybka - SEOyon
Szkolenie - Flutter Development Bootcamp with Dart
Przetłumaczone przez sztuczną inteligencję
Bardzo przydatne dodatkowe informacje
Grzegorz - Comp S.A.
Szkolenie - BLoC Pattern
Przetłumaczone przez sztuczną inteligencję
Tworzenie aplikacji do uwierzytelniania użytkowników i aktywności kahoot (upewniłem się, że wchłaniam materiały szkoleniowe :) i to jest zabawne!)
Jhoanne - Pag-IBIG Fund
Szkolenie - .NET MAUI Fundamentals
Przetłumaczone przez sztuczną inteligencję
Jego wiedza i cierpliwość.
Chrisna - Agricatural Research Council
Szkolenie - Ionic 4 and Angular for Developers
Przetłumaczone przez sztuczną inteligencję