Swiftpack.co - Swift Packages by Flowductive

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

Packages published by Flowductive

Flowductive/easy-firebase 1.4.5
🔥 A Swifty solution for all things Firebase. Quickly implement Firestore and Authentication on iOS + macOS using Swift protocols and methods.
⭐️ 67
🕓 45 weeks 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.
1.4.5
45 weeks ago
This update fixes issues with accounts resetting.
1.4.4
52 weeks ago
This update fixes issues with Firestore Querying and Cloud Messages.
1.4.3
1 year ago
🎉 Thank you for supporting EasyFirebase! I'm a full-time student spending my free time on this library, so I apologize if there any bugs present. Feel free to contribute with a [pull request](https://github.com/Flowductive/easy-firebase/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc) or report buts in [Issues](https://github.com/Flowductive/easy-firebase/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc)! ## Minor Changes - Added a method to listen to Singleton updates. - Added an option to override EasyLink's redirect to the AppStore using `EasyLink.redirectToAppStore`.
1.4.2
1 year ago
🎉 Thank you for supporting EasyFirebase! I'm a full-time student spending my free time on this library, so I apologize if there any bugs present. Feel free to contribute with a [pull request](https://github.com/Flowductive/easy-firebase/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc) or report buts in [Issues](https://github.com/Flowductive/easy-firebase/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc)! ## Minor Changes - Firebase Remote Config can now be imported as a dependency. - Singletons are now explicitly stored with `set(singleton:...)`. - `EasyAuth.signInWithApple(...)` now uses a completion handler. - Device token improvements. - Persistence can now be toggled using `EasyFirestore.usePersistence`. ## Fixes - Issues with EasyLink have been fixed.
1.4.0
1 year ago
🎉 Thank you for supporting EasyFirebase! I'm a full-time student spending my free time on this library, so I apologize if there any bugs present. Feel free to contribute with a [pull request](https://github.com/Flowductive/easy-firebase/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc) or report buts in [Issues](https://github.com/Flowductive/easy-firebase/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc)! ## New Features ### Built-In Geo-Querying Geohashing and querying is built-in now with EasyFirebase. Conform your document type to `GeoQueryable` to unlock geo-querying capabilities for your documents. ```swift class MyDocument: Document, GeoQueryable { static var geohashPrecision: GeoPrecision = .normal @objc var geohash: String = "" var latitude: Double var longitude: Double ... } // Works if myDocument.latitude and myDocument.longitude are non-nil myDocument.updateGeohash() // Query nearby documents EasyFirestore.Querying.near(\MyDocument.geohash, at: location, precision: .loose, order: .ascending) { documents in ... } ``` ### EasyLink Support Create a Firebase Dynamic Link using `EasyLink`: ```swift EasyLink.urlPrefix = "company.page.link" EasyLink.backupURL = URL(string: "https://www.mycompany.com") var link = EasyLink(host: "mycompany.com", query: ("foodID", food.id)) link.shorten { shortURL in ... } ``` Handle a universal URL using `EasyLink` to retrieve the deep-link payload: ```swift EasyLink.handle(handledURL) { easyLink in guard let easyLink = easyLink else { return } if let id: String = easyLink.query["foodID"] { ... } } ``` Pass in social parameters: ```swift link.social = .init(title: "My Food", desc: "Check out this awesome meal.", imageURL: foodImageURL) ``` ### Firestore Map Updating Update the value of a field in a map in a field in a document in Firestore: ```swift EasyFirestore.Updating.updateMapValue(key: "Barry", value: 25, to: \.friends, in: global.user) { error in ... } ``` Remove a similar value: ```swift EasyFirestore.Updating.removeMapValue(key: "Barry", from: \.friends, in: global.user) { error in ... } ``` ### EasyMessaging Improvements It's easier to define the type of information you wish to display in a `MessagingNotification`. A new initializer provides explicit control over a remote notification's title, body, and other information: ```swift let notification = MessagingNotification(title: "Hello, world!", body: "It's a great, sunny day. Fizzbuzz! 🐝", from: global.user, in: "general") ``` ## Minor Changes - New Session Errors: `.endError`, `.alreadyHost`, `.notInSession`, `.alreadyInSession` provide additional session warnings. - The `onUpdate` callback of `EasyFirestore.Listening.listen(...)` will be called passing `nil` if no data can be found for a document. - Added a simple `EasyFirestore.Updating` demonstration to the Example Project. ## Bug Fixes
1.3.0
1 year ago
🎉 Thank you for supporting EasyFirebase! I'm a full-time student spending my free time on this library, so I apologize if there any bugs present. Feel free to contribute with a [pull request](https://github.com/Flowductive/easy-firebase/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc) or report buts in [Issues](https://github.com/Flowductive/easy-firebase/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc)! > **Note** New `firebase-ios-sdk` dependency version for this version of EasyFirebase: **9.0.0** Please make sure to update your dependencies! ## New Features ### Sessions Create, join, and listen to Sessions: a place where users can join together to exchange data in an interactive way: ```swift class MySession: Session { // Inherited Properties var id: String = UUID().uuidString var dateCreated: Date = Date() var host: FUser.ID = "" var users: [FUser.ID] = [] // Your custom properties var myData: String = "Hello, world!" } ``` ```swift // Create a new session myUser.createSession(ofType: MySession.self) { session, error in // Passes a session if success, error if failure ... } // Join an existing session myUser.joinSession(id: sessionID, ofType: MySession.self) { session, error in ... } // Once the session has been created/joined, listen to the session myUser.listen(to: session, onUpdate { session in ... }, onEnd: { ... }) // Leave a session myUser.leaveSession(session) { error in ... } ``` ### Improved Firestore Updating Append and remove items in arrays remotely without affecting your read count: ```swift // Append element to array EasyFirestore.Updating.append(\.ingredients, with: "Cheese", in: pizzaDocument) { error in ... } // Increment field EasyFirestore.Updating.increment(\.pepperoniCount, by: 5, in: pizzaDocument) // Remove elements from array EasyFirestore.Updating.remove(\.ingredients, taking: ["Garlic", "Anchovies", "Pineapple"], from: pizzaDocument) ``` ## Minor Changes - Improved the stability of EasyUser's encoding and decoding. - Added documentation for `EasyFirestore.Listening` methods. - Refactored all `DocumentID` types (a.k.a `String`) to `<DOCUMENT_CLASS_NAME>.ID` associated type i.e. `MyDocumentType.ID`.
1.2.5
1 year ago
Thanks for using EasyFirebase! 🎉 ## Minor Changes - Added Swift Package Index documentation support
1 year ago
Thanks for using EasyFirebase! 🎉 ## New Features - Use `EasyFirestore.Querying.where(path:matches:completion:)` to query documents matching a string (for search purposes) - Use the `.inQueryableFormat` computed String property to obtain a queryable format of a String (no symbols, capital letters, etc.) ## Minor Changes - Added a `key` property to Messaging Notifications so basic action handling can be passed thorough `MessagingNotification`s - EasyAuth will now automatically update `.lastSignon`, `EasyUser.versionUpdate`, and `.appVersion`. - Emails are no longer required to form `EasyUser` objects when using `EasyUser.get(from: User)` - Use the `.incremented(...)` method to increment a String to querying ## Bug Fixes - Fixed `.getChildren(...)` Document method - Fixed issues with operator precedence
1.2.3
1 year ago
🎉 Thank you for supporting EasyFirebase! I'm a full-time student spending my free time on this library, so I apologize if there any bugs present. Feel free to contribute with a [pull request](https://github.com/Flowductive/easy-firebase/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc) or report buts in [Issues](https://github.com/Flowductive/easy-firebase/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc)! ## Minor Changes - Reduced the Analytics update cooldown to 2 seconds - Made `EasyUser.analyticsProperties()` overridable - Improved the callbacks for all auth methods - Added an optional completion handler to `EasyUser.refreshEmailVerificationStatus()` - Relevant error messages are now shown for Storage uploads ## Bug Fixes - Fixed completion handlers not being called on `EasyUser` when auth is mismatched
1.2.2
1 year ago
🎉 Thank you for supporting EasyFirebase! I'm a full-time student spending my free time on this library, so I apologize if there any bugs present. Feel free to contribute with a [pull request](https://github.com/Flowductive/easy-firebase/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc) or report buts in [Issues](https://github.com/Flowductive/easy-firebase/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc)! ## Minor Additions - Add Google + Apple sign-in examples - Add additional wiki assets ## Bug Fixes - `EasyUser`'s `.refreshEmailVerificationStatus()` now properly reloads the status - Other minor fixes
iOS macOS watchOS tvOS
Flowductive/shiny-swift-ui 1.2.0
✨ Write cleaner, conciser, and more consistent SwiftUI code with a suite of pre-made extensions, view modifiers, and components.
⭐️ 54
🕓 1 year 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.
1.2.0
1 year ago
Thanks for using ShinySwiftUI! 🎉 ## New Features ### EnumPicker Quickly create a Picker iterating through enum values: ```swift // Customize view for each item EnumPicker(selected: $selectedFruit, title: "Choose a Fruit") { fruit in Text("\(fruit.emoji) \(fruit.name)") } // Display enum's rawValue as Text for each item EnumPicker(selected: $selectedVeggie) ``` ### Animations Added new `.slickEaseInOut(duration:)` animation. Specify your slick animation style within the `.slickAnimation(...)` view modifier: ```swift myView.slickAnimation(.inOut) myView.slickAnimation(.out, delay: 1.0, duration: 0.25) ``` ## Minor Changes - Added a new `Line` shape. - Renamed `.reverseMask(...)` to `.inverseMask(...)` for clarification. - Create an at-maximum square frame using the new `.frame(max:)` modifier. - Improved the performance of the `.shortcut(...)` view. - Added the `.paddedDrawingGroup(_:)` modifier to create a drawing group without clipping content. - The `.every(_:perform:)` method will now disconnect the timer on view disappear.
1.1.1
1 year ago
Thanks for using ShinySwiftUI 🎉! ## Bug Fixes - Fixed a versioning issue with iOS.
1.1.0
1 year ago
Thanks for using ShinySwiftUI! 🎉 ## New Features Easily make dynamic content based on clicking/hovering with `HoverView`: ```swift HoverView { hover in Rectangle().foregroundColor(hover ? .red : .blue) } HoverView { hover, clicked in ... } ``` ## Minor Additions - Added the `eight`, `.slight`, and `.verySlight` opacity levels. - Added a `UnitPoint` method for tracking mouse movement `.trackingMouseUnit(...)` - `.slickAnimation(...)` can be disabled by setting `"reduced_animations"` user default to `false` - Added a `.reverseMask(...)` view modifier - Added a `.float` transition - Added a `duration:` field to `.slickAnimation(...)` ## Fixes - Fixed issues with ShinySwiftUI operator precedence
1.0.1
1 year ago
Thanks for using ShinySwiftUI! 🎉 ## New Features - Create a repeating action using the `.every(_:perform:)` modifier: ```swift MyView().every(3.0) { print("Hello!") } ``` - Create a delayed action using the `.after(_:perform:)` modifier: ```swift MyView().after(3.0) { print("Hello!") } ``` - ShinySwiftUI is now watchOS compatible! ## Minor Additions - Added an optional `isTrailing` parameter to `.pageTransition()` for forward and back page transitions
1.0.0
1 year ago
Thanks for using ShinySwiftUI! 🎉 ## Minor Additions - Add `README` content
0.4.3
1 year ago
Thanks for using ShinySwiftUI! 🎉 ## Minor Additions - Added a `Color(hex:)` initializer
0.4.2
1 year ago
Thanks for using ShinySwiftUI! 🎉 ## Minor Additions - Added `swipeTransition(on:)` view modifier that adds a custom swipe transition based on the toggle of the `value` parameter. - Added a `cornerRadius` parameter to the `higlight(_:cornerRadius:monitoring:)` view modifier
0.4.1
2 years ago
Thanks for using ShinySwiftUI! 🎉 ## New Features ### ShoveView Use `ShoveView` to quickly push your content to corners/edges of the parent view, like `topLeading` or `bottomTrailing`: ```swift ShoveView(.topLeading) { Text("Top-left corner") } ShoveView(.bottomTrailing) { /* ... */ } ``` ## Minor Changes - Added the `.innerRoundedBorder(_:cornerRadius:lineWidth:)` view modifier - Added the `.debug()` view modifier - Improved `HighlightView` ## Bug Fixes - Fixed an issue with the Swipe transition
0.4.0
2 years ago
Thanks for using ShinySwiftUI! 🎉 ## New Features ### Generic Stack Quickly change from an `HStack` to a `VStack`, and vice-versa: ```swift // Leading-aligned VStack or Top-aligned HStack GStack(platform == .iOS ? .horizontal : .vertical, alignment: .beginning, spacing: .s) { Text("Item 1") Text("Item 2") Text("Item 3") } // Trailing-aligned VStack or bottom-aligned HStack GStack(platform == .iOS ? .horizontal : .vertical, alignment: .end) { /* ... */ } ``` ### Text Transitions You can now easily use transitions on `Text` values with the `transition(_:value:)` view modifier: ```swift @State var value = "Hello World!" Text(value) .transition(.turn, value: value) ``` ### Highlight Highlight views by changing a global `Int` value: ```swift // Highlights the view if global.viewToHighlight equals 23 MyView().highlight(23, monitoring: $global.viewToHighlight) ``` ### Conditional Colors Show colors conditionally with ease: ```swift MyView().foregroundColor(.red.if(myVal == 5)) ``` ## Minor Changes - Added `Animation.rampEaseIn` and `Animation.rampEaseOut` - Added static `UIDevice.bottomBarHeight` property - Added a `scale` parameter to `AnyTransition.pop(scale:)` - Made the `Wedge` custom shape animatable - `slickAnimation(value:delay:)` now has a `delay` parameter ## Bug Fixes - Fixed `AnyTransition.pop`
2 years ago
Thanks for using ShinySwiftUI! 🎉 ## Major Changes ### Mouse Tracking Use a simple view modifier to track the position of the user's mouse in macOS. ```swift SomeView() .trackingMouse { position in self.mousePosition = position } ``` ### More Transitions Spice up your view appearance with custom transitions. - `.turn`: Flips the disappearing view upwards and rotates in the appearing view. - `.swipe`: Creates a left/right swiping motion with a light fade. - `.pop`: Creates a "pop" effect, scaling and fading the view accordingly. ### Tooltip View Add a tooltip to your view that appears automatically on hover. ```swift SomeView() .withTooltip { Text("This is a tooltip") } ``` ## Minor Changes - `.shortcut(:)` now works with the <kbd>esc</kbd> key - The shortcut tooltip can now be disabled using `UserDefaults` key stored at `ShinySwiftUI.shortcutTooltipDefaultKey`
iOS macOS watchOS

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