Návrh Školení
Úvod
Týden 1: Pokročilé koncepty v Swiftu, Kotlinu a JavaScriptu
- Swift (iOS)
- Pokročilé funkce: uzávěrky, zachycování hodnot, vyšší řádkové funkce
- Programování pomocí protokolů a generické typy
- Správa paměti s ARC (Automatickým počítáním referencí)
- Kotlin (Android)
- Rozšiřující funkce a standardní knihovna Kotlinu
- Koerutiny pro asynchronní programování
- Uzavřené třídy, výčty a pokročilá práce s chybami
- JavaScript (React Native)
- Pokročilé vlastnosti ES6+: destrukturalizace, async/await, promisy
- Funkcionální programovací principy v JavaScriptu
- Práce s externími knihovnami v prostředí React Native
Týden 2: Architektura a návrh mobilních aplikací
- MVVM (Model-View-ViewModel) pro iOS i Android
- Pochopení architektury MVVM v prostředí Swiftu i Kotlinu
- Implementace ViewModelů a jejich propojení s daty pomocí LiveData na Androidu či Combine na iOSu.
- Reaktivní programování za použití nástrojů RxSwift a RxKotlin.
- Komponentově orientovaná architektura v React Native
- Pochopení životního cyklu komponent a jejich „hooků“
- Doporučené postupy pro správu velkého množství stavů a atributů.
- Využití knihovny React Context API pro globální řízení stavů.
Týden 3: Pokročilé síťové techniky
- Síťová komunikace v iOS (Swift)
- Pracování s nástrojem URLSession pro vlastní síťové požadavky.
- Zpracovávání RESTful API a chybových stavů.
- Pracovní práce s formátem JSON prostřednictvím standardu Codable.
- Doporučené postupy pro bezpečnou komunikaci pomocí SSL pinningu a protokolu OAuth.
- Síťová komunikace v Androidu (Kotlin)
- Využití knihovny Retrofit k odesílání požadavků na API a zpracování odpovědí.
- Pokročilé zpracování chybových stavů a mechanismy opakování operací.
- Práce s knihovnami Gson nebo Moshi pro práci s daty v formátu JSON.
- Zajištění bezpečné komunikace pomocí protokolu HTTPS a ověřování typu OAuth.
Týden 4: Síťová komunikace v prostředí React Native
- Integrace API s použitím nástrojů Axios a Fetch
- Pokročilé využití nástrojů Axios a Fetch pro síťovou komunikaci.
- Rozhodování o strategiích chybového zpracování a opakování operací.
- Práce s autentizací – zejména systémů JWT či OAuth.
- WebSockets a komunikace v reálném čase
- Základní informace o technologii WebSockets v prostředí React Native.
- Tvorba chatovacích nebo upozornění systémů založených na spojení typu WebSocket.
- Správa trvalých spojení a aktualizace dat v reálném čase.
Týden 5: Pokročilé techniky ukládání dat
- Core Data a SQLite (iOS)
- Pokročilá práce s vztahy mezi datovými entitami, vyhledáváním a dotazy.
- Přímé užívání databáze SQLite v aplikacích pro iOS i správa jejich spojení.
- Optimalizace rychlosti zpracování dat a efektivní práce s nimi.
- Knihovna Room a SQLite (Android)
- Pokročilá tvorba vztahů mezi entitami a práce s dotazy v rámci databáze.
- Správa rozsáhlých množin dat a zajištění jejich rychlé dostupnosti.
- Využívání nástroje ProGuard pro ochranu struktury datové báze.
- Služba Firebase určená k ukládání dat v cloudu (iOS i Android)
- Integrace s Firebase umožňující centralizované řízení dat v reálném čase.
- Doporučené postupy pro synchronizaci místních a cloudových údajů.
Týden 6: Pokročilé řízení stavů v React Native
- Redux jako systém řízení stavů
- Pochopení komplexních funkcí Reduxu – middleware, Thunks i Sagas.
- Optimalizace výkonu a rozšiřitelnosti využívající Redux.
- Recoil jako alternativní nástroj pro řízení stavů
- Představení Recoil: flexibilnější přístup k řízení stavů ve srovnání s Reduxem.
- Správa velmi rozsáhlých skupin dat napříč více komponentami.
- Jednoduché aktualizace stavu a práce s atomickými jednotkami dat.
Týden 7: Pokročilé animace v iOS a Android
- iOS (Swift)
- Knihovna Core Animation: animace prvků rozhraní, vrstev i přechodů mezi scénami.
- Systém UIKit Dynamics: vytváření fyzikálně realistických pohybů.
- Vlastní animované přechody mezi jednotlivými kontrolery rozhraní.
- Android (Kotlin)
- Nástroj MotionLayout umožňující tvorbu složitých animací.
- Funkce TransitionManager a sdílené elementy v rámci přechodů mezi scénami.
- Manipulace vlastnostmi prvků rozhraní – jejich měřítko, rotace či průhlednost pomocí animačních funkcí.
Týden 8: Animace a uživatelské rozhraní v React Native
- Animace v prostředí React Native
- Používání nástrojů Animated API a Reanimated pro komplexní animační efekty.
- Tvorba gest i interakcí s uživatelem pomocí knihovny React Native Gesture Handler.
- Postupy zajišťující optimální výkon animací v tomto frameworku.
- Tvorba vlastních komponent rozhraní
- Vytváření přizpůsobitelných a opakovaně použitelných komponent pro React Native.
- Dosažení responzivního designu s využitím mediálních dotazů i flexboxového systému.
Týden 9: Integrace nativních modulů a funkcí zařízení
- Přístup k nativním schopnostem mobilního telefonu
- Rozšířené využití fotoaparátu, určení polohy, Bluetooth či senzorů.
- Tvorba vlastních modulů pomocí Swiftu a Kotlinu pro propojení s React Native.
- Využívání nástroje ARKit pro tvorbu rozšířené reality na platformě iOS.
- Integrace nástrojů CameraX a ARCore umožňující vytvořit rozšířenou realitu i na Androidu.
- Nativní mosty a moduly pro React Native
- Vývoj individuálních modulů určených k propojení s funkcemi platformy.
- Tvorba spojek mezi Swiftem/Java a frameworkem React Native.
- Doporučené postupy pro správu nativního kódu v rámci cross-platformového vývoje.
Týden 10: Testování a ladění složitých aplikací
- Testování na platformě iOS (Swift)
- Vytváření jednotkových testů s pomocí nástroje XCTest i testů uživatelského rozhraní.
- Práce s prostředím Xcode Instruments určeným k analýze výkonu a odhalování úniků paměti.
- Implementace kontinuálních integračních procesů využívajících nástroje Jenkins či CircleCI.
- Testování na platformě Android (Kotlin)
- Pokročilé jednotkové testy pomocí nástrojů JUnit a Espresso pro ověření stability aplikací.
- Analýza výkonu zařízení s použitím nástroje Android Profiler a odhalování příčin zpomalení.
- Používání platformy Firebase Test Lab k automatickému testování na různých zařízeních najednou.
- Testování v prostředí React Native
- Jednotkové testy s využitím nástroje Jest a ověření funkce komponent pomocí knihovny Enzyme.
- End-to-end testování za použití nástrojů Detox a automatizované nastavení testovacích scénářů.
- Analýza výkonu aplikace s využitím nástrojů React Native Debugger a Flipper.
Týden 11: Vydávání aplikací a kontinuální integrace
- Vydání aplikace do App Store (iOS)
- Příprava produktu k publikování – vytvoření certifikátů, profilů přístupu a beta testy pomocí služby TestFlight.
- Automatizace procesu vydávání díky nástroji Fastlane.
- Správa nastavení v systému App Store Connect a postupy k zajištění schválení ze strany komunity.
- Publikování aplikace na Google Play (Android)
- Příprava balíčku APK a jeho podepsání pro předložení do obchodu Google Play.
- Automatizace vydávacích procesů s použitím nástrojů Fastlane a Gradle.
- Základní konfigurace účtu na platformě Google Play Console a organizování beta testů.
- Nastavení CI/CD řetězců pro automatickou integraci kódu a vydávání produktu
- Využívání nástrojů typu Jenkins, GitHub Actions nebo CircleCI k konfiguraci automatizovaných postupů tvorby verzí.
- Jednotné řešení pro iOS i Android pomocí nástroje Fastlane při budování CI/CD procesů.
- Doporučené strategie pro řízení čísel verzí, pořadí vydávání a kategorií nových vydání.
Týden 12: Závěrečný projekt
- Vytváření finálního projektu
- Designování a programování plně funkční aplikace, jež využije všechny získané dovednosti během kurzu.
- Pokročilá integrace vlastního uživatelského rozhraní, animací, systémů řízení stavů, připojení nativních modulů i práce s reálnými daty z API.
- Optimalizace výkonu aplikace a její vydání jak do App Store, tak do Google Play.
Závěr a další kroky
Požadavky
- Dobrá znalost programátorských principů, zejména v jazycích Swift, Kotlin a JavaScript
- Předchozí zkušenosti s tvorbou jednoduchých aplikací pro iOS, Android či React Native
- Znalost návrhových vzorů jako MVC nebo MVVM a praktické zkušenosti s řízením stavů.
Cílová skupina
- Mobilní vývojáři
- Programátři
Reference (3)
Všechno je v pořádku.
Adrian Rybka - SEOyon
Kurz - Flutter Development Bootcamp with Dart
Přeloženo strojem
Velmi užitečné dodatečné informace
Grzegorz - Comp S.A.
Kurz - BLoC Pattern
Přeloženo strojem
Vývoj aplikace pro uživatelskou autentifikaci a aktivity Kahoot (ujišťoval jsem se, že si zapsávám tréninkové přednášky :) a je to skvělé!)
Jhoanne - Pag-IBIG Fund
Kurz - .NET MAUI Fundamentals
Přeloženo strojem