Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/Mijick/GridView

Easy Grids with SwiftUI
https://github.com/Mijick/GridView

grid grid-layout ios-swift swift swift-package swift-package-manager swift-packages swift5 swiftlibrary swiftpackagemanager swiftui swiftui-components swiftui-framework

Last synced: 3 months ago
JSON representation

Easy Grids with SwiftUI

Awesome Lists containing this project

README

        






GridView Logo


Layouts made simple


Lay out your data in the blink of an eye. Keep your code clean


Try demo we prepared
|
Roadmap
|
Propose a new feature



Library in beta version
Designed for SwiftUI
Platforms: iOS
Current Version
License: MIT


Made in Kraków

Follow us on X


Let's work together


Stargazers


GridView Examples


GridView is a free, and open-source library for SwiftUI that makes creating grids easier and much cleaner.
* **Improves code quality.** Create a grid using `GridView` constructor - simply pass your data and we'll deal with the rest. Simple as never!
* **Designed for SwiftUI.** While developing the library, we have used the power of SwiftUI to give you powerful tool to speed up your implementation process.


# Getting Started
### ✋ Requirements

| **Platforms** | **Minimum Swift Version** |
|:----------|:----------|
| iOS 14+ | 5.0 |

### ⏳ Installation

#### [Swift Package Manager][spm]
Swift Package Manager is a tool for automating the distribution of Swift code and is integrated into the Swift compiler.

Once you have your Swift package set up, adding GridView as a dependency is as easy as adding it to the `dependencies` value of your `Package.swift`.

```Swift
dependencies: [
.package(url: "https://github.com/Mijick/GridView", branch(“main”))
]
```


# Usage
### 1. Call initialiser
To declare a Grid for your data set, call the constructor:

```Swift
struct ContentView: View {
private let data = [SomeData]()

var body: some View {
GridView(data, id: \.self) { element in
SomeItem(element: element)
}
}
}
```

### 2. Customise Grid
Your GridView can be customised by calling `configBuilder` inside the initialiser:

```Swift
struct ContentView: View {
private let data = [SomeData]()

var body: some View {
GridView(data, id: \.self, content: SomeItem.init, configBuilder: { $0
.insertionPolicy(.fill)
.columns(4)
.verticalSpacing(12)
})
}
}
```

### 3. Declare number of columns
You can change the number of columns of an item by calling .columns of Item:
```Swift
struct ContentView: View { ... }
struct SomeItem: View {
...

var body: some View {
...
.columns(2)
}
}
```




# Try our demo
See for yourself how does it work by cloning [project][Demo] we created

# License
GridView is released under the MIT license. See [LICENSE][License] for details.





# Our other open source SwiftUI libraries
[PopupView] - The most powerful popup library that allows you to present any popup


[NavigationView] - Easier and cleaner way of navigating through your app


[CalendarView] - Create your own calendar object in no time


[CameraView] - The most powerful CameraController. Designed for SwiftUI


[Timer] - Modern API for Timer


[MIT]: https://en.wikipedia.org/wiki/MIT_License
[SPM]: https://www.swift.org/package-manager

[Demo]: https://github.com/Mijick/GridView-Demo
[License]: https://github.com/Mijick/GridView/blob/main/LICENSE

[PopupView]: https://github.com/Mijick/PopupView
[NavigationView]: https://github.com/Mijick/NavigationView
[CalendarView]: https://github.com/Mijick/CalendarView
[CameraView]: https://github.com/Mijick/CameraView
[Timer]: https://github.com/Mijick/Timer