Swiftpack.co - antoniopantaleo/APDynamicGrid as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by antoniopantaleo.
antoniopantaleo/APDynamicGrid 1.0.0
A SwiftUI Package for an easy grid management
⭐️ 26
🕓 28 weeks ago
iOS
.package(url: "https://github.com/antoniopantaleo/APDynamicGrid.git", from: "1.0.0")

APDynamicGrid

License Badge iOS Version Badge iPadOS Version Badge Swift Version Badge

Package Presensrc="https://raw.github.com/antoniopantaleo/APDynamicGrid/master/n Image

Overview

APDynamicGrid is a SwiftUI package that helps you create consistent and animatable grids. The DynamicGrid View preserves the same width, adjusting the last elements consistently.

Usage

Define your model adopting the Hashable and Identifiable protocols

struct Entry : Identifiable, Hashable {
  let id = UUID()
  // ...
}

and wrap it with the @State decorator

var body : some View {
  
  private @State var entries : [Entry]
  // number of columns is a @State var too
  private @State var columns : Int
  
  ScrollView {
    DynamicGrid(columns: $columns, data: $entries) { entry in 
      MyCustomCell(entry: entry)
    }
  }
}

Entries can be animated registering a @Namespace using their unique id

var body : some View {
  
  private @State var entries : [Entry]
  private @State var columns : Int
  // 1. add a namespace
  private @Namespace var namespace
  
  ScrollView {
    DynamicGrid(columns: $columns, data: $entries) { entry in 
      MyCustomCell(entry: entry)
      // 2. register the namespace
      .matchedGeometryEffect(id: entry.id, in: namespace)
    }
    // 3. apply animations
    .animation(.default)
  }
}

Installation

Xcode Project

You have to select File -> Swift Packages -> Add Package Dependency and enter the repository url https://github.com/antoniopantaleo/APDynamicGrid.git

Swift Package Manager

You have to add the package as a dependency in your Package.swift file

let package = Package(
    //...
    dependencies: [
        .package(url: "https://github.com/antoniopantaleo/APDynamicGrid.git", upToNextMajor(from: "1.0.0")),
    ],
    //...
)

License

MIT

GitHub

link
Stars: 26
Last commit: 3 weeks ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Release Notes

1.0.0
28 weeks ago

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics