-
Notifications
You must be signed in to change notification settings - Fork 264
Adds January 2026 Edition of the Whats new in Swift blog post series. #1311
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 2 commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
3c9cd2b
Adds January 2026 Edition of the Whats new in Swift blog post series,…
davelester f4113a4
Updates formatting of Swift Evolution proposals in blog post.
davelester d0e4457
Update _posts/2026-01-30-whats-new-in-swift-january-2026.md
davelester 4b64790
Update _posts/2026-01-30-whats-new-in-swift-january-2026.md
davelester 9cac8e5
Update _posts/2026-01-30-whats-new-in-swift-january-2026.md
davelester e49ad5e
Update _posts/2026-01-30-whats-new-in-swift-january-2026.md
davelester a4ef063
Slight revision to the opening paragraph.
davelester File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,50 @@ | ||
| --- | ||
| layout: new-layouts/post | ||
| published: true | ||
| date: 2026-01-30 14:00:00 | ||
| title: "What's new in Swift: January 2026 Edition" | ||
| author: [nicksloan, davelester] | ||
| category: "Digest" | ||
| --- | ||
|
|
||
| Earlier this month, a Reddit discussion asked: [Has anyone built web apps with Swift?](https://www.reddit.com/r/swift/comments/1qhhiod/) Yes, many developers and companies! For this edition of "What's new in Swift", we invited one to share their adoption story: | ||
|
|
||
| > Hi, I'm Nick Sloan. I'm the head of engineering at [Studioworks](https://studioworks.app/), a platform that makes it easy and fun to run your creative studio, agency or freelance business. | ||
| > | ||
| > We chose Swift for Studioworks because of how easy it is to write safe and reliable code with great performance. Our Swift project makes use of [Hummingbird 2](https://hummingbird.codes), [Soto](https://soto.codes/) (for its incredible DynamoDB Codable support), [Hummingbird MacroRouting](https://github.com/sloatescoan/hummingbird-macrorouting/), and [Elementary](https://github.com/elementary-swift/elementary). Studioworks is a big and growing project. We are the largest Elementary codebase, and I suspect we are among the biggest projects using Hummingbird as well. | ||
| > | ||
| > We've already processed millions of dollars in invoices for our customers, and after 20 years of shipping web applications, I have never seen fewer crashes and bugs make it to production. Performance has also been excellent, especially after moving our templates to Elementary. Our heaviest pages make it to the browser in less than 100ms. | ||
| > | ||
| > We've been deploying web applications with PHP and Python for decades, and getting started with a Swift web project was certainly a bit slower. We had to recreate some of the build, deployment and chat tooling we had been relying on in our Python projects for years, and it took us a bit of experimenting to realize that Elementary was the best choice for templating. Once we got past those hurdles we've been able to build about as fast as we ever did with Python, and the quality is much better. | ||
| > | ||
| > Swift on the web has been a resounding success for us, and I hope we'll see this part of the community continue to grow! | ||
| > | ||
| > — Nick Sloan | ||
|
|
||
| Learn more about Swift on Linux and server-based use cases by checking out our [October edition](/blog/whats-new-in-swift-october-2025/), which featured highlights from the Server-Side Swift Conference. The swift.org website also has a use case page dedicated to [cloud services](https://www.swift.org/get-started/cloud-services/), including a [tutorial](https://docs.swift.org/getting-started-swift-server/tutorials/getting-started-swift-server/) to get started. | ||
|
|
||
| And now for what's new in Swift this month. | ||
|
|
||
| ## Videos to watch | ||
|
|
||
| * [On Progressive Disclosure in Swift](https://www.youtube.com/watch?v=opqKGgJavkw) - Doug Gregor's must-watch talk explores how Swift lets you progressively use more language features as your experience and codebase evolves. | ||
| * A new episode of NSScreencast dives into livecoding the [Billion Row Challenge](https://nsscreencast.com/episodes/604-brc-part1), with Matt Massicotte as a guest. | ||
|
|
||
| ## New package releases | ||
| * Want to build 3D models with code? [Cadova](https://github.com/tomasf/Cadova) is a programmable alternative to traditional CAD tools, with a focus on 3D printing. | ||
| * [Feather Database](https://github.com/feather-framework/feather-database) provides a database-agnostic layer that can be shared by multiple database drivers. And it's designed for modern Swift concurrency. | ||
| * Miguel de Icaza has ported the .NET Foundation mail stack, originally created by Jeffrey Stedfast (MailKit/MimeKit), to Swift. Hello [MailFoundation](https://github.com/migueldeicaza/MailFoundation) and [MimeFoundation](https://github.com/migueldeicaza/MimeFoundation)! | ||
|
|
||
| ## Community highlights | ||
| * [Introduction to Building Swift for Yocto](https://xtremekforever.substack.com/p/introduction-to-building-swift-for) - Check out this embedded Linux guide to using meta-swift to build Swift for a Raspberry Pi Zero 2. | ||
| * Registration is open for several Swift community conferences, including [SwiftCraft](https://swiftcraft.uk) and [try! Swift Tokyo](https://tryswift.jp/en/). The Call for Proposals (CFP) is still open for try! Swift Tokyo. | ||
|
|
||
| ## Swift Evolution | ||
| The Swift project adds new language features to the language through the [Swift Evolution process](https://www.swift.org/swift-evolution/). These are some of the proposals currently under review or recently accepted for a future Swift release. | ||
davelester marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| **Under active review:** | ||
| * [SE-0506](https://github.com/swiftlang/swift-evolution/blob/main/proposals/0506-advanced-observation-tracking.md) Advanced Observation Tracking - `@Observable` types automatically track when their properties change. However, advanced use cases like developing middleware infrastructure or widgeting systems require more control and features. This proposal adds options to the existing `withObservationTracking` to control when/which changes are observed, and a continuous variant that re-observes automatically after coalesced events. | ||
| * [SE-0507](https://github.com/swiftlang/swift-evolution/blob/main/proposals/0507-borrow-accessors.md) Borrow and Mutate Accessors - When you read or write a Swift property, the code that handles that access currently either makes a copy of the value or uses coroutines, which have performance overhead. This proposal adds new `borrow` and `mutate` keywords that let properties provide direct access to their stored values and enables properties that hold values that can't be copied. | ||
|
|
||
davelester marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| **Recently accepted:** | ||
| * [SE-0498](https://github.com/swiftlang/swift-evolution/blob/main/proposals/0498-runtime-demangle.md) Expose demangle function in Runtime module - The Swift compiler uses name mangling, turning Swift symbols into strings like `$sSS7cStringSSSPys4Int8VG_tcfC` which show up in backtraces and profiling tools. There are times, however, that a human-readable format is preferable. This proposal introduces a new API that allows calling out to the Swift runtime's demangler, without leaving the process. | ||
davelester marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.