SkillAgentSearch skills...

APDynamicGrid

A SwiftUI Package for an easy grid management

Install / Use

/learn @antoniopantaleo/APDynamicGrid
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

APDynamicGrid

License Badge iOS Version Badge iPadOS Version Badge Swift Version Badge

AP

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.

Demo

<img src="Assets/demo.gif" width="300"/>

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

Related Skills

View on GitHub
GitHub Stars35
CategoryDevelopment
Updated1y ago
Forks1

Languages

Swift

Security Score

80/100

Audited on Feb 11, 2025

No findings