What's new in Swift: September 2026 Edition
r/swift • u/DuffMaaaann • Jan 19 '21
Hi there and welcome to r/swift! If you are a Swift beginner, this post might answer a few of your questions and provide some resources to get started learning Swift.
Please read this before posting!
Tutorials:
Official Resources from Apple:
Swift Playgrounds (Interactive tutorials and starting points to play around with Swift):
Resources for SwiftUI:
Should I use SwiftUI or UIKit?
The answer to this question depends a lot on personal preference. Generally speaking, both UIKit and SwiftUI are valid choices and will be for the foreseeable future.
SwiftUI is the newer technology and compared to UIKit it is not as mature yet. Some more advanced features are missing and you might experience some hiccups here and there.
You can mix and match UIKit and SwiftUI code. It is possible to integrate SwiftUI code into a UIKit app and vice versa.
Is X the right computer for developing Swift?
Basically any Mac is sufficient for Swift development. Make sure to get enough disk space, as Xcode quickly consumes around 50GB. 256GB and up should be sufficient.
Can I develop apps on Linux/Windows?
You can compile and run Swift on Linux and Windows. However, developing apps for Apple platforms requires Xcode, which is only available for macOS, or Swift Playgrounds, which can only do app development on iPadOS.
Is Swift only useful for Apple devices?
No. There are many projects that make Swift useful on other platforms as well.
Can I learn Swift without any previous programming knowledge?
Yes.
r/S4TF - Swift for TensorFlow (Note: Swift for TensorFlow project archived)
Happy Coding!
If anyone has useful resources or information to add to this post, I'd be happy to include it.
r/swift • u/Swiftapple • 18d ago
What Swift-related projects are you currently working on?
r/swift • u/Smart_Appointment927 • 1d ago
I’d like to share Noctule, a plugin I made for cross-platform Swift development in JetBrains IDEs and Android Studio.
It’s a freemium plugin: most editor features and the Swift Package Manager integration are free, while Xcode integration and a few other features are paid.
Version 4.0 finally adds a debugger, which completes the edit-test-debug cycle.
I hope my contributions to the swift-book repository over the past three years count as enough community participation that this first post about Noctule doesn’t get me banned 😉 Thanks!
https://github.com/swiftlang/swift-book/issues?q=is%3Aissue++author%3A%40jansorg
szt (short for sizetree) scans a folder and prints a tree of where the space went: biggest first, every folder with the total of everything inside it, opened up only where the space is.
Swift turned out to be a great fit for it. Scanning a 123 GB folder of 667,000 files on a Mac Studio (M2 Ultra), every tool with its default settings (warm cache, median of five runs):
szt Swift 2.4 s
dua Rust 2.6 s
dust Rust 8.1 s
diskus Rust 11.4 s
gdu Go 11.6 s
du C 17.2 s
ncdu Zig 17.5 s
What made Swift work so well here:
import Darwin, no bindings or wrapper library, and the unsafe pointer APIs read the raw buffer it fills. The rest of the code is ordinary Swift.The biggest surprise was threads. On this 24-core machine, 24 threads took four times as long as 8, because opening folders goes through locks the whole kernel shares. So szt starts one thread per performance core, up to 8. They're plain threads rather than async/await, since the work is blocking system calls and the count has to be exact.
About 1,600 lines of Swift, a 581 KB universal binary (the Swift runtime ships with macOS), macOS 15 or later, MIT licensed.
brew install urtti/szt/szt
Source: https://github.com/urtti/szt Benchmarks and a script to run them on your own Mac: https://urtti.com/szt
r/swift • u/Familiar-Ad9128 • 1d ago
A few weeks ago I shared TactileBar here, and way more people saw it than I expected. Thank you to everyone who commented, gave it a star, or opened an issue. Some of that feedback went straight into the last few releases, so here's what's new.
Quick recap: TactileBar is a free, open-source (GPLv3) menu bar app that puts 26 daily macOS toggles and live system telemetry in one panel. It covers Keep Awake, Dark Mode, Hide Desktop Icons, Mute Mic, Bluetooth audio switching, ejecting disks, purging Xcode DerivedData and more. The design borrows from Dieter Rams / Braun and Teenage Engineering. It's pure Swift with zero dependencies and uses 0% CPU when closed.
What's new
🎯 Tactile Ring (⌃⌥Space), experimental. A radial launcher that opens right at your cursor, so you don't have to go up to the menu bar.
- Hold the shortcut, flick toward a switch, release. Done.
- Tap it instead and the ring stays open, so you can use 1–8, the arrow keys or the mouse.
- Your pinned switches always stay in the same spots, so muscle memory kicks in fast.
- On the Bluetooth slice, push past the edge to fan out your paired devices and pick one (AirPods → speakers → DualSense in one gesture).
- Destructive actions like the cache purges need a short hold, so you can't fire them by accident.
- It needs no Accessibility or Input Monitoring permission.
📌 Pinned Daily Deck (⌘P). The app now opens on just the 4–6 switches you actually use. Pin or unpin any card with one click or a right-click. The full catalog is still there in the tabs.
🍺 Homebrew install. No Gatekeeper popups:
brew tap tr0drigues/tactilebar https://github.com/tr0drigues/TactileBar.git && brew install --cask tactilebar
GitHub: https://github.com/tr0drigues/TactileBar
This is a solo side project, so feedback really helps. Which switch do you wish existed? Does the ring feel natural or awkward? Bug reports are welcome too.
to keep it clear, I’m a 17 year old high school student, and my dream job would be to be a programmer. as of now I can write basic code in both C++ and HTML, and I was interested in learning swift just for the sake of it and was wondering if it could actually be useful in an hypothetical future where my dream would come true. thanks in advance to anyone replying to this post
r/swift • u/Comfortable_Cat_6207 • 1d ago
I'm exploring menu-bar interaction design for my macOS project, SummonOS.
The requirements I'm interested in are keyboard access, focus while another app is active, window ordering and content that changes while the panel is open.
I'm considering SwiftUI's MenuBarExtra and an NSStatusItem/NSPanel approach. I'm not assuming one framework is broken or that the lower-level option automatically solves everything.
For those who've built similar tools, which specific behavior made you choose one approach over the other? Concrete examples and the macOS versions involved would be especially useful.
These are my project research notes:
Would love your (respectful) feedback on my app. I’m not here to promote.
How do you like the editing experience? Does it provide the features you need? Is everything intuitively clear?
https://www.flowstate-interactive.com/kabaal/
Thank you. 🙏
ran into this while working on a small mac utility, figured someone else might hit it too
i wanted to know when the user has something full screen (youtube in chrome, a movie, a game etc) so the app gets out of the way. the usual trick is CGWindowListCopyWindowInfo and checking if a window matches the screen frame. works fine on external monitors, but on a notched macbook full screen windows start below the notch and the strip above it is just painted black. so the window is like 32-38pt shorter than the screen, which is pretty much where a normal zoomed window starts too. can't just loosen the check
what ended up working is asking the window server which space each display is on. full screen apps get their own space and its type is 4
```swift
typealias MainConnection = u/convention(c) () -> Int32
typealias CopyDisplaySpaces = u/convention(c) (Int32) -> Unmanaged<CFArray>?
let cg = dlopen("/System/Library/Frameworks/CoreGraphics.framework/CoreGraphics", RTLD_NOW)
let mainConnection = unsafeBitCast(dlsym(cg, "CGSMainConnectionID"), to: MainConnection.self)
let copySpaces = unsafeBitCast(dlsym(cg, "CGSCopyManagedDisplaySpaces"), to: CopyDisplaySpaces.self)
func fullScreenDisplays() -> Set<String> {
let displays = copySpaces(mainConnection())?.takeRetainedValue() as? [[String: Any]] ?? []
var result = Set<String>()
for display in displays {
let current = display["Current Space"] as? [String: Any]
if (current?["type"] as? Int) == 4, let id = display["Display Identifier"] as? String {
result.insert(id)
}
}
return result
}
```
the ids are display uuids (or "Main" if you turned off separate spaces per display), you can map them with CGDisplayCreateUUIDFromDisplayID
it's private api so no app store, but it needs zero permissions. AXFullScreen works too but then you need accessibility. i just run it on activeSpaceDidChangeNotification and once more ~0.4s later since the space animates in
anyone know a public way to do this? would rather not rely on CGS stuff
r/swift • u/felltrifortence • 1d ago
At any given moment I have 4 or 5 projects going, and each one has its own little cluster of terminals: a dev server, a log tail, an SSH session to some box, a shell for git.
In iTerm2 that meant a pile of windows I kept losing track of. ⌘` cycling through ten windows that all look the same. Tabs named "zsh", "zsh", "zsh (2)". Splits I'd set up carefully, gone after a restart. Arrangements I could save but never remembered to. I'd spend the first few minutes of every morning rebuilding my layout, and then lose it again by the afternoon.
One day I closed the wrong window and killed a long-running job, and that was it. I wanted a terminal where windows themselves were something you could manage: a list you can see, name and jump between, instead of a stack you dig through.
So I built Trellis.
The idea
- A left sidebar lists your windows like a project list. Every window has its own renameable, color-labeled tabs, and every tab can hold nested splits
- The whole layout comes back after a restart. Sessions restore as stopped so nothing reruns by surprise, or you can opt in to keep them running in the background and reconnect on the next launch
- Shell integration (zsh, bash, fish, with no dotfile edits) means a new split opens in the directory you're already in, so you stop typing cd all day
- Closing a pane with something running asks first. I'd been burned before
- Tabs show when something is busy, waiting for a password, or finished a long command while you weren't looking
- Saved SSH hosts, a trellis CLI and a local API, so a script (or an agent like Claude Code via the optional MCP server) can set up a whole layout for you
The Swift side
It started as a weekend "how hard can it be" and turned into a proper project:
- Swift 6.2 with strict concurrency, SwiftUI + AppKit, SwiftPM only (swift build works offline)
- The workspace model is an actor. Every change, whether from the UI, the CLI or the API, goes through one command service, which is what keeps windows → tabs → split trees consistent
- PTY I/O runs off the main thread, a small C target handles process-group spawning, and the terminal engine is a vendored SwiftTerm with patches, plus an opt-in Metal renderer
The hardest part was making UI fits my workflow 😨
Open Source, MIT licensed, macOS 14+
- Download: https://bearstouch.com/trellis
- Source: https://github.com/bearstouch/trellis
If you've ever had iTerm2 window sprawl, I'd love to hear whether this fixes it for you, or what's still missing . Contributions are more than welcome 👐
r/swift • u/fatbobman3000 • 2d ago
r/swift • u/jacobs-tech-tavern • 2d ago
r/swift • u/barcode972 • 3d ago
I started on CoinCurrently with less than 1 year of experience. iOS 14 had just come out, SwiftUI was brand new, and Home Screen widgets were one of the new features.
I figured I’d try to make a couple of widgets and see what happens. I made a few to track cryptocurrencies and posted about it on Reddit. The post got almost 300 upvotes, which I thought was pretty awesome, so I decided to make a whole app, native for both iOS and Android.
Everything I built in the app was for myself — because I wanted to learn and because it was fun to experiment. It seems like people appreciated what I built.
The app peaked at #99 in the Finance category on the App Store and reached 500 daily users. Not too bad for a hobby project!
After 6 years, I’ve achieved more than I could ever have imagined, but my motivation for this project has died down. Because of this, I have open-sourced the two projects so other people can learn from my struggles and take inspiration for their own apps.
The app will continue to be maintained, though there won't be as many new features as before. I have moved on to another project that I am very excited to share in a few weeks.
The app is available on the App Store and Google Play:
iOS: https://apps.apple.com/us/app/coincurrently-private-crypto/id1543974454
Android: https://play.google.com/store/apps/details?id=com.cryptium.coincurrently&hl=en_US
And now it's also on GitHub:
r/swift • u/whatinsidethebox • 2d ago
Hi r/swift
Over the past few years, I've been building a productivity app to replace both my calendar and to do apps. It's called Zesfy and you can directly add your daily tasks right inside calendar events instead schedule them one by one. Here's some of the features:
I'd love to hear what you guys think about the app. Let me know if you have any feedbacks.
Download: Zesfy - To Do List & Planner
App subreddit: r/zesfy
r/swift • u/KevinCoderRSA • 2d ago
I haven't switched to Mac yet because of the crazy exchange rate, and also a lot of my work needs Windows. I really like SwiftUI, but I don't know enough of it to warrant buying a MacBook at this time, since React Native gets the job done - this is how I got the stupid idea of building a lightweight code editor and interpreter for Swift and SwiftUI.
Somewhat AI-assisted, to be honest, I don't have months to invest in this, but it's actually pretty decent, and I was able to build out a pretty complicated UI, all from my browser!
https://github.com/kevincoder-co-za/switaculous
Fully open-sourced and MIT-licensed.

r/swift • u/nutcrook • 3d ago
NoteKit is a Markdown editor for Mac and iOS built on the system text view (TextKit 2). You see the Markdown source, styled in place as you type. No dependencies, MIT, macOS 14 / iOS 17.
https://github.com/tfcace/notekit
# and ** step aside away from the caret and reappear when it returns.NSTextView / UITextView underneath, so undo, spell check, dictation and input methods just work.r/swift • u/Dull-Connection5879 • 4d ago
Graffle, an open-source diagramming and vector graphics app for macOS using Swift and AppKit
Hey everyone!
I've been working on a personal project called Graffle, a native macOS application for creating diagrams and vector graphics.
I built it with Swift and AppKit, and I've decided to make it open source under the MIT License.
Some of the features I've implemented so far include:
My goal was to build a native Mac tool that combines diagramming capabilities with vector editing.
I'm sharing the source code because I'd love to get feedback from other developers and designers, discover what could be improved, and hopefully find people interested in contributing.
I'm still working on the project, so constructive criticism is very welcome!
GitHub repository:
https://github.com/yahirvitelugardo/Graffle
A few things I'd love to hear your thoughts on:
Thanks for checking it out!
I'm the developer. It's written in TypeScript, for the part after your Swift app ships.
What frustrated me about ASO tools:
So I built my own:
Setup is four commands from the README, then open localhost:3001. If you don't want to run a server, there's a hosted version for $10 a month with 7 days free and no card. Self-hosting has every feature.
GitHub: https://github.com/AsoBeast/asobeast
Website: https://asobeast.com
Hoping it helps. If you ship on both stores, I'd like to know what you still check by hand.
r/swift • u/jojojoester • 3d ago
Hey everyone!
I've been exploring the idea of building an iOS subscription tracker, but after looking at existing apps, I realized that features like renewal reminders, spending summaries, and subscription calendars are already pretty well covered.
I don't want to build yet another app that does the same things with a slightly different UI. I'd like to understand what people actually struggle with when managing their subscriptions.
For those of you who use subscription trackers, or have tried a few and stopped using them:
I'm especially interested in the small, frustrating things that existing apps haven't solved well, rather than a long wishlist of features.
Feel free to share the app you currently use and what you like or dislike about it. Honest criticism would be really helpful.
Thanks!
I’ve been working on Swift Pro and wanted to share it here. It’s a commercial Swift plugin for IntelliJ IDEA, built around the IDE’s usual editors, toolbars, run configurations and test runner.
It brings together compiler completion and navigation, SwiftPM support, LLDB debugging, XCTest and Swift Testing results, SwiftUI previews and macro expansion.
It uses your installed Swift toolchain; Apple workflows, including previews, require macOS and Xcode.
If you try it, I’d appreciate feedback, especially on setup and everyday usability. I’m happy to answer questions about any of the supported (and unsupported) features.
r/swift • u/Emojinapp • 4d ago
While taking a walk early last month I got fed up about how my docs were getting buried in my pile of 100s of notes PRDs and many other docs unstructured in my notes. An agent scaffolded the first iOS, mac app and MCP bridge in a Linux VM box right on that trail while I was walking and it was testing with GitHub actions, I got home and opened the project in Xcode and to my amazement it built on first try and all core functionality worked. Took a month to iterate test and stabilize it.
What it became is Cohestry, a native Swift second brain that automatically connects related notes, resurfaces old ideas when they become relevant again, and gives you a visual map of how your knowledge fits together. The part I care about most though is the MCP bridge, so Claude, Codex, Cursor and other agents can pull in the context you have already built instead of starting from zero every time. My first week using it resurfaced an untitled blueprint to one of my main project that had been lost, cohestry connected it to a doc I was writing for a new feature.
I kept the whole thing native, local-first and fast because I wanted it to feel like an Apple app first, not a web wrapper. It is live now on iPhone and Mac if any Swift folks want to tear it apart or tell me what I should have done differently: https://apps.apple.com/us/app/cohestry-second-brain/id6811573132
Web/demo: https://cohestry.app
r/swift • u/rabinapps • 5d ago
kinhin watches your CI queue and, for each queued job, starts a fresh VM or container on your Apple silicon Mac, registers a one-job runner, and deletes it afterwards. Nothing idles and nothing is left over.
It works with GitHub Actions, GitLab CE, Gitea Actions and Forgejo Actions. Buildkite, Azure Pipelines and Bitbucket are planned for a later release.
The limits: Apple allows two macOS VMs at once on a Mac, whatever the hardware. Linux containers are not capped by that.
It’s still a beta. The beta 2 post lists what has been run for real and what hasn’t: https://kinhin.dev/blog/beta-2
Source and releases: https://github.com/RabinApps/kinhin. I’d especially like feedback from anyone running CI on Macs today.
r/swift • u/IllBreadfruit3087 • 5d ago
r/swift • u/lanserxt • 5d ago