Sign in

Swift Dev Journal

@swiftdevjournal.mastodon.world.ap.brid.gy
94 followers 0 following 157 posts

I develop Mac and iOS apps (Phel, Bartleby, AM Pages) in Swift using SwiftUI and AppKit. I also write about app development in Swift at Swift Dev Journal. 🌉 bridged from ⁂ mastodon.world/@swiftdevjournal, follow @ap.brid.gy to interact

PostsRepliesMedia
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 5h
The following article shows how to configure UIKit navigation bars from SwiftUI: livsycode.com/swiftui/configuring-u… #iOSDev #SwiftUI
livsycode.com
Configuring UIKit Navigation Bars from SwiftUI → Livsy Code
Greetings, traveler! Many iOS projects are not fully SwiftUI applications. A common setup is to use SwiftUI for building screens while keeping UIKit responsible for navigation: let viewController = UIHostingController( rootView: DetailsView() ) navigationController.pushViewController( viewController, animated: true )let viewController = UIHostingController( rootView: DetailsView() ) navigationController.pushViewController( viewController, animated: true ) This approach works well, especially in
000
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 07/10/2026
Do you want to find the views in your SwiftUI app that update the most? If so, the following article shows how to use the SwiftUI instrument in Instruments to find the views that update the most: swiftdevjournal.com/posts/swiftui-f… #SwiftUI #Xcode
swiftdevjournal.com
Find the SwiftUI Views that Update the Most Using Instruments
When profiling a SwiftUI app with Instruments, one thing you want to know is what views update the most. If a view updates more than you expect, you want to know what causes the updates. In this article you will learn how to use the SwiftUI instrument to find the views in your app that update the most and find what triggers view updates. This article uses the new SwiftUI instrument Apple added in Xcode 26. If you are using an earlier version of Xcode, read the following article:
000
Reposted by Swift Dev Journal
Wesley de Groot 🥷 @0xwdg.mastodon.social.ap.brid.gy · 06/10/2026
Swift Package Best Practices wesleydegroot.nl/blog/swift-package… #SPM #SwiftPackage #DependencyManagement
wesleydegroot.nl
Swift Package Best Practices - Wesley de Groot
Swift Package Manager (SPM) has become the standard for dependency management in Swift projects. Understanding best practices for creating, maintaining, and...
001
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 05/10/2026
The following article details when you can replace closures with key paths in Swift code: www.sagarunagar.com/blog/replacing-… #SwiftLang
sagarunagar.com
Replacing Closures with Key Paths - Cleaner Swift Code
Clean up Swift collection code by passing key paths to map, compactMap, and filter instead of closures. Covers nested paths, optionals, and limitations.
011
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 30/09/2026
The following article shows how to cache and downsample images in an iOS app: roland.leth.ro/blog/tech/caching-an… #iOSDev
roland.leth.ro
Caching and downsampling images in Swift | Roland Leth
A Swift image cache keyed by URL alone hands the list screen whatever size the details screen asked for first. Cache the Data instead, and downsample per size.
000
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 29/09/2026
Swift 6.4 adds withTaskCancellationShield, but it requires iOS 27/macOS 27. The following article provides a workaround to support earlier OS versions: www.swiftdifferently.com/blog/swift… #SwiftLang
swiftdifferently.com
withTaskCancellationShield: Swift 6.4 new feature
I loved Swift 6.4's new withTaskCancellationShield, until I saw it only works on the 27 OSes. So I dug into why, and built a way to use it on earlier versions.
010
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 28/09/2026
Xcode 27 tip: when creating a new project, select Choose Template to open the New Project Assistant. More details are in the following article: swiftdevjournal.com/posts/xcode27-c… #Xcode
swiftdevjournal.com
Creating a Project in Xcode 27
Xcode 27 changed the way you create new projects. Instead of the New Project Assistant, a window like the following window opens: In most cases you should select Choose Template. Selecting Choose Template opens the New Project Assistant. Use the New Project Assistant to choose the type of project you want to create and name the project. Selecting App or Command Line Tool creates an untitled project. Select an untitled project when you want to create a throwaway project for learning purposes. Untitled projects are stored in the following location: ~/Library/Developer/Xcode/UntitledProjects I recommend changing the folder names of untitled projects. If you create multiple untitled projects, you will have a tough time finding a specific project in a list of folders titled `Untitled Project`, `Untitled Project 2`, and so on. Selecting Playground creates an untitled Swift playground. Untitled playgrounds are stored in the following location: ~/Library/Developer/Xcode/UntitledFiles Selecting Package opens an assistant to create a Swift package.
000
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 22/09/2026
Are you interested in see how long your iOS or Mac app takes to launch? If so, the following article shows how to use Instruments to measure your app's launch time: swiftdevjournal.com/posts/measure-a… #Xcode
swiftdevjournal.com
Measure App Launch Time with Instruments · Swift Dev Journal
000
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 16/09/2026
The following article provides an overview of the ways to handle authorization and authentication in apps that deal with networking: albertodebortoli.com/2026/09/15/aut…
albertodebortoli.com
Authentication and Authorization: A Comprehensive Guide
OAuth 2.0, JWT, PKCE, OIDC, SAML, SSO: the auth ecosystem is big enough to misremember. This compendium builds a clear mental model for each concept and explains how they fit together.
000
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 15/09/2026
Do you want to quickly find the slowest spots in your iOS and Mac app code? If so, the following article shows how to use the Top Functions mode in Instruments to quickly find the slow spots: swiftdevjournal.com/posts/top-funct… #Xcode
swiftdevjournal.com
Using Top Functions Mode in Instruments to Quickly Find the Slowest Code · Swift Dev Journal
000
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 10/09/2026
Interested in finding the slow spots in your iOS and Mac apps? If so, check out the following article: swiftdevjournal.com/posts/cpu-profi… #Xcode
swiftdevjournal.com
Find the Slow Spots in Your Code with the CPU Profiler Instrument · Swift Dev Journal
000
Reposted by Swift Dev Journal
Wesley de Groot 🥷 @0xwdg.mastodon.social.ap.brid.gy · 08/09/2026
Navigation Destinations in SwiftUI wesleydegroot.nl/blog/navigation-de… #SwiftUI #Navigation #Swift
wesleydegroot.nl
Navigation Destinations in SwiftUI - Wesley de Groot
SwiftUI's value-based navigation APIs make it possible to describe navigation using data instead of creating destination views directly inside every link...
001
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 08/09/2026
The following article provides a nice introduction to using conditional breakpoints in Xcode: www.sagarunagar.com/blog/xcode-cond… #Xcode
sagarunagar.com
Conditional Breakpoints in Xcode - Debug Specific States Faster
Learn how to use conditional breakpoints in Xcode to pause only when a specific expression, such as item.id == 42, evaluates to true.
000
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 02/09/2026
How do you support sidebar selection in SwiftUI when the sidebar has multiple data types? 1. Create an enum for the sidebar selection 2. Use the enum as the data type for the selection 3. Add a .tag modifier to each sidebar list item More details are in the following article […]
mastodon.world
Original post on mastodon.world
000
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 01/09/2026
Do you want to know which views in your SwiftUI app update the most? If so, the following article shows how to use Instruments to find the views that update the most: swiftdevjournal.com/posts/swiftui-f… #Xcode #SwiftUI
swiftdevjournal.com
Find the SwiftUI Views that Update the Most Using Instruments · Swift Dev Journal
010
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 31/08/2026
If you prefer a written article, here's the link. www.createchsol.com/blog/2026-08-30… iosdev.space/@StewartLynch/11718470…
createchsol.com
Mac App Direct Distribution, DMG Signing & Notarization Guide | CreaTECH Solutions
000
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 27/08/2026
Do you need to show an alert from a menu item in your SwiftUI Mac app? If so, the following article shows you how: swiftdevjournal.com/posts/show-swif… #SwiftUI
swiftdevjournal.com
Show an Alert from a Menu Item in a SwiftUI Mac App · Swift Dev Journal
000
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 25/08/2026
If you're looking for a way to let people customize the toolbar in your SwiftUI app, check out the following article: swiftdevjournal.com/posts/make-swif… Summary: Give the .toolbar modifier and each toolbar item an ID. #SwiftUI
swiftdevjournal.com
Make a SwiftUI Toolbar Customizable · Swift Dev Journal
000
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 19/08/2026
Are you interested in see how long your iOS or Mac app takes to launch? If so, the following article shows how to use Instruments to measure your app's launch time: swiftdevjournal.com/posts/measure-a… #Xcode
swiftdevjournal.com
Measure App Launch Time with Instruments · Swift Dev Journal
000
Reposted by Swift Dev Journal
Wesley de Groot 🥷 @0xwdg.mastodon.social.ap.brid.gy · 18/08/2026
Custom Operators in Swift wesleydegroot.nl/blog/custom-operat… #Swift #Operators #Advanced
wesleydegroot.nl
Custom Operators in Swift - Wesley de Groot
Custom operators in Swift allow you to define your own operators or overload existing ones to create expressive, domain-specific syntax. Understanding how...
001
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 14/08/2026
The following article shows how to add an Open Recent menu to a SwiftUI app that isn't document-based: swiftdevjournal.com/posts/open-rece… #SwiftUI
swiftdevjournal.com
Add an Open Recent Menu to a SwiftUI app · Swift Dev Journal
010
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 11/08/2026
The following article provides a nice guide to using Swift arrays that includes some more advanced techniques: bugfender.com/blog/swift-arrays #Swift
bugfender.com
Swift Arrays: Complete Guide to Sort, Filter, Map and Reduce
Swift arrays are one of the most commonly used collection types in iOS and macOS development. They provide ordered, type-safe
000
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 06/08/2026
SwiftUI instrument tip: take the following steps to find the code causing long updates: 1. Right-click on a red or orange bar in the graph. 2. Choose Set Inspection Range. 3. Switch to the Time Profiler instrument. 4. Hide System Libraries. 5. Double-click a function to see the lines of code […]
mastodon.world
Original post on mastodon.world
010
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 05/08/2026
The following article shows how to use SwiftUI's ContentBuilder with types that aren't views: artemnovichkov.com/blog/using-swift… #SwiftUI
artemnovichkov.com
Using SwiftUI’s ContentBuilder with Non-View Types
Using SwiftUI’s result builder to assemble a type-safe deep-link router.
010
Reposted by Swift Dev Journal
Wesley de Groot 🥷 @0xwdg.mastodon.social.ap.brid.gy · 04/08/2026
Dependency Injection in Swift wesleydegroot.nl/blog/dependency-in… #Swift #DI #Architecture
wesleydegroot.nl
Dependency Injection in Swift - Wesley de Groot
Dependency Injection (DI) is a design pattern that helps create loosely coupled, testable code by passing dependencies from the outside rather than creating...
012
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 29/07/2026
The following article shows how to use SwiftUI's WindowGroup to open document-like windows: swiftdevjournal.com/posts/swiftui-w… #SwiftUI
swiftdevjournal.com
Open Document-like Windows Using SwiftUI WindowGroup · Swift Dev Journal
020
Reposted by Swift Dev Journal
Wesley de Groot 🥷 @0xwdg.mastodon.social.ap.brid.gy · 28/07/2026
Semantic Accessibility in SwiftUI wesleydegroot.nl/blog/semantic-acce… #Accessibility #SwiftUI #iOS
wesleydegroot.nl
Semantic Accessibility in SwiftUI - Wesley de Groot
SwiftUI does a lot of accessibility work for you automatically, but understanding how to add semantic meaning — labels, hints, values, and element...
001
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 27/07/2026
If you’re learning to develop iOS or Mac apps, the following article provides a nice introduction on how to use Xcode's debugger to fix bugs in your apps: bugfender.com/blog/debugging-xcode #Xcode
bugfender.com
Debugging in Xcode: Tools, Techniques, and Workflow
Xcode debugging tools integrate smoothly with the rest of the Xcode ecosystem and offer myriad benefits to developers, including powerful
001
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 24/07/2026
The following article shows how to use Instruments to find the slow spots in your iOS and Mac apps: swiftdevjournal.com/posts/cpu-profi… #Xcode
swiftdevjournal.com
Find the Slow Spots in Your Code with the CPU Profiler Instrument · Swift Dev Journal
000
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 21/07/2026
The following article shows a different approach to making SwiftUI apps: getstream.io/blog/mvvm-state-manage… Summary: build the app's State layer with test-driven development before building the UI. #SwiftUI
getstream.io
Mastering the Model Layer: Iron-Clad State Management in Model-Driven Apps
Model-driven architectures have dominated the iOS development landscape. In this article, you will learn to make State the center of your application and use the Model layer.
000
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 17/07/2026
The following article shows how to license a Mac app using RevenueCat: jsorge.net/2026/07/15/revenuecat-ma… #MacDev
jsorge.net
Licensing a Mac App with RevenueCat
Going boldly where no Mac app has gone before!
000
Reposted by Swift Dev Journal
Wesley de Groot 🥷 @0xwdg.mastodon.social.ap.brid.gy · 14/07/2026
Error Handling in Swift wesleydegroot.nl/blog/error-handlin… #Swift #Errors
wesleydegroot.nl
Error Handling in Swift - Wesley de Groot
Swift uses typed errors and throw to represent operations that can fail. Handling those failures explicitly makes code easier to understand and gives your...
001
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 09/07/2026
If you want to let people add, remove, and move toolbar items in your SwiftUI app, the following article shows how to do that: swiftdevjournal.com/posts/make-swif… #SwiftUI
swiftdevjournal.com
Make a SwiftUI Toolbar Customizable · Swift Dev Journal
000
Reposted by Swift Dev Journal
Wesley de Groot 🥷 @0xwdg.mastodon.social.ap.brid.gy · 07/07/2026
Protocol Extensions in Swift wesleydegroot.nl/blog/protocol-exte… #Swift #Protocols #Extensions
wesleydegroot.nl
Protocol Extensions in Swift - Wesley de Groot
Protocols describe capabilities that types can adopt. Protocol extensions let you provide shared behavior for those types without requiring a common superclass. Defining a Protocol This protocol describes anything that can produce a display title: protocol Displayable { var name: String { get } var subtitle: String? { get } } Every conforming type must provide the required properties. Adding Default Behavi...
012
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 06/07/2026
If SwiftUI's .refreshable modifier doesn’t work for your app, the following article shows how to create a custom pull to refresh: livsycode.com/swiftui/a-custom-pull… #SwiftUI
livsycode.com
A Custom Pull-to-Refresh in SwiftUI → Livsy Code
Greetings, traveler! SwiftUI provides a built-in .refreshable modifier, which covers the majority of use cases. At some point, product requirements start to demand more control over the refresh interaction. Custom animations, branded indicators, precise control over gesture thresholds, and coordination with complex layouts are typical examples. In these cases, a custom pull-to-refresh component becomes a
000
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 02/07/2026
Are you interested in finding the SwiftUI views in your app that update the most? If so, the following article shows how to use the SwiftUI instrument to find the views that update the most: swiftdevjournal.com/posts/swiftui-f… #Xcode #SwiftUI
swiftdevjournal.com
Find the SwiftUI Views that Update the Most Using Instruments · Swift Dev Journal
000
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 30/06/2026
The following article provides details on the problem that Swift actors solve: www.swiftdifferently.com/blog/swift… #Swift
swiftdifferently.com
Actors in Swift: The Problem They Solve and How it Works
I finally read SE-0306 and actors stopped being a mystery. Here's everything that clicked, in plain language.
010
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 18/06/2026
File wrapper writing tip: pass the .atomic option to the write function. If you don’t, you’ll get an error message in Xcode's console saying you're trying to write to a file that already exists. #MacDev
000
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 17/06/2026
The following article shows how to deal with the most common iOS push notifications in production: bugfender.com/blog/advanced-ios-pus… #iOSDev
bugfender.com
Advanced iOS push notifications: scaling APNs in production
The Apple Push Notification Service (APNs) allows developers to send real-time alerts and data to Apple devices. But it can
010
Reposted by Swift Dev Journal
Wesley de Groot 🥷 @0xwdg.mastodon.social.ap.brid.gy · 16/06/2026
Custom Codable Implementations in Swift wesleydegroot.nl/blog/custom-codabl… #Swift #Codable #JSON
wesleydegroot.nl
Custom Codable Implementations in Swift - Wesley de Groot
Swift's Codable protocol makes converting models to and from JSON straightforward. The compiler can synthesize most implementations, but APIs do not always use the same names and structure as your app. In those cases, a custom implementation gives you full control. Renaming JSON Keys Use a CodingKeys enum when a JSON key differs from the Swift property name: struct User: Codable { let id: Int let displayNa...
011
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 15/06/2026
The following article shows how to use Instruments to find the slow spots in your code: swiftdevjournal.com/posts/cpu-profi… #Xcode
swiftdevjournal.com
Find the Slow Spots in Your Code with the CPU Profiler Instrument · Swift Dev Journal
000
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 12/06/2026
The following article shows how to use enum cases as protocol witnesses in Swift: livsycode.com/best-practices/enum-c… #Swift
livsycode.com
Enum Cases as Protocol Witnesses in Swift → Livsy Code
Greetings, traveler! Enums are one of the most useful modeling tools in Swift. We use them for screen states, navigation routes, user actions, errors, commands, feature flags, and many other parts of iOS applications. A lot of these models have something in common: they describe a closed set of possible values. A screen can be
001
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 11/06/2026
If you're looking for a Mac GUI client for the Jujutsu version control system, take a look at JayJay. It's free and open source. jayjay.hewig.dev #jjVCS
jayjay.hewig.dev
JayJay — Native macOS GUI for Jujutsu (jj)
A native macOS jj GUI. DAG graph, side-by-side diffs, interdiff, diff edit, evolog, conflict resolution. Built with Rust + SwiftUI.
010
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 05/06/2026
SwiftUI instrument tip: take the following steps to find the code causing long updates: 1. Right-click on a red or orange bar in the graph. 2. Choose Set Inspection Range. 3. Switch to the Time Profiler instrument. 4. Hide System Libraries. 5. Double-click a function to see the lines of code […]
mastodon.world
Original post on mastodon.world
000
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 04/06/2026
The following article provides a nice introduction to SwiftUI pickers: bugfender.com/blog/swiftui-pickers #SwiftUI
bugfender.com
SwiftUI Pickers: Usage and Styling Techniques
Pickers, provided by SwiftUI, are essential elements of an iOS app, allowing users to enter basic details and choose between
000
Reposted by Swift Dev Journal
Wesley de Groot 🥷 @0xwdg.mastodon.social.ap.brid.gy · 02/06/2026
Result Builders in Swift wesleydegroot.nl/blog/result-builde… #Swift #ResultBuilder #DSL
wesleydegroot.nl
Result Builders in Swift - Wesley de Groot
Result builders (formerly known as function builders) are a powerful Swift feature that enables you to create elegant domain-specific languages (DSLs). They're the magic behind SwiftUI's declarative syntax and can be used to build your own custom DSLs. This is an advanced Swift feature (requires Swift 5.4+; platform availability depends on the APIs you use, such as SwiftUI). Familiarity with generics and protocols...
001
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 01/06/2026
The following article shows how to name Swift tasks to make debugging and profiling the code easier: artemnovichkov.com/blog/task-names-… #Swift
artemnovichkov.com
Task Names in Swift Concurrency
Name Swift tasks for clearer debugging and profiling
000
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 29/05/2026
I didn't know about the DebugDescription macro. social.appbakery.ee/@sandor/statuse…
social.appbakery.ee
Post by sandor, @sandor@social.appbakery.ee
Bitesized Learning time: Swift 6.x killer feature you need to know about! #Swift #iOS #app #development #wwdc https://blog.koloten.co/swift-6-killer-features/
000
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 28/05/2026
If you're looking for books and websites about Mac development, check out the following list of Mac development learning resources: swiftdevjournal.com/resources-for-l… #MacDev
swiftdevjournal.com
Resources for Learning Mac Development · Swift Dev Journal
002
Swift Dev Journal @swiftdevjournal.mastodon.world.ap.brid.gy · 26/05/2026
The following article shows problems that can occur when you try to use modern APIs in a Swift codebase that uses older APIs: www.swiftdifferently.com/blog/syste… #Swift
swiftdifferently.com
Modern Isn't a Value. Fit Is.
I wrapped a delegate-based SDK in async/await because it was "modern." Then I realized I had just bolted a Tesla engine onto a horse carriage.
010