Struttura del corso
Introduzione
Settimana 1: Concetti di script avanzati Swift, Kotlin e Java
- Swift (iOS)
- Funzioni avanzate: Chiusure, acquisizione di valori, funzioni di ordine superiore
- Programmazione protocollare e generici
- Gestione della memoria con ARC (Automatic Reference Counting)
- Kotlin (Android)
- Funzioni di estensione e Kotlin Libreria standard
- Coroutine per la programmazione asincrona
- Classi sealed, enumerazioni e gestione avanzata degli errori
- Java Script (React nativo)
- Funzionalità avanzate ES6+: Destrutturazione, asincrono/await, promesse
- Concetti di programmazione funzionale in JavaScript
- Utilizzo di librerie di terze parti in React Native
Settimana 2: Architettura delle app mobili e Design Patterns
- MVVM (Model-View-ViewModel) per iOS e Android
- Comprendere l'architettura MVVM per iOS (Swift) e Android (Kotlin)
- Implementazione di ViewModel e osservazione dei dati con LiveData (Android) e Combine (iOS)
- ReactProgrammazione attiva con RxSwift e RxKotlin
- Architettura basata su componenti in React nativo
- Informazioni sui cicli di vita dei componenti e sugli hook
- Best practice per la gestione dello stato e degli oggetti di scena su larga scala
- Utilizzo di React Context API per la gestione globale dello stato
Settimana 3: Concetti avanzati Networking
- Networking in iOS (Swift)
- Utilizzo di URLSession per le richieste di rete personalizzate
- Chiamate API REST avanzate e gestione degli errori
- Utilizzo dell'analisi codificabile e JSON
- Best practice per la comunicazione API sicura (pinning SSL, OAuth)
- Networking in Android (Kotlin)
- Retrofit per l'esecuzione di chiamate API e la gestione delle risposte
- Gestione avanzata degli errori API e meccanismi di ripetizione dei tentativi
- Utilizzo di Gson o Moshi per l'analisi JSON
- Comunicazione sicura tramite autenticazione HTTPS e OAuth
Settimana 4: Networking in React Nativo
- Integrazione API con Axios e Fetch
- Integrazione API avanzata con Axios e Fetch
- Strategie di gestione degli errori e tentativi nelle richieste di rete
- Utilizzo dell'autenticazione (JWT, OAuth)
- WebSocket e tempo reale Communication
- Introduzione a WebSockets in React nativo
- Creazione di funzionalità di chat o notifica in tempo reale con connessioni WebSocket
- Gestione delle connessioni persistenti e degli aggiornamenti dei dati
Settimana 5: Tecniche avanzate di persistenza dei dati
- Dati di base e SQLite (iOS)
- Relazioni, recupero e query avanzate dei dati di base
- Utilizzo diretto di SQLite per iOS applicazioni e gestione delle connessioni al database
- Gestione e ottimizzazione efficienti dei dati
- Persistenza della stanza e SQLite (Android)
- Relazioni e query avanzate nel database delle sale
- Gestione di set di dati di grandi dimensioni e ottimizzazione delle prestazioni del database
- Utilizzo di ProGuard per la protezione delle strutture di database
- Firebase per l'archiviazione cloud (iOS e Android)
- Integrazione con Firebase per la gestione del database in tempo reale
- Best practice per la sincronizzazione dei dati locali e cloud
Settimana 6: Stato avanzato Management in React nativo
- Redux per lo Stato Management
- Concetti avanzati Redux: Middleware, Thunks e Saghe
- Ottimizzazione Redux per prestazioni e scalabilità
- Rinculo per Stato Management
- Introduzione a Recoil: un'alternativa più flessibile a Redux
- Gestione della gestione dello stato su larga scala tra i componenti
- Aggiornamenti efficienti dello stato e gestione dello stato atomico
Settimana 7: Avanzato Animation in iOS e Android
- iOS (Swift)
- Nucleo Animation: Animazione di viste, livelli e transizioni
- UIKit Dynamics: Creazione di animazioni basate sulla fisica
- Transizioni e animazioni personalizzate tra i controller di visualizzazione
- Android (Kotlin)
- MotionLayout per la creazione di animazioni complesse
- Transizioni di TransitionManager e degli elementi condivisi
- Animazioni delle proprietà per il ridimensionamento, la rotazione e le modifiche alfanumeriche della vista
Settimana 8: Animations e UI/UX in React nativo
- React Nativi Animations
- Utilizzo dell'API Animated e di Reanimated per animazioni complesse
- Implementazione di gesti e interazioni con React Native Gesture Handler
- Best practice per le animazioni performanti in React Native
- Creazione di componenti dell'interfaccia utente personalizzati
- Costruzione di componenti riutilizzabili e personalizzabili in React Native
- Implementazione di design reattivi con media query e flexbox
Settimana 9: Integrazione dei moduli nativi e delle funzionalità del dispositivo
- AccessFunzionalità native del dispositivo
- Utilizzo avanzato della fotocamera, della geolocalizzazione, del Bluetooth e dei sensori
- Creazione di moduli nativi in Swift e Kotlin per React Integrazione nativa
- Integrazione di ARKit per la realtà aumentata in iOS
- Integrazione di CameraX e ARCore per la realtà aumentata in Android
- React Bridge nativo e moduli nativi
- Creazione di moduli nativi personalizzati da integrare con funzionalità specifiche della piattaforma
- Creazione di bridge Java e Swift per React app native
- Procedure consigliate per la gestione del codice nativo in un ambiente multipiattaforma
Settimana 10: Test e debug delle applicazioni avanzate
- Test in iOS (Swift)
- Scrittura di unit test con XCTest e test dell'interfaccia utente per iOS
- Uso di Xcode Instruments per la profilatura delle prestazioni e le perdite di memoria
- Flussi di lavoro di integrazione e test continui con Jenkins e CircleCI
- Test in Android (Kotlin)
- Test avanzati JUnit ed Espresso per Android app
- Profilatura delle prestazioni e identificazione dei colli di bottiglia con Android Profiler
- Utilizzo di Firebase Test Lab per test automatizzati su più dispositivi
- React Test nativi
- Test unitari con Jest e test dei componenti con Enzyme
- Test end-to-end con Detox e configurazioni di test automatizzate
- Profilatura delle prestazioni con React debugger nativo e flipper
Settimana 11: distribuzione delle app e integrazione continua
- Distribuzione dell'App Store (iOS)
- Preparazione dell'app per l'invio: certificati dell'App Store, profili di provisioning e beta test TestFlight
- Utilizzo di Fastlane per automatizzare la distribuzione delle app iOS
- Gestione di App Store Connect e configurazione dei processi di revisione delle app
- Google Play (Android) Distribuzione
- Preparare l'APK e firmarlo per l'invio a Google Play
- Automazione della distribuzione di app Android con Fastlane e Gradle
- Utilizzo di Google Play Console per la revisione delle app e il beta test
- Configurazione delle pipeline CI/CD
- Configurazione di Jenkins, GitHub Actions o CircleCI per pipeline di compilazione e distribuzione automatizzate
- Utilizzo di Fastlane per i flussi di lavoro CI/CD iOS e Android
- Procedure consigliate per la gestione del controllo delle versioni, dei numeri di build e dei canali di rilascio
Settimana 12: Progetto Capstone
- Sviluppo del progetto finale
- Progetta e sviluppa un'app completamente funzionale che incorpori le funzionalità avanzate apprese durante il corso.
- Implementa UI/UX personalizzate, animazioni avanzate, gestione dello stato, integrazione di moduli nativi e comunicazione API in tempo reale.
- Ottimizza le prestazioni dell'app e distribuiscila nell'App Store e Google Play.
Riepilogo e passaggi successivi
Requisiti
- Solida comprensione dei concetti di programmazione, in particolare in Swift, Kotlin e JavaScript
- Esperienza precedente nella creazione di app native di base iOS, Android o React
- Conoscenza di modelli di progettazione come MVC o MVVM ed esperienza con la gestione dello stato di base
Pubblico
- Sviluppatori mobili
- Programmatori
Recensioni (5)
Edward è un facilitatore fantastico
Zibusiso Ncube - Agricatural Research Council
Corso - Ionic 4 and Angular for Developers
Traduzione automatica
La mia parte preferita è la domanda e la risposta con Sir. Jose. È molto ben informato e conosce la risposta alle nostre domande.
John Henry - Toyota Motor Philippines
Corso - .NET MAUI (Intermediate)
Traduzione automatica
Forse più esercizi potrebbero essere migliori per lerning, ma il tempo era troppo poco
Gianpiero Arico' - Urmet Spa
Corso - Embedded Linux Systems Architecture
Traduzione automatica
Miguel's knowledge of the subject was extensive. He made the training easy to understand and the flow was balanced; adding on to each section with new features as needed. He covered everything that was asked and answered each and every question thoroughly. It was a very pleasant experience.
Paul Coaton - SEMPCheck Services
Corso - Flutter Development Bootcamp with Dart
The trainer was enthusiastic, kind, and loved the topic