Library / SDK
danielsaidi/SwiftUIKit avatar
danielsaidi/SwiftUIKit

SwiftUIKit: one package for extra SwiftUI pieces, with the demo removed on purpose

Extra functionality for Swift & SwiftUI.

1,753 stars66 forksSwiftMIT

At a glance

What is it?
SwiftUIKit is Daniel Saidi's MIT licensed collection of additional SwiftUI components and extensions to native types, installed through Swift Package Manager and requiring iOS 16, macOS 14, tvOS 16, watchOS 9 or visionOS 1. The README is deliberately short and points at generated online documentation instead of examples, and the author plans to split the package apart.
Who is it for?
Adopt SwiftUIKit if you are building a SwiftUI app on a current OS, want to avoid writing the same helper views and type extensions again, and are prepared to read the online documentation rather than a README. Do not adopt it if you need a demo app to learn from, because the author removed it, or if your deployment targets predate iOS 16.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 63 days ago.
What is it written in?
Mainly Swift, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A package with no examples in the README

The first thing to know about SwiftUIKit is that the README is not going to teach you the API. It states the library adds extra functionality to Swift and SwiftUI, containing additional components and a lot of extensions to native types, and then hands you a documentation link.

The reason is given directly. The project started small, grew large, and at that point the complexity made the demo app more misleading than helpful, so it was removed. The author's replacement is the live previews in Xcode and the online documentation at danielsaidi.github.io/SwiftUIKit.

That is a defensible call and it has a cost. A README with a working snippet tells you within a minute whether this library fits your problem. A README that says "look at the docs" does not, and the decision moves from the README page to a documentation browser. Budget for that when you evaluate it.

It also means the API surface is deliberately not enumerated in the README, which is why this article describes the package's shape rather than listing views you would be guessing at.

The package URL is the entire installation instruction

Installation is through Swift Package Manager and the README gives one thing: the repository URL to add as a package dependency.

code
https://github.com/danielsaidi/SwiftUIKit.git

There is no version pin shown, no branch instruction, and no note about which product to link. Those are choices the Xcode package UI makes for you, and they are choices worth making deliberately given what follows about the versioning.

The repository layout is conventional for a Swift package: Package.swift at the root, Sources/ and Tests/ directories, Resources/ for assets, scripts/ for tooling, and a RELEASE_NOTES.md at the top level. There is also a .swiftlint.yml, so the code is linted, and the repository carries .gitattributes and a standard .gitignore.

The README badge states Swift 6.1, which tells you the language level the package is written against and, indirectly, the toolchain you need.

Platform floors decide whether you can use it at all

SwiftUIKit supports iOS 16, macOS 14, tvOS 16, watchOS 9 and visionOS 1. Read that list as a set of minimums, not suggestions.

visionOS 1 in particular tells you the package was being built with an eye on spatial interfaces, which is consistent with a library that adds view components rather than one tied to a single platform idiom. The other four are Apple platform baselines that most current apps already meet, but an app that still supports iOS 15 or macOS 13 cannot take this dependency at all.

Because this is a Swift package rather than a framework, the platform list is enforced at build time by Package.swift, so an incompatible deployment target fails loudly rather than at runtime.

Version 7 is moving faster than a minor number suggests

The recent release history is 7.0.0 on 2026-08-06, 7.0.1 on 2026-08-18 and 7.0.2 on 2026-08-21. Two patch releases inside a fortnight of a major, and the last push on 2026-08-21 matches the last tag almost exactly, so releases and source are moving together.

The pattern suggests an active project on a major-version cadence, which is unusual for a UI convenience library and worth noting for two reasons.

First, a major bump in a SwiftUI component library can mean anything from a renamed symbol to a changed layout or behaviour. If you adopt this, pin an exact version rather than a range, and read RELEASE_NOTES.md at the root before upgrading rather than assuming a patch was cosmetic.

Second, if you only use a handful of the namespaces, a major upgrade touches far less of your code than the version number implies. That is an argument for importing narrowly, which in a Swift package means depending on the products you need rather than pulling everything into view files by habit.

The repository is not archived, and the author states an intention to extract parts of this project into separate libraries to give better documentation and help. That is the biggest structural risk to plan around: a component you rely on may move to its own package, and your dependency graph changes shape.

A single author is the maintenance fact

The support section asks for sponsorship, with the stated reason being time to work on open source tools. Contact routes are a website, an email address, Bluesky and Mastodon.

This is a single-maintainer library published under MIT. The licence is permissive, but redistributed copies must include the copyright and licence notices. The concentration risk is not legal but operational: with one person deciding when to split the package, which namespaces to extract, and when a major version is warranted, there is no maintainer council to slow a decision down or to catch a regression.

For a library of extensions to native types, that risk is moderate rather than severe, since you are unlikely to have your architecture restructured by it. It is higher if you build a design system on top of it.

The MIT licence also means no copyleft obligation attaches to your app, whether you ship the package in the binary or statically linked.

When to skip it and use the framework instead

The alternative approaches are Apple's own SwiftUI and the Swift standard library, or a competing component package.

Apple's frameworks are the default and should stay the default for anything that ships with the platform. A helper that reimplements what SwiftUI already does is dead weight, and a library cannot add to the platform's API surface, only around it.

A competing package differs along one axis: scope. SwiftUIKit's stated scope is broad, a single package covering additional components and many extensions to native types, and the author says as much when explaining that complexity forced the demo's removal. A narrower package gives you a smaller dependency and clearer documentation, at the cost of more dependencies when you need several kinds of helper.

Skip SwiftUIKit if your app is small, because the platform already covers most needs; if you are on a deployment target below iOS 16; or if your team learns by reading a working sample app, since that has been removed on purpose.

Editorial conclusion

Adopt SwiftUIKit if you are building a SwiftUI app on a current OS, want to avoid writing the same helper views and type extensions again, and are prepared to read the online documentation rather than a README. Do not adopt it if you need a demo app to learn from, because the author removed it, or if your deployment targets predate iOS 16. Before pinning, note that 7.0.0 landed on 2026-08-06 and two patch releases followed within a fortnight, so a major version bump is a normal event here and your integration should touch only the namespaces you actually use.

Frequently asked questions

How do I add SwiftUIKit to an Xcode project?

Through Swift Package Manager, using the repository URL https://github.com/danielsaidi/SwiftUIKit.git. The README gives that URL as the whole installation instruction and does not show a version pin or a specific product to link.

Which Apple platforms does SwiftUIKit support?

iOS 16, macOS 14, tvOS 16, watchOS 9 and visionOS 1. Those are minimum versions, and they are enforced at build time through Package.swift.

Does SwiftUIKit have a demo app?

No. The README states the demo was removed because the project grew complex enough that it was no longer representative, and recommends the live previews in Xcode and the online documentation instead.

What licence is SwiftUIKit released under?

MIT. The LICENSE file is at the root of the repository, and the README states the library is available under that licence.

Will SwiftUIKit be split into multiple packages?

The README says the author will extract parts of the project into separate libraries to provide better documentation and help, and points at an open-source listing page for the ones already extracted. The current package is still a single distribution at version 7.0.2.

Official sources

  1. danielsaidi/SwiftUIKit on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/danielsaidi-swiftuikit.svg)](https://hysenlabs.com/projects/danielsaidi-swiftuikit)

Was this useful?