Releases: danielsaidi/SwiftUIKit
1.2.1
This release makes the MenuList
title optional.
1.2.0
New features
Extensions/UIKit
has a bunch of newUIImage
extensions.ForEachEnumerated
is a new view that lets you iterate over non-identifiable collections.Lists
is a new folder with views that simplifies building menu lists.View+SwipeGesture
is rewritten to work on all platforms.
Deprecated
SwipeGesture
is no longer needed and has been deprecated.
1.1.2
TextReplacement
now supports multiline texts.
1.1.1
New views:
CustomRoundedRectangle
is a multi platform shape that lets you specify a custom corner radius for each corner.TextReplacement
can create a composite text view, where a certain substring gets a different text view.
New extensions:
View+frame
has a newCGSize
-based frame modifier.
1.1.0
New views:
SearchBar
- an iOS specific view that replicates a search bar.WebView
is a iOS-specific view that wraps anSFSafariViewController
with a custom url.
Bug fixes:
FlippableView
- I have added a missing public initializer.
Breaking changes:
FlipDirection
has been moved intoFlippableView
.
1.0.0
Improvements:
- The demo app now compiles for macOS and runs on M1 machines.
- More views are available for tvOS and watchOS.
- The
SimplePicker
views have been rewritten to great extent and can now be customized across platforms. - The
SimplePickerScreen
preview shows how the picker can transform for various platforms. - There is a new
SimplePickerTvScreen
that sets up a simple picker for being used on tvOS.
New views:
FullHeightView
takes up all available horizontal space and puts its content in the center.FullWidthView
takes up all available vertical space and puts its content in the center.FullSizeView
takes up all available space and puts its content in the center.TextFieldClearButton
is a modifier that adds a trailing clear btton within a text view.
New extensions:
Color+ClearInteractable
lets you apply a clear but interactable backround color to make the entire area of a button interactable.TextField+ClearButton
applies aTextFieldClearButton
to the textfield.View+Keyboard
lets any view dismiss the keyboard.
Breaking changes:
- The
SimplePicker
changes are breaking.
0.9.9
This is the RC for the first major 1.0
release.
This release wraps more logic within os
checks to make the code build on macOS
, tvOS
and watchOS
.
WIth this release, the demo app has been rebuilt as a universal app that lets you explore SwiftUIKit through interactive demos. As a result, I have removed the separate readmes to avoid having to keep multiple copies of the documentation alive.
The release also adds new views and utils:
AsyncImage
is a view that loads an async image from the network.AsyncImageLoader
is an observable class that loads an async image from the network.Camera
wraps anImagePicker
that is configured for.camera
source type.CircularProgressBar
renders a percentual progress in a circle.CircularProgressView
renders a round spinner.ConditionalView
returns the provided content view if the provided expression istrue
, else a fallback view (EmptyView
by default).FetchedDataView
shows a spinner, fetched data or a failure view.FullScreenCoverContext/Provider
lets you handle full screen covers like sheets, alerts etc.MinWidthButton
applies a min width to it's wrapped content.OptionalView
returns the provided content view if the provided value is not nil, else a fallback view (EmptyView
by default).SimpleMultiPicker
renders a simple list of buttons that can be used to pick multiple options in a list of available options.SimpleOptionalPicker
renders a simple list of buttons that can be used to pick multiple options in a list of available options.SimplePickerScreen
can be used to present a simple picker with a main title and an OK button.SimpleSinglePicker
renders a simple list of buttons that can be used to pick a single option in a list of available options.WidthVStack
lists views in a vertical stack and provides them with with the largest view width.
The release also adds a highly performant CollectionView
, based on the amazing work of @defagos, which can be found here:
The collection view can be configured with various layouts, like .shelves
and .grid
.
The release also makes some changes in the various presentation
contexts:
- Passing around views could mess up
@Binding
properties and cause the views to not update. - The code has been refactored to use closures instead, which solves this problem.
- My eternal gratitude to @hybridcattt for realizing that this was what caused problems.
Finally, this release also has some breaking changes:
DocumentCamera
,FilePicker
andImagePicker
have been written to behave more like eachother.FlippableView
is improved with new features and better result, but breaks previous api:s.LazyView
andLazyNavigationView
are removed, since I realized that SwiftUI handles this now.MultiPageView
has been renamed toPageView
.
0.9.8
This release contains a new LazyView
and LazyNavigationView
, which can be used to improve performance, since they resolve views upon presentation.
0.9.7
This release contains a new MultiPageView
, which can be used to present multiple views in a horizontal page control.
0.9.6
After comments, the View+Screenshot
takeScreenshot
function has been renamed to snapshot
. The origin
parameter has .zero
as default value.
The View+Keyboard
keyboard avoiding logic has been removed, since SwiftUI now supports it natively.