lezione 08

swiftui essentials

view, state e componenti riusabili.

livello: intermedio durata: 30 min output: ui reattiva badge: swift essentials

swiftui state

import SwiftUI
struct ContentView: View {
  @State private var count = 0
  var body: some View {
    VStack {
      Text("count: \(count)")
      Button("tap") { count += 1 }
    }
  }
}

struct e proprietà

struct Project {
  let name: String
  var shots: Int
}
var p = Project(name: "Nova", shots: 12)
p.shots += 1

closures e map

let values = [1, 2, 3]
let doubled = values.map { $0 * 2 }
let filtered = values.filter { $0 > 1 }

controllo di flusso

let level = 2
switch level {
case 1: print("base")
case 2: print("intermedio")
default: print("avanzato")
}

esercizi

crea una view con stato incrementale.

import SwiftUI
struct CounterView: View {
  @State private var count = 0
  var body: some View { Button("tap \(count)") { count += 1 } }
}

panoramica

In questo capitolo su swiftui essentials lavoriamo su swiftui state, struct e proprietà, closures e map, controllo di flusso per creare micro-pattern riutilizzabili.

lavora in sequenza: leggi, prova, modifica gli snippet e annota i trade-off principali.

badge: swift essentials

obiettivi

  • capire e applicare swiftui state in uno scenario reale
  • capire e applicare struct e proprietà in uno scenario reale
  • capire e applicare closures e map in uno scenario reale
  • capire e applicare controllo di flusso in uno scenario reale

scheda rapida

import SwiftUI
struct ContentView: View {
  @State private var count = 0
  var body: some View {
    VStack {
      Text("count: \(count)")
      Button("tap") { count += 1 }
    }
  }
}

adatta questo scheletro agli esempi della lezione.

tips

  • preferisci value types quando possibile
  • usa guard per early exit
  • mantieni le view leggere
  • separa networking e ui
  • scrivi test su logica critica
  • mantieni swiftui state leggibile

tip: documenta ogni scelta architetturale.

mini progetto

crea una view con lista e dettaglio.

  • definisci modello
  • crea lista
  • aggiungi azione

output atteso: ui funzionante.

checklist

  • ho eseguito gli snippet e controllato l'output
  • ho annotato almeno 2 trade-off
  • ho completato il mini progetto
  • ho salvato un riepilogo personale
start a brief