Skip Navigation
InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)YA
Posts
95
Comments
0
Joined
1 yr. ago
Swift @programming.dev
Yang @programming.dev

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. Those concessions blur our domain models’ intent and plant hidden seeds of instability.

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.

Swift @programming.dev
Yang @programming.dev

Shorter Validity, Longer Shelf Life | Fatbobman's Swift Weekly #80

  • My Hopes for Xcode
  • SwiftUI Colors
  • Zooming Slider
  • Thinking of WWDC
  • Alerts in iOS
  • Swift Reduce
  • XcodeBuild MCP
  • Swift Regex
Swift @programming.dev
Yang @programming.dev
fatbobman.com My Hopes for Xcode

Discover six key improvements Xcode needs—ranging from SPM support to AI enhancements—to stay competitive and reclaim its place as developers’ preferred tool.

My Hopes for Xcode

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.

Swift @programming.dev
Yang @programming.dev

🚨 Microsoft tightens plugin rules ☁️ Google goes all-in on cloud-native AI 🤔 What’s next for Xcode?

Fatbobman’s Swift Weekly #079 is out!

🧱 Build WASM apps in Swift 🔀 Structured Concurrency (EGG rule) 🎯 WWDC25 wishes …and more

Swift @programming.dev
Yang @programming.dev

Swift 6.1 unleashes official WebAssembly builds through SwiftWasm—no patches required. Dive into this article to discover how to craft WebAssembly apps with Swift and unlock the boundless potential of cross-platform development.

Swift @programming.dev
Yang @programming.dev

Do Not Market Driver-Assistance as Autonomous Driving | Fatbobman's Swift Weekly #078

  • Environment dismiss
  • Swift 6.1
  • Cross Compiling Swift
  • Modern URL Construction
  • Inspector
  • MKMapView to Image
  • MCP-Supported AI Frameworks
  • State Management
Swift @programming.dev
Yang @programming.dev

In SwiftUI, dismiss is popular for its flexibility, but overusing it can introduce hidden risks, testing challenges, and stability issues. Opt for state-driven methods like Binding or custom environments for safer, more maintainable UI logic.

Swift @programming.dev
Yang @programming.dev

The Rise of MCP and Apple's AI Framework Vision | Fatbobman's Swift Weekly #077

  • SwiftUI Environment
  • TCA
  • CustomTestStringConvertible
  • Flexible, Styled Component
  • TabView
  • ModelActor
  • Avoid Xcode Projects Merge Conflicts
  • Swiftly 1.0
Swift @programming.dev
Yang @programming.dev

SwiftUI’s Environment is a powerful and elegant mechanism for dependency injection, and almost every SwiftUI developer encounters and uses it in daily development. Not only does it simplify data transfer between views, it also opens up greater possibilities for application architecture design. In this article, we will set aside specific implementation details and instead focus on the role and boundaries of Environment within an architecture, exploring some often-overlooked yet crucial design ideas and practical experiences.

Swift @programming.dev
Yang @programming.dev

Photographing My Fur Babies | Fatbobman's Swift Weekly #076

  • Intercept iPhone Network Requests
  • Why I Avoid Group
  • Sign in with Apple in the watchOS Simulator
  • Color Space
  • MCP server in Swift
  • Macro Issues in Xcode Cloud
  • Git Hooks in Swift
Swift @programming.dev
Yang @programming.dev

OpenAI Appeals to the US Government: Competitive Concerns Over DeepSeek | Fatbobman's Swift Weekly #075

  • Key Considerations Before Using SwiftData
  • Async/Await & SwiftUI
  • Swift Compiler Issue
  • Swift Testing Tip
  • Interactive Charts
  • Browse No More
Swift @programming.dev
Yang @programming.dev
fatbobman.com Key Considerations Before Using SwiftData

SwiftData simplifies data persistence in SwiftUI with seamless iCloud sync, but differs from GRDB/SQLite.swift in flexibility and performance. Understand its strengths, limitations, and key considerations before adopting it in your project.

Key Considerations Before Using SwiftData

This article aims to serve as a guide for developers interested in SwiftData, helping you understand its strengths and limitations so you can make informed decisions based on your project needs. Whether you’re considering adopting SwiftData in a new project or planning a migration from another persistence solution, the following content will provide valuable insights to support your decision-making process.

Swift @programming.dev
Yang @programming.dev

The Cycle of Expectation and Disappointment: Apple's AI Dilemma and Resilience | Fatbobman's Swift Weekly #074

  • Lazy State
  • Dynamically Generic Types
  • Custom Lazy List
  • Directory to Folder
  • UICollectionViewCell
  • Clean Xcode Junk
  • Reusable CI
Swift @programming.dev
Yang @programming.dev

The Observation framework has brought native property-level observation to Swift, effectively preventing unnecessary view updates in SwiftUI triggered by unrelated property changes, thereby enhancing application performance. However, since @State does not offer a lazy initialization constructor like @StateObject, it may lead to performance degradation or even logical issues due to the premature construction of instances in certain scenarios. This article explores how to implement a lazy initialization solution for Observable instances using @State.

Swift @programming.dev
Yang @programming.dev

Experiencing the Passion of Apple Developers at the Carnival | Fatbobman's Swift Weekly #073

  • Animatable Protocol
  • New Stuff with 6.1
  • Task.sleep vs. Task.yield
  • View Models with Enums
  • Music Recognition with ShazamKit
  • OpenSwiftUI & Harmony
Swift @programming.dev
Yang @programming.dev
Swift @programming.dev
Yang @programming.dev

Beyond X: The Swift Community Embraces Mastodon and Bluesky | Fatbobman's Swift Weekly #072

  • From Host to Serverless
  • Swift Server Case
  • Git Commits Tips
  • async let vs Task Group
  • Test in SwiftUI
  • Custom SF Symbol
  • Concurrency and Legacy Code
Swift @programming.dev
Yang @programming.dev

Beyond X: The Swift Community Embraces Mastodon and Bluesky | Fatbobman's Swift Weekly #072

  • From Host to Serverless
  • Swift Server Case
  • Git Commits Tips
  • async let vs Task Group
  • Test in SwiftUI
  • Custom SF Symbol
  • Concurrency and Legacy Code
Swift @programming.dev
Yang @programming.dev

Building Android Apps with Swift | Fatbobman's Swift Weekly #071

  • Implementing Custom Paging
  • Exploring MLX Swift
  • Deep Links in SwiftUI
  • Using TranslateKit for Localization
  • xcconfig in Xcode
  • Swift Interoperability with C
iOSProgramming @programming.dev
Yang @programming.dev

SwiftUI's scrollTargetBehavior provides precise scrolling control, but default paging misaligns in landscape mode. This article explores its limitations and implements a custom ScrollTargetBehavior for perfect paging alignment