Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/GoodRequest/GoodUIKit

📑 GoodUIKit is a UIKit extensions library filled with reusable UI snippets for faster and more efficient iOS development. Boost productivity and streamline your workflow with ready-to-use UI components.
https://github.com/GoodRequest/GoodUIKit

ios library swift uikit

Last synced: 6 days ago
JSON representation

📑 GoodUIKit is a UIKit extensions library filled with reusable UI snippets for faster and more efficient iOS development. Boost productivity and streamline your workflow with ready-to-use UI components.

Awesome Lists containing this project

README

        

# GoodUIKit

[![iOS Version](https://img.shields.io/badge/iOS_Version->=_12.0-brightgreen?logo=apple&logoColor=green)]()
[![Swift Version](https://img.shields.io/badge/Swift_Version-5.5-green?logo=swift)](https://docs.swift.org/swift-book/)
[![Supported devices](https://img.shields.io/badge/Supported_Devices-iPhone/iPad-green)]()
[![Contains Test](https://img.shields.io/badge/Tests-NO-blue)]()
[![Dependency Manager](https://img.shields.io/badge/Dependency_Manager-SPM-red)](#swiftpackagemanager)

Good UIKit is a collection of useful and frequently used Swift UIKit extensions for iOS development.
These extensions aim to simplify and streamline common tasks, making it easier for developers
to write clean and concise code.

## Instalation

### Swift Package Manager

Create a `Package.swift` file and add the package dependency into the dependencies list.
Or to integrate without package.swift add it through the Xcode add package interface.

[//]: # (Don't forget to add the version once available)
```swift

import PackageDescription

let package = Package(
name: "SampleProject",
dependencies: [
.Package(url: "https://github.com/GoodRequest/GoodUIKit" from: "addVersion")
]
)

```

## Usage

Use our extensions with `.gr` just like this:

```swift
myCollectionView.gr.registerCell(fromClass: MyCollectionViewCell.self)

myTableView.gr.registerHeaderFooterView(fromClass: MyTableViewHeader.self)
```
### UIKit Combine
You can define Publisher for your button or other user interactive elements

```swift

private(set) lazy var buttonPublisher = myButton.gr.publisher(for: .touchUpInside)

```
then subcribe to it and handle the actions whenever user interacts with the element

```swift

buttonPublisher
.sink { [weak self] _ in
// do actions
}
.store(in: &cancellables)

```

## License
GoodUIKit is released under the MIT license. See [LICENSE](LICENSE.md) for details.