Fatbobman's Blog
The Vanishing WWDC Wishlists - Fatbobman's Swift Weekly #136
CocoaPods Is on Its Way Out, but SwiftPM’s Story Is Just Entering Chapter Two - Fatbobman's Swift Weekly #135
Getting AI from Handy to Heartfelt - Fatbobman's Swift Weekly #134
Swift Concurrency is Gaining Broader Adoption - Fatbobman's Swift Weekly #133
From OpenSwiftUI to DanceUI: A Different Way to Dive into SwiftUI - Fatbobman's Swift Weekly #132
Copyright Walls Demolished by Vibe Coding, and the Developer's New Moat - Fatbobman's Swift Weekly #131
Apple's Rare Concession: When Critical Vulnerabilities Meet the 'Update Refusal' Wave - Fatbobman's Swift Weekly #130
A Wall Away, Worlds Apart - Fatbobman's Swift Weekly #129
Is My App Stuck in Review? - Fatbobman's Swift Weekly #128
CDE: An Attempt to Make Core Data Feel More Like Modern Swift
Apple at 50 and Me at 51 - Fatbobman's Swift Weekly #127
Why I'm Still Thinking About Core Data in 2026
MacBook Neo: The Starting Point of Apple's Return to Campus - Fatbobman's Swift Weekly #126
Why Does Passing NSManagedObjectContext Across Isolation Domains No Longer Error in Swift 6.2? The Real Change Isn't in the Compiler
OpenClaw Is Impressive — I Just Don’t Really Need It (Yet) - Fatbobman's Swift Weekly #125
The Spring Festival Gala, Robots, AI, and LLMs - Fatbobman's Swift Weekly #124
Wishing Everyone a Happy Year of the Horse! - Fatbobman's Swift Weekly #123
Xcode Enters the Agent Era - Fatbobman's Swift Weekly #122
Xcode 26.3 + Claude Agent: Model Swapping,MCP, Skills, and Adaptive Configuration
From Pixel Capture to Metadata: Reimagining Screen Recording Architecture on macOS
Shifting Light, Unchanging Haystacks - Fatbobman's Swift Weekly #121
Skip Goes Open Source: A High-Stakes Bet from “Selling Tools” to “Selling Trust” - Fatbobman's Swift Weekly #120
isolated(any) and #isolation: Letting Swift Closures Automatically Inherit Isolation
Building AI Moats: Anthropic’s Crackdown and the Apple-Google Alliance - Fatbobman's Swift Weekly #119
Surviving tvOS: An Engineering Log of an Atypical Media Player
An AT Life Isn't Necessarily Better Than an MT One - Fatbobman's Swift Weekly #118
Farewell to Portable Assembly: I've Been Running Swift on MCUs for Seven Years
2026: When AI Fades into the Workflow, Are You Ready? - Fatbobman's Swift Weekly #117
The Indie Developer's Trial: Zipic's Productization Journey from 0 to 1
Escaping the Mac App Store: Building a Distribution and Sales System for Indie Apps from Scratch
Solving SwiftUI Pain Points and Performance Bottlenecks: Zipic Development Technical Retrospective
Swift, SwiftUI & SwiftData: A Mature 2025 - Fatbobman's Swift Weekly #116
【Tips】Why Child @State Won't Update from Parent in SwiftUI
My Eight Years with CloudKit: From Open Source IceCream to Commercial Apps
Sunday Incident - Fatbobman's Swift Weekly #115
From YaoYao to Tooboo: watchOS Development Pitfalls and Practical Tips
【Tips】How to Forward Events from the Main Thread to GTM Running Inside Partytown
Unearthing "Silent Experts" - Fatbobman's Swift Weekly #114
A Deep Dive into SwiftUI Rich Text Layout: Beyond AttributedString — Inside MarkdownView and RichText
When Android Phones “Force-Compat” with AirDrop - Fatbobman's Swift Weekly #113
From iOS to Android: A Candid Look at My Real-World Journey into Dual-Platform Development
When AI Makes "Seeing Is Believing" Impossible - Fatbobman's Swift Weekly #112
Deep Dive into iMessage: Behind the Making of an Agent
Homebrew 5.0: Parallel Downloads, MCP Integration, and Intel's Final Countdown - Fatbobman's Swift Weekly #111
Grow on iOS 26: Liquid Glass Adaptation in UIKit + SwiftUI Hybrid Architecture
Skip Fuse Now Free for Indie Devs! - Fatbobman's Swift Weekly #110
Dangerous but Fortunate — Twice! - Fatbobman's Swift Weekly #109
Swift Officially Releases Android SDK - Fatbobman's Swift Weekly #108
A Trip to the Apple Store for Repairs - Fatbobman's Swift Weekly #107
Qualcomm Acquires Arduino: The Wheel of History Turns - Fatbobman's Swift Weekly #106
Sora 2: A Great Model, but Not Necessarily a Great Business - Fatbobman's Swift Weekly #105
Apple is Preparing for System-Level MCP Support - Fatbobman's Swift Weekly #104
Swift 6.2 Is Here - Fatbobman's Swift Weekly #103
Have You Completed Your Liquid Glass Adaptation? - Fatbobman's Swift Weekly #102
From Open Platform to Controlled Ecosystem: Google Announces Android Developer Verification Policy - Fatbobman's Swift Weekly #101
Using MainActor.assumeIsolated to Solve Legacy API Compatibility Issues with Swift 6
For This Journey, and for My Future Self - Fatbobman's Swift Weekly #100
Swift 6: Sendable, @unchecked Sendable, @Sendable, sending and nonsending
Default Actor Isolation: New Problems from Good Intentions
Core Data Migration Incident Analysis: The Hidden Traps We Overlooked
Icon Composer: Tackling Challenges
How to Detect Text Truncation in SwiftUI?
Dancing with AI: My Month with Claude Code
NotificationCenter.Message: A New Concurrency-Safe Notification Experience in Swift 6.2
Exploring the Secrets of layoutPriority in SwiftUI ZStack
WWDC 2025 First Impressions: As Expected, Yet Unexpected
【Tips】Speed Up Compilation with Prebuilt Swift-Syntax
【Tips】Controlling Access Within a Swift Package
【Tips】Fixing SwiftLint Configuration Not Working in Monorepo Projects
【Tips】How to Test Core Data Code in VSCode/Cursor