SwiftUIKit

SwiftUIKit is a Swift SDK that adds extra functionality to Swift & SwiftUI.

MIT License

Stars
1.4K
Committers
5

Bot releases are hidden (Show)

SwiftUIKit - Latest Release

Published by danielsaidi 6 months ago

This version adds localization support, and makes more types use LocalizedStringKey instead of String.

This version also adds standard button types, which makes it easier to create standard button types.

✨ New features

  • Button+Init adds a new button initializer.
  • Button+Standard adds new standard button types.
SwiftUIKit -

Published by danielsaidi 6 months ago

🐛 Bug fixes

  • View+Label now correctly applies the provided bundle.
SwiftUIKit -

Published by danielsaidi 6 months ago

💡 Behavior changes

  • View.alert now injects the context as environment object.
  • View.label now takes a localized string key instead of a key.
  • View.sheet now injects the context as environment object.
  • View.fullScreenCover now injects the context as environment object.
SwiftUIKit -

Published by danielsaidi 7 months ago

This version refactors many views to take their styles & configs as environment values, instead of injecting them in the initializer.

✨ New features

  • CircularProgressBar now supports customizing animation.
  • FilePicker now supports providing a custom picker config.
  • ImagePicker now supports providing a custom picker config.
  • LinkText has new link style options, to define font weight.
  • ListButtonGroup is a new group view for groping many buttons.
  • ListButtonStyle has a new optional pressedOpacity init param.
  • ListCard now supports specifying a custom pressed scale animation.
  • String+Replace has a new options-based replace extension shorthand.

💡 Behavior changes

  • Color.standardListBackground has been renamed to listBackground.
  • FormInlineActionButtonStyle has been replaced by ListButtonGroup.
  • FormText has been renamed to ListActionRow, and is now style-based.
  • ListActionRow now supports a ListAction instead of a trailing view.

🗑️ Deprecations

  • DismissableView has been deprecated due to native SwiftUI support.
  • FormRowTitle has been deprecated due to now being used internally.
  • PresentationDetents has been deprecated due to native SwiftUI support.
SwiftUIKit -

Published by danielsaidi 8 months ago

This version makes the list header not use a section, to avoid disclosure groups.

SwiftUIKit -

Published by danielsaidi 8 months ago

This version fixes a bug in the image list header extension.

SwiftUIKit -

Published by danielsaidi 10 months ago

This version adds a few additional utilities.

✨ New features

  • ListHeader has a new image-specific modifier.
  • View+Label makes it easy to convert any view to a label.
  • View+macOS has a new openAppSettings() view extension.

💡 Behavior changes

  • ListHeader now applies a platform-specific bottom padding.
SwiftUIKit -

Published by danielsaidi 10 months ago

This version makes the ListBadgeIcon available on macOS.

✨ New features

  • ListBadgeIcon is now available on macOS.
  • ListBadgeIcon has a new appStore badge.
  • ListBadgeIcon iconColor is nil by default and adaptive to the badge color.
SwiftUIKit -

Published by danielsaidi 10 months ago

This version adjusts the ListBadgeIcon to behave better.

✨ New features

  • ListBadgeIcon has new properties and render better on iOS 17.
  • ListBadgeIcon has new predefined types.
SwiftUIKit -

Published by danielsaidi 11 months ago

This patch fixes the default FormInlineButtonStyle background in dark mode.

✨ New features

  • Color has a new standardRowBackground function.
SwiftUIKit -

Published by danielsaidi 11 months ago

This major version bumps the deployment targets to iOS 15, tvOS 15, watchOS 8, and macOS 12. This lets us remove a lot of code for older OS versions.

This version also adds everything from SwiftKit, which is discontinued. I don't want to manage or add two libraries, so merging them seems valid.

This version removes protocols where not needed. This means that it will no longer have a protocol and a standard implementation if not needed.

✨ New features

  • Bundle+Information is a new extension with bundle-specific information.
  • BundleFileFinder is a new file service that can search for files in a bundle.
  • Collections is a new namespace with collection-related utilities and extensions.
  • Commands is a new namespace with macOS commands.
  • CsvParser is a new class that can be used to parse CSV files and strings.
  • Date is a new namespace with date-related extensions and utilities.
  • DeviceIdentifier is a new class for generating unique device IDs.
  • iCloudDocumentSync is a new class that can sync iCloud document changes.
  • Keychain is a new namespace with keychain-related utilities and services.
  • ListAction is a new enum with quick list action types.
  • MimeType is a new type that defines various MIME types.
  • Pasteboard is a multi-platform pasteboard typealias.
  • String is a new namespace with string-related utilities and extensions.
  • URL+iCloud adds new iCloud-specific URLs.
  • ValidationRegex is a struct that defines various regex-based validation expressions.

