Skip to content

Daniel-Berezhnoy/SwiftUIBuddy

Repository files navigation

SwiftUIBuddy

Description

SwiftUIBuddy is a collection of beautiful, easy-to-use components for your SwiftUI App. It contains custom Buttons, Pickers, Progress Views, Text Fields, and so much more! All of the components are highly customizable and built using 100% SwiftUI.

Motivation

The framework was designed with simplicity and functionality in mind. It strives to resemble Apple's design style and follow Human Interface Guidelines. For increased stability, SwiftUIBuddy does not depend on any 3rd party libraries or frameworks and is written only using native components provided by SwiftUI.

Wiki

How to use SwiftUIBuddy Components:

Buttons

     StandardButton

StandardButton("Standard Button") {
    print("Button Tapped")
}

     DestructiveButton

DestructiveButton("Delete Account", style: .bordered) {
    deleteAccount()
}

DestructiveButton("Remove Connection") {
    removeConnection()
}

     PlusButton

PlusButton(color: .cyan) {
    addNewFile()
}

     DismissButton
  

DismissButton {
    showingSheet = false
}

Progress Views

       CapsuleProgressBar

CapsuleProgressBar(currentStage: 4, totalStages: 5)

       LoadingSpinner
 

LoadingSpinner()

Fields

    LoginField

  

LoginField("Email", text: $email)
LoginField("Password", text: $password, fieldType: .password)

    DollarTextField

  

DollarTextField(9.40, amount: $price)

Pickers

    TwitterPicker

   

TwitterPicker(choices: ["Ramen", "Miso", "Pho"], selectedIndex: $soup)

    RadioPicker

   

RadioPicker(choices: ["Male", "Female", "Non-Binary"], selectedChoice: $gender)

Helper Tools

    Spacers

   

Spacers(4)

    Dividers

Dividers(6)

How to Install

  1. Go to Xcode -> File -> Add Packages
  2. Paste https://github.com/Daniel-Berezhnoy/SwiftUIBuddy into the search bar
  3. Confirm and install the Package
  4. Import SwiftUIBuddy in the file(s) where you want to use it
import SwiftUIBuddy

Notes

The minimum deployment target is iOS 15.0. This project is a work-in-progress, so expect it to grow, and feel free to contribute.