Contattataci

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
 420 ore

Numero di Partecipanti


Prezzo per partecipante

Recensioni (3)

Corsi in Arrivo

Categorie relative