Home

084

Awaiting WWDC 2025 with Serenity - #084

Awaiting WWDC 2025 with Serenity

May 19, 2025 Issue #084
Time flies, and there are only 20 days left until WWDC 2025 begins. In the past few years, I would always write several ...
Explore Full Issue
Experience the Charm of Swift: One-Click DataFrame Export
May 21, 2025 #Swift

As my understanding of Swift has deepened, its appeal has become increasingly dazzling to me. Swift allows me to express programming ideas in a way that is clear, precise, safe, modern, and elegant. This article shows how to use Swift’s powerful generics, KeyPath, protocol extensions, and ResultBuilder to build a highly configurable, type-safe DataFrame export tool with TabularData, supporting column mapping, conditional logic, and declarative DSL syntax.


Demystifying SwiftUI’s .ignoredByLayout() — How to Apply Geometry Effects Without Breaking Your Layout
May 14, 2025 #SwiftUI

Among SwiftUI’s many APIs, .ignoredByLayout() is something of an “understated member.” Information is scarce, usage scenarios are uncommon, and its very name tends to raise questions. It seems to suggest some kind of “ignoring” of the layout—but how does that differ from modifiers like offset or scaleEffect, which by default don’t affect their parent’s layout? When does ignoredByLayout actually come into play, and what exactly does it “ignore” or “hide”? In this article, we’ll lift the veil on this subtle API in SwiftUI’s layout mechanism.

From 180 cm to 5′ 11″: A Complete Guide to Swift Measurement
May 7, 2025 #Swift

In everyday life we constantly convert values between different units of measurement. For developers this seems easy—write a few formulas, sprinkle in a couple of switch statements and you’re done. But the moment you try to support dozens of units, seamless internationalisation, formatting, precision and rounding, the workload sky-rockets and the drudgery can make you question your life choices. The good news: starting with iOS 10 Apple added a comprehensive Measurement API to Foundation, taking all that donkey work off our hands. This article walks you through its usage and best practices.



Building Type‑Safe, High‑Performance SwiftData / Core Data Models

Swift’s powerful type system empowers us to create semantically explicit and safe data models. Yet when we move to SwiftData or Core Data, the constraints of their underlying storage mechanisms often force us to compromise on type expressiveness. This article explores how, within the restrictions of persistence layers, we can leverage ingenious type wrappers and conversions to build data models that are simultaneously Type-safe, semantically clear, and highly efficient.


My Hopes for Xcode
Apr 16, 2025 #Dev Tools

With rapid advancements in AI, it appears that the era of low-code or even no-code development is imminent. However, over the past year, rather than diminishing, various tools for professional developers have emerged continually. Can Xcode still capture developers' enthusiasm? What changes does it need to stay competitive and relevant? In this article, I will outline several key improvements I hope to see in Xcode.


Building WASM Applications with Swift

With the official release of Swift 6.1, SwiftWasm has also undergone a major upgrade. This milestone update marks the first time SwiftWasm has achieved a build entirely based on the official Swift open-source toolchain—leaving behind the era of custom patches. This change not only significantly simplifies the installation process for developers and greatly reduces the consumption of system storage, but more importantly, the genuine build method drastically lowers platform maintenance costs and injects new vitality into the Swift ecosystem. In this article, we will explore how to build WebAssembly applications using Swift, showcasing the endless possibilities of Swift's cross-platform development.


Say Goodbye to dismiss: A State-Driven Path to More Maintainable SwiftUI
Apr 2, 2025 #SwiftUI

Overusing SwiftUI’s dismiss can harm app stability and maintainability. Instead, manage view dismissal through Binding, functions, or custom environment values to ensure clear, testable, and predictable UI behavior. This state-driven approach helps avoid hidden performance issues and builds a more robust architecture.