All Projects → Q-Mobile → Qgrid

Q-Mobile / Qgrid

Licence: mit
🎛 QGrid: The missing SwiftUI collection view.

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Qgrid

Indoorjs
Indoor mapping for floorplans using on fabricjs
Stars: ✭ 59 (-95.38%)
Mutual labels:  grid
Lagrit
Los Alamos Grid Toolbox (LaGriT) is a library of user callable tools that provide mesh generation, mesh optimization and dynamic mesh maintenance in two and three dimensions.
Stars: ✭ 67 (-94.75%)
Mutual labels:  grid
Pan Zoom
Pan / zoom for any element
Stars: ✭ 77 (-93.97%)
Mutual labels:  grid
Ocgis
OpenClimateGIS is a set of geoprocessing and calculation tools for CF-compliant climate datasets.
Stars: ✭ 60 (-95.3%)
Mutual labels:  grid
Ecommerce Netlify
🛍 A JAMstack Ecommerce Site built with Nuxt and Netlify Functions
Stars: ✭ 1,147 (-10.11%)
Mutual labels:  grid
Swiftgui
SwiftGUI is an API inspired by SwiftUI DSL, using Dear ImGui as renderer and running on macOS 10.13+ and iOS 11+
Stars: ✭ 74 (-94.2%)
Mutual labels:  declarative-ui
React Stonecutter
Animated grid layout component for React
Stars: ✭ 1,089 (-14.66%)
Mutual labels:  grid
Aceto
A programming language based on a 2D Hilbert curve grid
Stars: ✭ 83 (-93.5%)
Mutual labels:  grid
Plasma
An Android Application written using latest Android Jetpack components and best practices, which displays trending movies/TV shows and cast, user can search movies and TV shows and also add them to watchlist.
Stars: ✭ 67 (-94.75%)
Mutual labels:  declarative-ui
Easygrid
EasyGrid - VanillaJS Responsive Grid
Stars: ✭ 77 (-93.97%)
Mutual labels:  grid
Equalizecss
Css framework with grid based on flexboxes
Stars: ✭ 61 (-95.22%)
Mutual labels:  grid
Awesome Grid
A curated list of grid(table) libraries and resources that developers may find useful.
Stars: ✭ 1,142 (-10.5%)
Mutual labels:  grid
Axentix
Axentix is an open source Framework based on CSS Grid using HTML, CSS and JS. The easy layout control and grid system makes it one of the most easy to learn framework.
Stars: ✭ 75 (-94.12%)
Mutual labels:  grid
React Ingrid
React infinite grid
Stars: ✭ 59 (-95.38%)
Mutual labels:  grid
Interior
Design system for the modern web.
Stars: ✭ 77 (-93.97%)
Mutual labels:  grid
Glsl Grid
Draws an antialiased grid along the X/Y/Z direction of a mesh.
Stars: ✭ 57 (-95.53%)
Mutual labels:  grid
Path planning
This repository contains path planning algorithms in C++ for a grid based search.
Stars: ✭ 70 (-94.51%)
Mutual labels:  grid
Grid Cheatsheet
CSS Grid cheat sheet
Stars: ✭ 83 (-93.5%)
Mutual labels:  grid
D3 Iconarray
A D3 module for making grids of icons
Stars: ✭ 79 (-93.81%)
Mutual labels:  grid
React Native Grid List
🌁 Grid list component implemented with FlatList
Stars: ✭ 74 (-94.2%)
Mutual labels:  grid

[NOTE]
If you'd like to see QGrid in action, check out this demo of QDesigner (see video below).
Install QDesigner: https://apps.apple.com/us/app/qdesigner/id1500810470
Install a companion QDesigner Client on iPhone, to see your UI design on a target device, updated in real-time: https://apps.apple.com/us/app/qdesignerclient/id1500946484

Learn more at: https://Q-Mobile.IT/Q-Designer

QDesigner Preview

QGrid: The missing SwiftUI collection view.

“Build Platforms Swift Package Manager License: MIT Twitter: @karolkulesza

QGrid is the missing SwiftUI collection view. It uses the same approach as SwiftUI's List view, by computing its cells from an underlying collection of identified data.

🔷 Requirements

     ✅ macOS 10.15+
     ✅ Xcode 11.0
     ✅ Swift 5+
     ✅ iOS 13+
     ✅ tvOS 13+

🔷 Installation

QGrid is available via Swift Package Manager.

Using Xcode 11, go to File -> Swift Packages -> Add Package Dependency and enter https://github.com/Q-Mobile/QGrid

🔷 Usage

✴️ Basic scenario:

In its simplest form, QGrid can be used with just this 1 line of code within the body of your View, assuming you already have a custom cell view:

struct PeopleView: View {
  var body: some View {
    QGrid(Storage.people, columns: 3) { GridCell(person: $0) }
  }
}   

struct GridCell: View {
  var person: Person

  var body: some View {
    VStack() {
      Image(person.imageName)
        .resizable()
        .scaledToFit()
        .clipShape(Circle())
        .shadow(color: .primary, radius: 5)
        .padding([.horizontal, .top], 7)
      Text(person.firstName).lineLimit(1)
      Text(person.lastName).lineLimit(1)
    }
  }
}

✴️ Customize the default layout configuration:

You can customize how QGrid will layout your cells by providing some additional initializer parameters, which have default values:

struct PeopleView: View {
  var body: some View {
    QGrid(Storage.people,
          columns: 3,
          columnsInLandscape: 4,
          vSpacing: 50,
          hSpacing: 20,
          vPadding: 100,
          hPadding: 20) { person in
            GridCell(person: person)
    }
  }
}   

🔷 Example App

📱QGridTestApp directory in this repository contains a very simple application that uses QGrid. Open QGridTestApp/QGridTestApp.xcodeproj and either use the new Xcode Previews feature or just run the app.

🔷 QGrid Designer

📱QGridTestApp contains also the QGrid Designer area view, with sliders for dynamic run-time configuration of the QGrid view (with config option to hide it). Please refer to the following demo executed on the device:

🔷 Roadmap / TODOs

Version 0.1.1 of QGrid contains a very limited set of features. It could be extended by implementing the following tasks:

     ☘️ Parameterize spacing&padding configuration depending on the device orientation
     ☘️ Add the option to specify scroll direction
     ☘️ Add content-only initializer to QGrid struct, without a collection of identified data as argument (As in SwiftUI’s List)
     ☘️ Add support for other platforms (watchOS)
     ☘️ Add Stack layout option (as in UICollectionView)
     ☘️ Add unit/UI tests
     ☘️ ... many other improvements

🔷 Contributing

👨🏻‍🔧 Feel free to contribute to QGrid by creating a pull request, following these guidelines:

  1. Fork QGrid
  2. Create your feature branch
  3. Commit your changes, along with unit tests
  4. Push to the branch
  5. Create pull request

🔷 Author

     👨‍💻 Karol Kulesza (@karolkulesza)

🔷 License

     📄 QGrid is available under the MIT license. See the LICENSE file for more info.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].