Návrh Školení
Úvod
Týden 1: Přehled mobilního vývoje
- Mobilní ekosystém a platformy
- Přehled mobilních operačních systémů (iOS a Android)
- Klíčové rozdíly mezi vývojem pro iOS, Android a cross-platformou
- Populární obchody s aplikacemi (Apple App Store, Google Play Store)
- Úvod do nativního, hybridního a cross-platformního vývoje
- Nativní vs. hybridní vs. cross-platformní
- Výhody a výzvy každé metody vývoje
- Přehled Swiftu (pro iOS), Kotlinu (pro Android) a React Native (cross-platforma)
- Jak se kód převádí na mobilní platformy (JavaScript na nativní kód v React Native)
- Základy programování
- Úvod do programátorských pojmů (proměnné, datové typy, funkce, ovládání toku)
- Srovnání syntaxe Swiftu, Kotliny a JavaScriptu
- Nápis jednoduchých programů pomocí Swiftu, Kotliny a JavaScriptu
- Nastavení vývojových prostředí
- Instalace Xcode a Android Studio
- Nastavení React Native CLI a Expo
- Spuštění základních aplikací "Hello World" na simulátorech a emulátorech
Týden 2: Úvod do Swiftu, Kotliny a JavaScriptu
- Programování Swiftem pro iOS
- Proměnné, konstanty a datové typy v Swiftu
- Enuntace ovládání toku (
if,switch, smyčky) - Funkce a parametry v Swiftu
- Úvod do rozhraní Xcode a Swift Playgrounds
- Programování Kotlinou pro Android
- Proměnné, datové typy a funkce v Kotlině
- Pochopení ochrany proti null v Kotlině
- Ovládání toku a struktury smyček
- Úvod do rozhraní Android Studio a Kotlin Playground
- JavaScript pro React Native
- Proměnné, konstanty a ovládání toku v JavaScriptu
- Funkce ES6: šipkové funkce, šablonové literály a destrukce
- Nápis a spuštění základních JavaScriptových programů v React Native pomocí Expo
Týden 3: Design uživatelského rozhraní iOS
- UI prvky v iOS
- Úvod do UIKit a SwiftUI
- Přidávání a přizpůsobování UI prvků, jako jsou tlačítka, popisky a textová pole
- Používání Interface Builderu pro návrh UI
- Práce se Storyboards a návrh UI se více obrazovkami
- Auto Layout a omezení
- Pochopení systému Auto Layout
- Používání omezení pro responzivní rozložení na různých velikostech obrazovek
- Vytváření zásobníkových pohledů a dynamické přizpůsobování UI prvků
- Základy SwiftUI
- Úvod do deklarativního designu UI v SwiftUI
- Tvorba jednoduchých UI komponent pomocí SwiftUI
Týden 4: Design uživatelského rozhraní Android
- XML rozložení v Android
- Úvod do návrhu rozložení založeného na XML
- Práce s běžnými rozloženími: LinearLayout, RelativeLayout, ConstraintLayout
- Přidávání a přizpůsobování UI prvků: tlačítka, textové zobrazení, obrazové zobrazení
- Používání ConstraintLayout pro responzivní a dynamická rozložení
- Material Design
- Integrace principů Material Design (barvy, ikony, typografie)
- Používání Material Components (tlačítka, plovoucí akční tlačítka, karty)
- Implementace témat a stylů pro Android aplikace
Týden 5: Design uživatelského rozhraní React Native
- Flexbox rozložení v React Native
- Pochopení Flexbox pro responzivní design rozložení
- Vytváření sloupcových a řádkových rozložení
- Stylizace UI komponent pomocí vlastností Flexbox (justifyContent, alignItems, apod.)
- Komponenty React Native
- Práce s jádrovými komponentami, jako jsou
Text,View,TextInputaButton - Vytváření interaktivních UI prvků, jako jsou formuláře a tlačítka
- Používání komponenty
ScrollViewpro dynamický obsah
- Práce s jádrovými komponentami, jako jsou
Týden 6: Zpracování dat v iOS a Android
- Zpracování dat v iOS
- Používání UserDefaults pro jednoduchou perzistenci dat
- Úvod do Core Data pro lokální úložiště složitých dat
- Získávání dat z API pomocí URLSession
- Parsování dat JSON a jejich zobrazení v UI
- Zpracování dat v Android
- Používání SharedPreferences pro ukládání malého množství dat
- Úvod do SQLite a knihovny Room Persistence Library pro správu databází
- Získávání dat z API pomocí Retrofit
- Parsování JSON a zpracování odpovědí API
Týden 7: Správa stavu a API v React Native
- Stav a Props v React Native
- Správa toku dat uvnitř komponent React Native
- Používání hooku
useStatepro správu lokálního stavu komponenty - Předávání dat mezi nadřazenou a podřízenou komponentou prostřednictvím props
- Získávání dat v React Native
- Používání Fetch API a Axiosu pro provádění HTTP požadavků
- Zobrazení získaných dat v seznamech (pomocí
FlatList,SectionList) - Perzistence dat lokálně pomocí AsyncStorage v React Native
Týden 8: Navigace v iOS a Android
- Navigace v iOS
- Úvod do navigačních kontrolerů a správy více obrazovek
- Používání segue pro přechody mezi ovladači pohledů
- Předávání dat mezi ovladači pohledů
- Implementace TabBar a NavigationBar pro strukturovanou navigaci
- Navigace v Android
- Práce s Activities a Intents pro aplikace s více obrazovkami
- Předávání dat mezi Activities pomocí Bundles
- Vytváření Navigation Drawer a BottomNavigationView
- Implementace fragmentů pro flexibilní navigaci UI
Týden 9: Navigace v React Native
- Základy React Navigation
- Instalace a nastavení React Navigation
- Používání Stack Navigator pro přechody mezi obrazovkami
- Implementace Tab Navigator a Drawer Navigator pro složitou navigaci
- Předávání parametrů mezi obrazovkami a správa stavu navigace
Týden 10: Pokročilé funkce
- Pokročilé funkce iOS:
- Core location a mapy
- Přístup k poloze zařízení pomocí Core Location
- Zobrazení map pomocí MapKit
- Zpracování geolokace a sledování polohy uživatele
- Kamera a média
- Přístup k kamerě zařízení a fotoalbumu
- Snímání a zobrazení obrázků pomocí UIImagePickerController
- Ukládání a načítání mediálních souborů
- Core location a mapy
- Pokročilé funkce Android
- Polooha a mapy
- Používání Google Maps API pro zobrazení map a polohy uživatele
- Přístup k GPS datům a zpracování geolokace
- Kamera a média
- Používání CameraX pro snímkování fotografií a zpracování oprávnění kamery
- Zobrazení obrázků a zpracování úložiště médií
- Polooha a mapy
- Pokročilé funkce React Native
- Mapy v React Native
- Integrace map pomocí
react-native-maps - Zpracování služeb založených na lokalitě (geolokace, mapování tras)
- Integrace map pomocí
- Přístup k camerě a médiím
- Používání knihovny React Native Camera pro snímkování fotografií
- Přístup k úložišti médií zařízení a zpracování souborů
- Mapy v React Native
Týden 11: Ladění a testování
- Ladění a testování iOS
- Používání ladíče Xcode
- Nastavení přerušení a prozkoumávání proměnných v Xcode
- Používání konzole pro ladění v reálném čase
- Časté problémy s laděním a jejich řešení
- Unit testování v iOS
- Prášení a spuštění unit testů pomocí frameworku XCTest
- Mokování objektů a testování UI komponent
- Používání ladíče Xcode
- Ladění a testování Android
- Používání Logcat v Android Studio
- Logování a analýza chyb pomocí Logcat
- Ladění Android aplikací pomocí přerušení
- Unit testování v Android
- Prášení unit testů pomocí JUnit
- Testování UI komponent Android pomocí Espresso
- Používání Logcat v Android Studio
- Ladění a testování React Native
- Nástroje pro ladění React Native
- Používání Chrome DevTools a React Native Debugger pro ladění v reálném čase
- Logy konzole a prozkoumávání síťových požadavků
- Unit testování v React Native
- Prášení unit testů pomocí Jest a Enzyme
- Testování komponent React Native a správa testovacích případů
- Nástroje pro ladění React Native
Týden 12: Nasazení aplikací a závěrečný projekt
- Nasazení a distribuce
- Odeslání do iOS App Store
- Příprava aplikace na distribuci (ikony, certifikáty, profilování)
- Používání App Store Connect pro odeslání aplikace k revizi
- Používání TestFlight pro beta testování
- Odeslání do Android Play Store
- Příprava APK a podepsání aplikace pro distribuci
- Používání Google Play Console pro odeslání a sledování aplikace
- Pochopení politik a směrnic Play Store
- Odeslání do iOS App Store
- Vývoj závěrečného projektu
- Vývoj závěrečného projektu
- Tvorba plně funkční aplikace vaší volby
- Zarazování pokročilých funkcí, jako jsou API volání, navigace, média a poloha
- Prezentace a demo závěrečné aplikace před spolužáky a instruktory
- Vývoj závěrečného projektu
Shrnutí a další kroky
Požadavky
- Základní porozumění programátorským pojmům
- Základní znalosti JavaScriptu
Cílová skupina
- Mobilní vývojáři
- Programátoř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