Swiftpack.co - Swift Packages by maustinstar

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.

Packages published by maustinstar

maustinstar/swiftui-drawer v0.1.0
A SwiftUI bottom-up controller, like in the Maps app. Drag to expand or minimize.
⭐️ 891
🕓 2 years ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Landscape
3 years ago
### Landscape! #### Check out the new `.onLayoutForSizeClass` modifier! With `.onLayoutForSizeClass` you can update your state variables to layout your drawer for landscape. #### Resting heights are now binding! This means you can keep a state variable to contain your view heights. Instead of using the old `.locked` modifier, just change the resting heights parameter to a single height. #### New Documentation Layout The Readme is more concise, but it now contains links to other markdown files for Examples and Reference.
[Beta] Landscape
3 years ago
## [Beta] Landscape Introducing behaviors for landscape and split view orientations ## New View Modifiers ### Alignment Defines the horizontal alignment for the drawer. The default is fullscreen. ```swift public enum DrawerAlignment { case leading, center, trailing, fullscreen } ``` **Usage** ```swift Drawer(heights: [100, 340]) { Color.blue } .width(.constant(340)) .alignment($alignment) ``` ### Width Defines a width for the drawer when not in fullscreen alignment. **Usage** ```swift Drawer(heights: [100, 340]) { Color.blue }.width(.constant(340)) ``` ### OnLayoutForSizeClass A callback to receive updates when the drawer is laid out for a new size class. This closure is executed every time the device layout changes (portrait, landscape, and split view). Use this to modify your view when the drawer's layout changes. **Usage** Alter the resting heights and alignment when the screen layout changes. ```swift Drawer(heights: [100, 340]) { Color.blue } .onLayoutForSizeClass { (sizeClass) in switch (sizeClass.horizontal, sizeClass.vertical) { case (.compact, .compact): // smaller iPhone landscape break case (.compact, .regular): // iPhone portrait // iPad portrait splitview // iPad landscape smaller splitview break case (.regular, .compact): // larger iPhone landscape break case (.regular, .regular): // iPad fullscreen // iPad landscape larger splitview break default: // Unknown layout break } } ```
Declarative View Modifiers
3 years ago
## 🥳 New Declarative View Modifiers! Thank you for all your support and feature requests! New declarative view modifiers will help you customize the drawer experience. Shoutout to [u/pupdogg007](https://www.reddit.com/r/swift/comments/hra54q/an_easy_swiftui_drawer_to_use_like_in_maps_app/fy3ryr7?utm_source=share&utm_medium=web2x) for my favorite requested feature: locking the drawer. I also spent a lot of time refining the fluidity of the drawer animations. In v0.0.2, I made the drags more responsive by toggling animation. In v0.03, after formulating a function on Desmos, I am introducing 'springiness' to the drawers when they are pulled beyond their boundaries. This animation feels more fluid by asymptotically reducing the influence of a drag. ### 🔒 Locked Locks the drawer in a controlled position. When set to true, the drawer will animate into the locked height. Lock into the current resting height ```swift /*Drawer*/.locked($locked) { (currentPosition) in return currentPosition } ``` ### 🪀 Spring Sets the springiness of the drawer when pulled past boundaries. The user's drag displacement is transformed by a [logistic curve](https://en.wikipedia.org/wiki/Logistic_function) for a natural hard-spring pull that reaches an asymptote. ```swift /*Drawer*/.spring(20) ``` ### 😴 OnRest A callback to receive updates when the drawer reaches a new resting level. This closure is executed every time the drawer reaches a new resting hieght. Use this when you want to receive updates on the drawer's changes. ```swift /*Drawer*/.onRest { (restingHeight) in print(restingHeight) } ``` ### 💥 Impact Sets the haptic impact of the drawer when resting ```swift /*Drawer*/.impact(.light) ``` ## Other Notes Deprecated the init's `impact` parameter to prefer the declarative modifier.
Animation & Haptics
3 years ago
### Edited Animation The animation is now disabled when dragging for increased responsiveness, and the release animation is now a spring. ### New Haptics Haptic impact can be defined when the drawer reaches a resting height, using a `UIImpactFeedbackGenerator`.
Initial Release
3 years ago
iOS
maustinstar/shiny v0.0.1
Shiny uses your gyroscope to simulate lighting and motion effects on colors. Works on almost every SwiftUI View.
⭐️ 853
🕓 2 years ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Initial Release
3 years ago
iOS macOS
maustinstar/liquid v0.0.2
Create a playful backsplash in SwiftUI.
⭐️ 724
🕓 2 years ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Bugfix Patch
2 years ago
Resolves #3
3 years ago
## Welcome to Liquid! This initial release introduces the `Liquid()` view.
iOS macOS watchOS tvOS
maustinstar/SimulatorControl v0.1
A Swift Package for simctl automation
⭐️ 6
🕓 4 years ago

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics