Struttura del corso
Introduzione
Settimana 1: Concetti avanzati in Swift, Kotlin e JavaScript
- Swift (iOS)
- Funzioni avanzate: closures, cattura di variabili e funzioni di ordine superiore
- Programmazione orientata ai protocolli e generics
- Gestione della memoria tramite ARC (Automatic Reference Counting)
- Kotlin (Android)
- Funzioni di estensione e libreria standard di Kotlin
- Coroutines per la programmazione asincrona
- Classi sealed, enumerazioni avanzate e gestione degli errori
- JavaScript (React Native)
- Caratteristiche avanzate di ES6+: destrutturazione, async/await e promesse
- Concetti di programmazione funzionale in JavaScript
- Integrazione con librerie esterne in React Native
Settimana 2: Architettura delle applicazioni mobili e pattern di progettazione
- MVVM (Model-View-ViewModel) per iOS e Android
- Comprensione dell’architettura MVVM in ambiente iOS (Swift) e Android (Kotlin)
- Implementazione dei ViewModel e gestione dei dati tramite LiveData (Android) e Combine (iOS)
- Programmazione reattiva con RxSwift e RxKotlin
- Architettura basata sui componenti in React Native
- Ciclo di vita dei componenti e gestione degli hook
- Best practice per la gestione scalabile dello stato e delle proprietà
- Utilizzo dell’API Context di React per la gestione globale dello stato
Settimana 3: Concetti avanzati di rete
- Reti in iOS (Swift)
- Utilizzo di URLSession per effettuare richieste di rete personalizzate
- Gestione avanzata delle chiamate REST API e degli errori associati
- Lavorare con Codable e la serializzazione JSON<\/li>
- Best practice per comunicazioni API sicure (SSL pinning, OAuth)
- Reti in Android (Kotlin)
- Utilizzo di Retrofit per le chiamate API e la gestione delle risposte
- Gestione avanzata degli errori e meccanismi di ritentativa nelle comunicazioni network
- Parsing dei dati JSON tramite Gson o Moshi
- Comunicazione sicura mediante HTTPS e autenticazione OAuth
Settimana 4: Reti in React Native
- Integrazione API con Axios e Fetch
- Utilizzo avanzato di Axios e Fetch per le richieste di rete
- Strategie per la gestione degli errori e dei ritentativi nelle chiamate network
- Autenticazione tramite JWT o OAuth
- WebSockets e comunicazioni in tempo reale
- Introduzione ai WebSocket in React Native
- Sviluppo di funzionalità come chat o notifiche in tempo reale tramite connessioni WebSocket
- Gestione delle connessioni persistenti e aggiornamenti dati
Settimana 5: Tecniche avanzate di persistenza dei dati
- Core Data e SQLite (iOS)
- Gestione avanzata delle relazioni, delle query e del recupero dati in Core Data
- Utilizzo diretto di SQLite nelle app iOS per il controllo totale delle connessioni al database
- Ottimizzazione efficace della gestione dei dati in tempo reale
- Room Persistence e SQLite (Android)
- Gestione avanzata di relazioni e query nel database Room
- Operazioni su grandi quantità di dati con ottimizzazione delle prestazioni del database
- Ricorso a ProGuard per proteggere la struttura interna del database
- Firebase per l’archiviazione cloud (iOS e Android)
- Integrazione con Firebase per una gestione in tempo reale dei dati<\/li>
- Best practice per la sincronizzazione tra dati locali e remoti
Settimana 6: Gestione avanzata dello stato in React Native
- Redux per la gestione dello stato
- Elementi avanzati di Redux: middleware, Thunks e Sagas
- Ottimizzazione delle prestazioni e scalabilità nell’uso di Redux
- Recoil per la gestione dello stato
- Introduzione a Recoil: un approccio più flessibile rispetto a Redux
- Gestione su larga scala dello stato tra i diversi componenti
- Metodi efficienti di aggiornamento e gestione atomica dello stato
Settimana 7: Animazioni avanzate in iOS e Android
- iOS (Swift)
- Core Animation: animazione di viste, livelli grafici e transizioni visive
- UIKit Dynamics: creazione di animazioni basate su principi fisici
- Realizzazione di transizioni personalizzate tra controller visivi
- Android (Kotlin)
- Utilizzo di MotionLayout per sviluppare sequenze animate complesse
- Gestione delle transizioni tramite TransitionManager e l’uso di elementi condivisi tra schermate
- Animazioni proprietarie per modifiche su scala, rotazione e trasparenza delle viste
Settimana 8: Animazioni e UX in React Native
- Animazioni in React Native
- Adozione dell’API Animated e di Reanimated per creare sequenze animate complesse
- Gestione dei gesti utente tramite React Native Gesture Handler
- Best practice per mantenere prestazioni elevate nelle animazioni di React Native
- Sviluppo di componenti UI personalizzabili
- Creazione di elementi riutilizzabili e altamente configurabili in React Native
- Implementazione di layout responsive grazie alle query mediatiche e al sistema Flexbox
Settimana 9: Integrazione dei moduli nativi e delle funzionalità del dispositivo
- Accesso alle funzioni native del dispositivo
- Utilizzo avanzato della fotocamera, del rilevamento della posizione geografica, di Bluetooth e dei sensori<\/li>
- Sviluppo di moduli nativi in Swift o Kotlin per integrarli con React Native
- Integrazione di ARKit per sviluppare esperienze di realtà aumentata su iOS<\/li>
- Utilizzo di CameraX e ARCore per realtà aumentata nell’ambiente Android
- Bridge React Native e moduli nativi
- Creazione personalizzata di moduli nativi per integrare funzionalità specifiche di ciascuna piattaforma
- Sviluppo dei collegamenti Java e Swift necessari alle app React Native<\/li>
- Best practice nella gestione del codice nativo in un ambiente multipiattaforma
Settimana 10: Test e depurazione di applicazioni avanzate
- Testing su iOS (Swift)
- Scrivere test unitari tramite XCTest e testare le interfacce utente iOS<\/li>
- Utilizzo degli strumenti Xcode Instruments per analisi delle prestazioni e rilevamento di memory leak
- Gestione dei flussi di integrazione continua con Jenkins e CircleCI
- Testing su Android (Kotlin)
- Svolgimento avanzato di test JUnit ed Espresso per le app Android
- Analisi delle performance e individuazione dei colli di bottiglia tramite Android Profiler
- Adozione del Firebase Test Lab per la conduzione automatica di test su molti dispositivi diversi
- Testing in React Native
- Esecuzione di unit test tramite Jest e verifica dei componenti con Enzyme
- Sviluppo di test end-to-end mediante Detox e impostazioni automatizzate<\/li>
- Ottimizzazione delle prestazioni tramite React Native Debugger e Flipper
Settimana 11: Pubblicazione delle applicazioni e integrazione continua
- Pubblicazione su App Store (iOS)
- Preparazione dell’app per la sottomissione: certificati, profili di provisioning e test beta tramite TestFlight
- Automazione del rilascio iOS con l’utilizzo di Fastlane<\/li>
- Gestione delle impostazioni via App Store Connect e definizione dei processi di revisione<\/li>
- Pubblicazione su Google Play (Android)
- Generazione del file APK e sua firma per l’invio al Play Store
- Automazione completa del rilascio Android con Fastlane e Gradle
- Gestione delle versioni, dei canali di rilascio e dei test beta tramite Google Play Console
- Configurazione delle pipeline CI/CD
- Impostazione di Jenkins, GitHub Actions o CircleCI per i processi automatizzati di build e distribuzione
- Adozione di Fastlane sia per iOS che per Android nei flussi CI/CD<\/li>
- Definizione di best practice nella gestione delle versioni, dei numeri di build e delle distribuzioni pilotate
Settimana 12: Progetto finale
- Sviluppo del progetto conclusivo
- Progettazione e realizzazione di un’app completa, integrando tutte le tecnologie e funzionalità acquisite durante il corso.
- Incorporare interfacce utente avanzate, animazioni personalizzate, gestione complessa dello stato, moduli nativi dedicati e comunicazione real-time con API esterne.
- Ottimizzare le prestazioni dell’app e procedere alla sua pubblicazione su App Store e Google Play.
Riassunto e prossimi passi
Requisiti
- Buona conoscenza dei concetti fondamentali della programmazione, in particolare in Swift, Kotlin e JavaScript
- Esperienza pregressa nello sviluppo di applicazioni iOS, Android o React Native di base
- Conoscenza di pattern di progettazione come MVC o MVVM e esperienza nella gestione basilare dello stato
Destinatari del corso
- Sviluppatori mobili
- Programmatori
Recensioni (3)
Tutto è a posto.
Adrian Rybka - SEOyon
Corso - Flutter Development Bootcamp with Dart
Traduzione automatica
Informazioni aggiuntive molto utili
Grzegorz - Comp S.A.
Corso - BLoC Pattern
Traduzione automatica
Sviluppo dell'app di autenticazione utente e attività Kahoot (mi sono assicurato di assimilare le lezioni del corso :) e è molto divertente!)
Jhoanne - Pag-IBIG Fund
Corso - .NET MAUI Fundamentals
Traduzione automatica