Hi, I'm Sarun 👋 — an iOS developer.

On this blog I share my working processes, tip and tricks, tools, and problems I found along the way.

Get weekly updates on new posts


Size classes on iPhone Duo

The horizontal and vertical size classes, and the display size in points, for every iPhone Duo pose and orientation.


Place a sheet on one side with presentationPlacement on iPhone Duo

iOS 27 lets you put a sheet on the leading or trailing side of the screen. See what each placement does on iPhone Duo when it is open, half-open, and closed.

When toolbar items share a glass background in iOS 26

In iOS 26, toolbar items next to each other merge into one Liquid Glass capsule. Learn which items merge, which ones stand alone, and how to split them with ToolbarSpacer.



SwiftUI: Explore the new declarative UI framework


More posts about SwiftUI

Place a sheet on one side with presentationPlacement on iPhone Duo

iOS 27 lets you put a sheet on the leading or trailing side of the screen. See what each placement does on iPhone Duo when it is open, half-open, and closed.

When toolbar items share a glass background in iOS 26

In iOS 26, toolbar items next to each other merge into one Liquid Glass capsule. Learn which items merge, which ones stand alone, and how to split them with ToolbarSpacer.

Get concentric corner radii from GeometryReader in iOS 27

iOS 27 adds concentricCornerRadii to GeometryProxy. It tells you the corner radii a view needs to match the corners of its container or the screen.

Why the navigation title moves to the left in iOS 26

In iOS 26, an inline navigation title is centered only when it fits. Add a few toolbar items, and it jumps to the leading edge, or gets cut short next to a back button.

More posts about SwiftUI or explore other topics

UIKit: Learn the best of both worlds


More posts about UIKit

Place a sheet on one side with presentationPlacement on iPhone Duo

iOS 27 lets you put a sheet on the leading or trailing side of the screen. See what each placement does on iPhone Duo when it is open, half-open, and closed.

Toolbar overflow and visibility priority on iPhone Duo

Choosing between the toolbar and tab bar, consolidating overflow, setting visibility priority, and when to turn vertical bars off.

Adapt custom toolbar views for iPhone Duo

How to opt a custom toolbar view into the vertical bar, change its layout, and read the vertical bar edge.

Prepare toolbar items for a vertical bar

Why two pieces of data matter on iPhone Duo, how the system picks a representation, and how to override it with axis behavior.

More posts about UIKit or explore other topics

Swift: Learn every aspect of the language


More posts about Swift

Why some Swift types only appear when you import two modules

Map, PhotosPicker, and WebView are not in SwiftUI. They live in cross-import overlays, modules that only show up when you import both halves. Here is what that means and how to spot one.

Codable errors are finally readable in Swift 6.3

DecodingError and EncodingError now print a clean one-line summary with the coding path, instead of the wall of text we used to skim past.

Typed throws in Swift 6

Swift 6 lets a function declare exactly which error type it throws. Here is the syntax, what it does to catch blocks, and why untyped throws is still the right default.

Trailing commas beyond arrays in Swift 6.1

Swift 6.1 allows a trailing comma in parameter lists, tuples, generic parameters, capture lists, and more. A small change that makes diffs a lot cleaner.

More posts about Swift or explore other topics

Xcode: Learn tips and tricks about the tool


More posts about Xcode

How to export Xcode agent skills with xcrun

Export Apple's built-in agent skills from Xcode 27 and use them with your preferred coding agent.

Why some Swift types only appear when you import two modules

Map, PhotosPicker, and WebView are not in SwiftUI. They live in cross-import overlays, modules that only show up when you import both halves. Here is what that means and how to spot one.

How to fix "libobjc.A.dylib is being read from process memory" error

If your app takes forever to run on a device and you get this error in the console log. I will share what works for me in this article.

How to fix "dyld: Library not loaded @rpath" error

You probably get this error when you try to add a third-party framework to your project. Let's learn one way to fix it.

More posts about Xcode or explore other topics


  • Apps

    I got some apps in the App Store, you can check them out.

  • Books

    My books on iOS development, including Practical Sign in with Apple.

  • Gosh Darn SwiftUI

    SwiftUI cheat sheet