All Projects → SwiftUIX → Swiftuix

SwiftUIX / Swiftuix

Licence: mit
Extensions and additions to the standard SwiftUI library.

Programming Languages

swift
15916 projects
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Swiftuix

Loadingshimmer
An easy way to add a shimmering effect to any view with just one line of code. It is useful as an unobtrusive loading indicator.
Stars: ✭ 1,180 (-71.13%)
Mutual labels:  framework, library, swift-package-manager
swift-composable-app-example
Example iOS app built with module composition in mind.
Stars: ✭ 79 (-98.07%)
Mutual labels:  swift-package-manager, swiftui
ScrollViewProxy
ScrollViewProxy for SwiftUI on iOS 13 and up
Stars: ✭ 135 (-96.7%)
Mutual labels:  swift-package-manager, swiftui
ACarousel
A carousel view for SwiftUI | SwiftUI 旋转木马效果
Stars: ✭ 124 (-96.97%)
Mutual labels:  scroll, swiftui
react-scrolling-color-background
background with color transitioning as you scroll, declarative and easy to setup
Stars: ✭ 53 (-98.7%)
Mutual labels:  color, scroll
ConsoleUI
Rasterize SwiftUI views to images from macOS terminal
Stars: ✭ 52 (-98.73%)
Mutual labels:  swift-package-manager, swiftui
Shift
Light-weight EventKit wrapper.
Stars: ✭ 31 (-99.24%)
Mutual labels:  swift-package-manager, swiftui
goterminal
A cross-platform Go-library for updating progress in terminal.
Stars: ✭ 56 (-98.63%)
Mutual labels:  color, progressbar
column-text-view-ui
📄 Column Text View is an adaptive UI component that renders text in columns, horizontally [iOS 12, UIKit, TextKit, SwiftUI].
Stars: ✭ 11 (-99.73%)
Mutual labels:  swift-package-manager, swiftui
tapit-app
App which lets two people share their social media details by simply putting one phone on top of the other ("tapping"). Currently in development by Nikita Mounier.
Stars: ✭ 18 (-99.56%)
Mutual labels:  swift-package-manager, swiftui
Laden
SwiftUI loading indicator view
Stars: ✭ 23 (-99.44%)
Mutual labels:  swift-package-manager, swiftui
ResponderChain
Cross-platform first responder handling without subclassing views or making custom ViewRepresentables in SwiftUI. Similar to FocusState but for iOS 13+
Stars: ✭ 69 (-98.31%)
Mutual labels:  swift-package-manager, swiftui
ProgressText
A text progress bar with animation effect, highly customized.
Stars: ✭ 13 (-99.68%)
Mutual labels:  progressbar, textview
SwiftUI-Color-Kit
SwiftUI Color Pickers, Gradient Pickers And All The Utilities Needed To Make Your Own!
Stars: ✭ 120 (-97.06%)
Mutual labels:  swift-package-manager, swiftui
SwiftCurrent
A library for managing complex workflows in Swift
Stars: ✭ 286 (-93%)
Mutual labels:  swift-package-manager, swiftui
SwiftUI-Shapes
Commonly Used Shapes and Utilities In SwiftUI
Stars: ✭ 52 (-98.73%)
Mutual labels:  swift-package-manager, swiftui
LycricsTextView
No description or website provided.
Stars: ✭ 14 (-99.66%)
Mutual labels:  color, textview
SwiftDown
📦 A themable markdown editor component for your SwiftUI apps.
Stars: ✭ 203 (-95.03%)
Mutual labels:  swift-package-manager, swiftui
FormToolbar
Simple, movable and powerful toolbar for UITextField and UITextView.
Stars: ✭ 85 (-97.92%)
Mutual labels:  toolbar, textview
Colorful
CSS colors for use with SwiftUI
Stars: ✭ 23 (-99.44%)
Mutual labels:  color, swiftui

SwiftUIX

CI

SwiftUIX attempts to fill the gaps of the still nascent SwiftUI framework, providing an extensive suite of components, extensions and utilities to complement the standard library. This project is by far the most complete port of missing UIKit/AppKit functionality, striving to deliver it in the most Apple-like fashion possible.

Why

The goal of this project is to complement the SwiftUI standard library, offering hundreds of extensions and views that empower you, the developer, to build applications with the ease promised by the revolution that is SwiftUI.

Requirements

  • iOS 13, macOS 10.15, tvOS 13, or watchOS 6
  • Swift 5.5+
  • Xcode 13.0+

Installation

The preferred way of installing SwiftUIX is via the Swift Package Manager.

