Updates in iOS18

now officially supported

https://developer.apple.com/documentation/swiftui/group/init(subviewsof:transform:)?changes=latest_minor


struct ContentView: View {
  var body: some View {
    NavigationStack {      
      VStack {
        Group(subviewsOf: Group {
          Text("A")
          Text("A")
          Text("A")
        }) { subviews in          
          ForEach(subviewOf: subviews, content: { subview in
            HStack {
              Text("💡")
              subview
            }
          })
        }
      }
      .padding()
    }
  }
}

#Preview {
  ContentView()
}

SwiftUI under the Hood: Variadic Views

SwiftUI の裏側:Variadic View

SwiftUI Views are Lists — Chris Eidhof

Variadic Views — Chris Eidhof

@available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
extension SwiftUI._VariadicView_Children : Swift.RandomAccessCollection {
  public struct Element : SwiftUI.View, Swift.Identifiable {
    public var id: Swift.AnyHashable {
      get
    }
    public func id<ID>(as _: ID.Type = ID.self) -> ID? where ID : Swift.Hashable
    public subscript<Trait>(key: Trait.Type) -> Trait.Value where Trait : SwiftUI._ViewTraitKey {
      get
      set
    }
    public static func _makeView(view: SwiftUI._GraphValue<SwiftUI._VariadicView_Children.Element>, inputs: SwiftUI._ViewInputs) -> SwiftUI._ViewOutputs
    public typealias Body = Swift.Never
    public typealias ID = Swift.AnyHashable
  }
  public var startIndex: Swift.Int {
    get
  }
  public var endIndex: Swift.Int {
    get
  }
  public subscript(index: Swift.Int) -> SwiftUI._VariadicView_Children.Element {
    get
  }
  public typealias Index = Swift.Int
  public typealias Indices = Swift.Range<Swift.Int>
  public typealias Iterator = Swift.IndexingIterator<SwiftUI._VariadicView_Children>
  public typealias SubSequence = Swift.Slice<SwiftUI._VariadicView_Children>
}