Skip to content

A UI library for iOS and macOS applications to showcase all contributors of public or private repositories.

License

Notifications You must be signed in to change notification settings

dscyrescotti/ContributorUI

Repository files navigation

ContributorUI is a library for user interface available for iOS and macOS applications, aimed at displaying all developers who are contributing to the project.

⚙️ Setup

To access GitHub API, you need to feed personal access token into ContributorUI. Firstly, create a token under Developer Settings and add it somewhere safe in the project. Then call configure(with:) with your token key.

ContributorUI.configure(with: <token>)

For those who want to access private repository, make sure you enable repo scope when creating your token.

Without the token key, GitHub API allows to access public repository with a lower rate limit. If you need a higher rate limit, it is mandatory to add the token key. If not, you will end up getting unauthorized error.

💡 Features

ContributorCard

ContributorCard highlights the top contributors of the project in a card style. It can be placed in a specific screen to show the top committers.

Usage

ContributorCard(owner: <owner>,repo: <repo>)
    .padding(20)
    .backgroundStyle(.thinMaterial)
    .estimatedSize(38)
    .minimumCardRowCount(1)
    .maximumDisplayCount(30)

ContributorList

ContributorList showcases all contributors of the project in table or grid style with infinite scroll behaviour. It can be shown via sheet or full screen cover in your application.

Usage

ContributorList(owner: <owner>,repo: <repo>)
    .contributorListStyle(.grid)
    .showsCommits(true)

UIKit and AppKit Support

ContributorUI comes with the handy view controllers and views for UIKit and AppKit to utilize them in ease even though it is natively developed in SwiftUI. The following table provides the corresponding view controllers and views in UIKit and AppKit.

SwiftUI UIKit AppKit
ContributorCard UIContributorCard NSContributorCard
ContributorList UIContributorListController NSContributorListController

⚠️ Requirements

  • iOS 16+, macOS 13+

ContributorUI is developed using Xcode 14.2. Make sure you are using Xcode 14.2 and above.

🛠 Installation

📦 Using Swift Package Manager

Add it as a dependency within your Package.swift.

dependencies: [
    .package(url: "https://github.com/dscyrescotti/ContributorUI.git", from: "1.0.1")
]

🎁 Using CocoaPods

Add it inside your Podfile.

pod 'ContributorUI', '~> 1.0.1'

🔎 Exploration

Demo Project

ContributorUI also comes with the demo project which is an optimal spot to explore the usages. To run the demo project, you can use the following commands in your terminal.

> git clone https://github.com/dscyrescotti/ContributorUI.git
> cd ContributorUI && xed Demo/Demo

Afterwards, Xcode will open the project and then you can hit ⌘+R to run the project.

For those using UIKit or AppKit, you can check out Demo/Demo-UIKit and Demo/Demo-AppKit.

🏆 Inspiration

ContributorUI is inspried by contrib.rocks and is developed to praise the contributors of the project in iOS and macOS applications with a minimal setup.

✍️ Author

Dscyre Scotti | @dscyrescotti

   

👨‍💻 Contributions

ContributorUI welcomes all developers to contribute if you have any idea to enhance and open an issue if you encounter any bug.

📢 Discussions

Please feel free to share your feedback or ideas on ContributorUI by visiting the Discussion Page for the project. We are always eager to hear from users like you. Additionally, if you have used ContributorUI in your project, we would love to know more about your experience! Please share your projects using ContributorUI under Projects Using ContributorUI category so that we can compile a list of projects and add it on README.md. Thank you for your support!

© License

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

About

A UI library for iOS and macOS applications to showcase all contributors of public or private repositories.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published