Xcode 11 integrates with libSwiftPM to provide support for iOS, watchOS, macOS and tvOS platforms.

  1. In Xcode, open your project and navigate to FileSwift PackagesAdd Package Dependency...
  2. Paste the repository URL (https://github.com/SwiftUIX/SwiftUIX) and click Next.
  3. For Rules, select Branch (with branch set to master).
  4. Click Finish.
  5. Open the Project settings, add SwiftUI.framework to the Linked Frameworks and Libraries, set Status to Optional.

Contents

All documentation is available via the repository wiki.

While the project itself is stable and heavily being used in production, its documentation is work-in-progress. Contributions are encouraged and welcomed.

UIKit → SwiftUI

UIKit SwiftUI SwiftUIX
LPLinkView - LinkPresentationView
UIActivityIndicatorView - ActivityIndicator
UIActivityViewController - AppActivityView
UIBlurEffect - BlurEffectView
UICollectionView - CollectionView
UIDeviceOrientation - DeviceLayoutOrientation
UIImagePickerController - ImagePicker
UIPageViewController - PaginationView
UIScreen - Screen
UISearchBar - SearchBar
UIScrollView ScrollView CocoaScrollView
UISwipeGestureRecognizer - SwipeGestureOverlay
UITableView List CocoaList
UITextField TextField CocoaTextField
UIModalPresentationStyle - ModalPresentationStyle
UIViewControllerTransitioningDelegate - UIHostingControllerTransitioningDelegate
UIVisualEffectView - VisualEffectView
UIWindow - WindowOverlay

Activity

  • ActivityIndicator

    ActivityIndicator()
        .animated(true)
        .style(.large)
    
  • AppActivityView - a SwiftUI port for UIActivityViewController.

    AppActivityView(activityItems: [...])
        .excludeActivityTypes([...])
        .onCancel { }
        .onComplete { result in
            foo(result)
        }

Appearance

  • View/visible(_:) - Sets a view's visibility.

Error Handling

  • TryButton - A button capable of performing throwing functions.

Geometry

  • flip3D(_:axis:reverse:) - Flips this view.
  • RectangleCorner - A corner of a Rectangle.
  • ZeroSizeView - A zero-size view for when EmptyView just doesn't work.

Keyboard

  • Keyboard - An object representing the keyboard.
  • View/padding(.keyboard) - Pads this view with the active system height of the keyboard.

Link Presentation:

  • LinkPresentationView

    LinkPresentationView(url: url)
        .frame(height: 192)

Navigation

  • View/navigationBarColor(_:) - Configures the color of the navigation bar for this view.
  • View/navigationBarTranslucent(_:) - Configures the translucency of the navigation bar for this view.
  • View/navigationBarTransparent(_:) - Configures the transparency of the navigation bar for this view.

Pagination

  • PaginationView

    PaginationView(axis: .horizontal) {
        ForEach(0..<10, id: \.hashValue) { index in
            Text(String(index))
        }
    }
    .currentPageIndex($...)
    .pageIndicatorAlignment(...)
    .pageIndicatorTintColor(...)
    .currentPageIndicatorTintColor(...)

Scrolling

  • View/isScrollEnabled(_:) - Adds a condition that controls whether users can scroll within this view. Works with:

    • CocoaList
    • CocoaScrollView
    • CollectionView
    • TextView

    Does not work with SwiftUI's ScrollView.

Search

  • SearchBar - A SwiftUI port for UISearchBar.

    struct ContentView: View {
        @State var isEditing: Bool = false
        @State var searchText: String = ""
        
        var body: some View {
            SearchBar("Search...", text: $searchText, isEditing: $isEditing)
                .showsCancelButton(isEditing)
                .onCancel { print("Canceled!") }
        }
    }
  • View/navigationSearchBar(_:) - Sets the navigation search bar for this view.

    Text("Hello, world!")
        .navigationSearchBar {
            SearchBar("Placeholder", text: $text)
        }
  • View/navigationSearchBarHiddenWhenScrolling(_:) - Hides the integrated search bar when scrolling any underlying content.

Screen

  • Screen - A representation of the device's screen.
  • UserInterfaceIdiom - A SwiftUI port for UIUserInterfaceIdiom.
  • UserInterfaceOrientation - A SwiftUI port for UserInterfaceOrientation.

Scroll

  • ScrollIndicatorStyle - A type that specifies the appearance and interaction of all scroll indicators within a view hierarchy
    • HiddenScrollViewIndicatorStyle - A scroll indicator style that hides all scroll view indicators within a view hierarchy.

Status Bar

  • View/statusItem(id:image:) - Adds a status bar item configured to present a popover when clicked

    Text("Hello, world!")
        .statusItem(id: "foo", image: .system(.exclamationmark)) {
            Text("Popover!")
                .padding()
        }

Text

  • TextView

    TextView("placeholder text", text: $text, onEditingChanged: { editing in
        print(editing)
    })

Visual Effects

  • VisualEffectBlurView - A blur effect view that expands to fill.

    VisualEffectBlurView(blurStyle: .dark)
        .edgesIgnoringSafeArea(.all)

Window

  • View/windowOverlay(isKeyAndVisible:content:) - Makes a window key and visible when a given condition is true.

Contributing

SwiftUIX welcomes contributions in the form of GitHub issues and pull-requests. Please refer the projects section before raising a bug or feature request, as it may already be under progress.

To create an Xcode project for SwiftUIX run bundle install; bundle exec fastlane generate_xcodeproj. To check the automated builds for SwiftUIX run bundle install; bundle exec fastlane build.

License

SwiftUIX is licensed under the MIT License.

Support

SwiftUIX is and will always be free and open. Maintaining SwiftUIX, however, is a time-consuming endeavour. If you're reliant on SwiftUIX for your app/project and would like to see it grow, consider contributing/donating as way to help.

Credits

SwiftUIX is a project of @vmanot.

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].