🐛 Bug fixes

  • View disableDynamicType now applies the provided size category instead of always .medium.

💥 Breaking Changes

All previously deprecated code has been removed.

  • ActionToggle has been removed - just use onChange(of:) to observe the toggle state instead.
  • DismissableView now uses DismissAction instead of PresentationMode.
  • EdgeInsets factory functions have been replaced with proper initializers.
  • FilePicker now requires UTType instead of String.
  • FolderMonitor has been renamed to DirectoryMonitor.
  • FolderObservable has been renamed to DirectoryObservable.
  • FormActionButton has been replaced with a FormActionButtonStyle.
  • FormTextButton has been removed since ListAction is so easy to use.
  • FormTextEditor and FormTextField has been removed. Use .formRowTitle(...) instead.
  • ScanCodeGenerator has been replaced by Image and ImageRepresentable init extensions.
SwiftUIKit -

Published by danielsaidi about 1 year ago

This release deprecates a bunch of things in preparation for the 4.0 bump.

SwiftUIKit 4.0 will drop support for iOS 13.

✨ New features

  • MultilineSubmitViewModifier is a new view modifier to make multiline text fields submit when return is pressed.
  • View has a new multilineSubmit(...) extension.
  • View has a new onMultilineSubmit(...) extension.

💡 Behavior changes

  • ForEachPicker no longer applies a .plain button style.
  • ForEachMultiPicker no longer applies a .plain button style.
  • SwiftPreviewInspector now provides a standard implementation.

🗑 Deprecations

  • MultilineText has been deprecated.
  • DotAnimation has been renamed to DotLoadingAnimation.
  • DotAnimationText has been renamed to DotLoadingAnimationText.
  • SearchBar has been deprecated.
  • SidebarPresenter has been deprecated.
  • StandardSwiftPreviewInspector has been deprecated.
  • Text+Markdown has been deprecated.
  • UIApplication+Windows has been deprecated.
  • View height and width modifiers have been deprecated.
  • View+Keyboard has been deprecated.
SwiftUIKit -

Published by danielsaidi about 1 year ago

✨ New features

  • FormTextField has new multiline capabilities.

🗑 Deprecations

  • FormTextEditor has been soft deprecated.
SwiftUIKit -

Published by danielsaidi about 1 year ago

✨ New features

  • ImageCache.shared has been made public.
SwiftUIKit -

Published by danielsaidi about 1 year ago

✨ New features

  • ImageCache is a new convenience util for caching images.
  • ImageRepresentable has a new jpegData(resizedToWidth:withCompressionQuality:) extension.
  • ListPadding is a new view that can be used to add vertical padding to lists.
SwiftUIKit -

Published by danielsaidi about 1 year ago

✨ New features

  • GridItem+Convenience is a new extension with GridItem builders.
  • ReorderableForEach is a new view that lets you reorder items in stacks and grids.
SwiftUIKit -

Published by danielsaidi about 1 year ago

  • SidebarListRowBackgroundModifier is a new view modifier for sidebar lists.
SwiftUIKit -

Published by danielsaidi about 1 year ago

✨ New features

  • StorageCodable is a new protocol for persisting Codable in AppStorage and SceneStorage.
  • View+Font extensions are now available on tvOS and watchOS as well.

✨ Behavior changes

  • Persisted is changed to soft deprecated since the RawRepresentable AppStorage support requires iOS 15.

🗑 Deprecations

  • The Printing namespace has been deprecated and moved to the new PrintingKit SDK.
SwiftUIKit -

Published by danielsaidi about 1 year ago

✨ New features

  • NavigationContext is a new observable class.
  • Image+Resized is a new Image extension.

🗑 Deprecations

  • AlertProvider has been deprecated.
  • FullScreenCoverProvider has been deprecated.
  • SheetProvider has been deprecated.
SwiftUIKit -

Published by danielsaidi about 1 year ago

✨ New features

  • Color+Hex has new static functions.
  • ColorPickerBar is a new color picker component.
  • EditableView is a new view protocol.
  • ListBadgeIcon now supports custom icon colors and icon gradients.
  • ListHeaderIcon is a new view.
  • ListSectionTitle has a new withInsets() init parameter.
  • ListShelfSection has a new style.
  • OptionalBinding is a new func that makes it possible to pass in optional values as a non-optional binding.
  • View has new prefers extensions.
  • ViewShadowStyle has a new .sticker style.

🗑 Deprecations

  • ImageRenderer was not available to 5.7 compilers and has been removed altogether.
  • ImageRenderer can still be found and copied from any earlier versions of SwiftUIKit.
  • MultilineTextField has been deprecated.
  • SystemColor has been deprecated.