Swift and SwiftUI

Swift

let students = ["Kofi", "Abena", "Efua", "Kweku", "Akosua"]
let studentsByLetter = Dictionary(grouping: students, by: { $0.first! })
// ["E": ["Efua"], "K": ["Kofi", "Kweku"], "A": ["Abena", "Akosua"]]

SwiftUI

Model/State

/* LandmarkDetail.swift */
@EnvironmentObject var modelData: ModelData
...
FavoriteButton(isSet: $modelData.landmarks[landmarkIndex].isFavorite)

/* FavoriteButton.swift */
@Binding var isSet: Bool

Views

Text("Hello world")
    .frame(width: 100, alignment: .leading)
ForEach(Array(zip(items.indices, items)), id: \.1) { index, item in
    ...
}

Learn More