Introduzione ai Charts in SwiftUI

Mattepuffo's logo
Introduzione ai Charts in SwiftUI

Introduzione ai Charts in SwiftUI

Da quello che ho capito, i Charts sono stati introdotti solo nelle ultissime versioni di Swift e SwiftUI.

Infatti per poterli testate, e quindi importare il modulo Charts, ho dovuto aspettare l'aggiornamento di ieri di Xcode (16/09/2022).

Detto ciò, ho fatto solo un test volante, giusto per capirne un pò il funzionamento.

Qui sotto un esempio di codice che riprende dalla documentazione:

import SwiftUI
import Charts

struct ContentView: View {
    var body: some View {
        VStack {
            MyChart()
        }
        .padding()
    }
}

struct GlassShape: Identifiable {
    var color: String
    var type: String
    var count: Double
    var id = UUID()
}

struct MyChart: View {
    var data: [GlassShape] = [
        .init(color: "Green", type: "Cube", count: 2),
        .init(color: "Green", type: "Sphere", count: 0),
        .init(color: "Green", type: "Pyramid", count: 1),
        .init(color: "Purple", type: "Cube", count: 1),
        .init(color: "Purple", type: "Sphere", count: 1),
        .init(color: "Purple", type: "Pyramid", count: 1),
        .init(color: "Pink", type: "Cube", count: 1),
        .init(color: "Pink", type: "Sphere", count: 2),
        .init(color: "Pink", type: "Pyramid", count: 0),
        .init(color: "Yellow", type: "Cube", count: 1),
        .init(color: "Yellow", type: "Sphere", count: 1),
        .init(color: "Yellow", type: "Pyramid", count: 2)
    ]
    
    var body: some View {
        Chart {
            ForEach(data) { shape in
                BarMark(
                    x: .value("Shape Type", shape.type),
                    y: .value("Total Count", shape.count)
                )
                .foregroundStyle(by: .value("Shape Color", shape.color))
            }
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

Un buon punto per cominciare.....

Enjoy!


Condividi

Commentami!