Fatbobman (东坡肘子) @fatbobman.com · 30/09/2026Xcode Preview MCP lets AI "see" SwiftUI, but agent automation hits real walls: • Can't specify render devices • Silent stale screenshot caches • Hot-reload crashes & macro index bugs How to fix It—and Unlocks the Full Potential of Div Preview 👇 fatbobman.com/en/posts/le... 254
Fatbobman (东坡肘子) @fatbobman.com · 06/08/2026SwiftUI's Text silently pushes words down to avoid orphan lines. You cannot turn it off. Except you can — avoidsOrphans has been in the SwiftUI ABI since iOS 16, just never made public. Here's how to reach it👇 fatbobman.com/en/posts/co... 171
Fatbobman (东坡肘子) @fatbobman.com · 27/05/2026SwiftUI List row height animation is broken by design — and most fixes just avoid the problem. This deep-dive shows how to actually solve it: custom Layout, state machine decoupling, and animatable spacing — all native SwiftUI, no UIKit. fatbobman.com/en/posts/ta... 062
Fatbobman (东坡肘子) @fatbobman.com · 13/05/2026Apple launched its Developer Community Recognition page—and I’m featured! Creating content on Swift and curating Swift Weekly has been a passion. Honored to be recognized by @Apple alongside so many brilliant community builders. developer.apple.com/community/r... 1131
Fatbobman (东坡肘子) @fatbobman.com · 18/03/2026Big thanks to BoltAI for supporting this week newsletter! 🙏 One native app, 100+ AI models on Mac, iOS, and Android. Fast, keyboard-driven, no Electron. 25% off for a limited time with code `FATBOBMAN25`. l.fatbobman.com/sb-boltai 010
Fatbobman (东坡肘子) @fatbobman.com · 07/01/2026Real-time sand simulation via accelerometer—Swift on MCU is incredibly smooth. Mad Machine turned embedded Swift into reality long before official support began. Andy Liu shares his 7-year technical journey and practical insights fatbobman.com/en/posts/ru... 162
Fatbobman (东坡肘子) @fatbobman.com · 19/12/2025Raycast 2025 Wrapped is here! Zipic (Images Compression) is my top extension 🏆. As a blogger, it saves me tons of bandwidth and time. Curious about its creation? Shili( author ) will share a detailed review next week. l.fatbobman.com/zipic 020
Fatbobman (东坡肘子) @fatbobman.com · 18/12/2025Is deleting thousands of entries in SwiftData too slow? You're just not using the right method! 🚀 SwiftData offers a more modern and type-safe batch delete API compared to Core Data. fatbobman.com/en/snippet/... 041
Fatbobman (东坡肘子) @fatbobman.com · 16/12/2025developers often face a puzzling issue: data syncs well between devices after enabling CloudKit for Core Data or SwiftData, but the CloudKit console shows "no records found." To solve this mystery, simply add an index manually on the CloudKit Dashboard. fatbobman.com/en/snippet/... 032
Fatbobman (东坡肘子) @fatbobman.com · 12/12/2025In an imperial setting, display a 180 cm table as 5.9 ft and a height as 5 ft 11 in. no complex if-else needed; the FormatStyle API's semantic-aware feature manages it. just set the `usage` parameter to specify the purpose. fatbobman.com/en/snippet/... 041
Fatbobman (东坡肘子) @fatbobman.com · 11/12/2025💡 From an execution model perspective, Actor is similar to a compile-time safe serial DispatchQueue. Want to integrate Actor with legacy APIs like Combine or Core Data? You can use a custom SerialExecutor to make them share the same queue. 🧵👇 110
Fatbobman (东坡肘子) @fatbobman.com · 01/12/2025Big thanks to Bolt AI for supporting my newsletter! 🙏 BoltAI brings Claude, GPT, Gemini and Local LLMs directly into your workflow ⚡️ Analyze screenshots, fix bugs, and refactor code instantly. 100% Native. 0% Electron bloat 🎁 Exclusive 51% OFF(Ends Soon): BFCM25 👇 l.fatbobman.com/sb-boltai 000
Fatbobman (东坡肘子) @fatbobman.com · 13/11/2025By using CTFontCreatePathForGlyph in Core Text to convert glyphs to CGPath, then combining them into a glyph shape and passing it to glassEffect(_:in:) for shape rendering, we can obtain a transparent “glass text” material that’s not limited to pure geometric shapes and can have customized content. 010
Fatbobman (东坡肘子) @fatbobman.com · 05/11/2025To debug Core Data code in VSCode/Cursor, you only need to do two things: - use Xcode's Swift toolchain - after the first time or after adjusting the model, use a script to compile xcdatamodeld into momd and place it in the correct build directory fatbobman.com/en/snippet/... 000
Fatbobman (东坡肘子) @fatbobman.com · 04/11/2025manage application configurations in one place with ObservableCloud Macros. whether it's UserDefaults or NSUbiquitousKeyValueStore, views automatically respond to configuration changes. Supports Codable and RawRepresentable. github.com/fatbobman/O... 031
Fatbobman (东坡肘子) @fatbobman.com · 02/11/2025`@GestureState` ensures seamless gesture tracking by automatically resetting after a gesture concludes. It restores your state even after interruptions, unlike State, which can't. fatbobman.com/en/snippet/... 030
Fatbobman (东坡肘子) @fatbobman.com · 31/10/2025Core Data provides four methods for data changes, but SwiftData offers only two and requires iOS 18+, limiting its flexibility. fatbobman.com/en/posts/ma... 031
Fatbobman (东坡肘子) @fatbobman.com · 23/10/2025With SwiftUI's current limitations on adding complex auxiliary views to the system keyboard, safeAreaInset emerges as a smart solution for creating a bottom input box like IM apps. fatbobman.com/en/posts/sa... 020
Fatbobman (东坡肘子) @fatbobman.com · 10/06/2025SwiftData has implemented the == operator for CompositeAttribute. However, strangely, when constructing predicates, you cannot directly compare the whole; you can only compare individual attributes. It's unclear whether this is by design or a bug. 000
Fatbobman (东坡肘子) @fatbobman.com · 10/06/2025Tipkit now allows the creation of more complex rules. Multiple rules can be linked using and (conjunction) or or (disjunction). 031
Fatbobman (东坡肘子) @fatbobman.com · 10/06/2025Another improvement in SwiftData. Codable type properties can now be used as filter criteria for building predicates. 1122
Fatbobman (东坡肘子) @fatbobman.com · 10/06/2025in xcode 26, newly created projects have their default actor isolation set to MainActor, which means all types declared in the project will implicitly have `MainActor` added. it seems there should be an option to add this choice when creating the project. 131
Fatbobman (东坡肘子) @fatbobman.com · 06/06/2025TabularBuilder makes converting any swift object to a tabulardata dataframe has never been easier! - declarative syntax in the style of swiftui - type-safe data mapping - efficient dataframe creation - supports conditional mapping and transformation github.com/fatbobman/T... 011
Fatbobman (东坡肘子) @fatbobman.com · 05/06/2025Leverage ObservableCloud macros to simplify your NSUbiquitousKeyValueStore (iCloud Key-Value Storage) operations in SwiftUI—effortless as sipping water! 💪💻💧 github.com/fatbobman/O... 051
Fatbobman (东坡肘子) @fatbobman.com · 15/05/2025combine GeometryReader, hidden, and id to dynamically tweak the sheet's presentationDetents by view height, creating a more adaptable layout. fatbobman.com/en/posts/in... 012
Fatbobman (东坡肘子) @fatbobman.com · 13/05/2025parameterized testing in Swift is a game-changer, slashing repetitive tests while boosting test coverage. It lets developers cover more ground with less code, tackling a wider array of use cases seamlessly. fatbobman.com/en/posts/ma... 021
Fatbobman (东坡肘子) @fatbobman.com · 08/05/2025Swift's `package` access control limits API access to the same package, avoiding unnecessary `public` exposure. It's useful in modular setups to share implementations across targets while enhancing encapsulation and security. fatbobman.com/en/snippet/... 021
Fatbobman (东坡肘子) @fatbobman.com · 03/05/2025Swift Charts offers dynamic APIs for data binning: NumberBins and DateBins. Even if chart building isn't your goal, these APIs effortlessly deliver efficient and stable data binning, ready to be applied across various scenarios. fatbobman.com/en/posts/ma... 031
Fatbobman (东坡肘子) @fatbobman.com · 02/05/2025ObservableDefaults Now Embraces Codable Magic Thanks to `jmisol`, ObservableDefaults now effortlessly handles `Codable` properties via the `CodableUserDefaultsPropertyListValue` protocol. Seamlessly store and retrieve complex data types with UserDefaults. github.com/fatbobman/O... 010
Fatbobman (东坡肘子) @fatbobman.com · 28/04/2025`@GestureState` ensures seamless gesture tracking by automatically resetting after a gesture concludes. It restores your state even after interruptions, unlike State, which can't. fatbobman.com/en/snippet/... 011
Fatbobman (东坡肘子) @fatbobman.com · 24/04/2025No Need to Set Primary Key in Core Data/SwiftData Core Data and SwiftData take the hassle out of managing primary keys by leveraging SQLite’s Z_PK (auto-increment), Z_ENT (entity type), and Z_PRIMARYKEY (key tracking). fatbobman.com/en/snippet/... fatbobman.com/en/posts/ta... 011
Fatbobman (东坡肘子) @fatbobman.com · 15/04/2025To easily test Core Data code in VSCode/Cursor, just do the following: 🔧 ensure the appropriate Swift toolchain is used 🔄 convert xcdatamodeld to momd with a script after model changes for more details, click: fatbobman.com/en/snippet/... 001
Fatbobman (东坡肘子) @fatbobman.com · 11/04/2025With iOS 16, Image rolls out a fresh constructor, letting developers craft and generate images directly on GraphicsContext. Break free from the confines of environments like TabBar; image customization just got a whole lot easier! fatbobman.com/en/posts/ho... 031
Fatbobman (东坡肘子) @fatbobman.com · 10/04/2025NavigationStack and NavigationSplitView boost SwiftUI navigation by offering greater customization and improved support for reactive programming. However, they introduce new hurdles when it comes to efficiently organizing navigation states. fatbobman.com/zh/posts/ne... 010
Fatbobman (东坡肘子) @fatbobman.com · 08/04/2025In TipKit, the framework boosts flexibility by saving display conditions by id instead of by Tip type name. This design lets you reuse Tip declarations effortlessly—just swap the id. It's perfect for generating countless similar tips for dynamic data. fatbobman.com/en/posts/ma... 031
Fatbobman (东坡肘子) @fatbobman.com · 07/04/2025apply textContentType to a TextField, and watch the system smartly offer spot-on suggestions as users type in details like email, password, phone number, or verification code, boosting both input speed and security fatbobman.com/en/posts/te... 031
Fatbobman (东坡肘子) @fatbobman.com · 04/04/2025In SwiftUI, `scrollClipDisable` determines if scrolling content fits the container's boundaries. False clips the content; true allows it to extend beyond. fatbobman.com/en/posts/ne... 041
Fatbobman (东坡肘子) @fatbobman.com · 03/04/2025leveraging batch operations allows developers to skip the core data context, turbocharging database read and write efficiency. mastering this technique can boost performance multiple times over, even dozens in certain scenarios. 👇 fatbobman.com/en/posts/ba... 011
Fatbobman (东坡肘子) @fatbobman.com · 02/04/2025model inheritance is a unique feature of core data, offering the following advantages: 🍃 simplifies model declaration 🔗 provides unified data abstraction 🔄 enhances flexibility in relationship modeling fatbobman.com/en/posts/mo... 000
Fatbobman (东坡肘子) @fatbobman.com · 01/04/2025Developers sometimes hit snags with Core Data or SwiftData sync features that work seamlessly on iOS but stumble on macOS after launch. the fix? simply add the cloudkit framework dependency to your project. fatbobman.com/en/snippet/... 042
Fatbobman (东坡肘子) @fatbobman.com · 28/03/2025Observation simplifies declaring observable objects and offers precise attribute-based tracking. This reduces unnecessary view updates, boosting SwiftUI app performance. fatbobman.com/en/posts/ma... 060
Fatbobman (东坡肘子) @fatbobman.com · 26/03/2025The Swift Server Work Group's plugin turbocharges Swift Testing! Seamlessly integrate with VSCode, Cursor, or Windsurf to supercharge your SPM development, streamlining your testing workflow for ultimate efficiency. fatbobman.com/en/posts/ma... 011
Fatbobman (东坡肘子) @fatbobman.com · 25/03/2025CoreData/SwiftData projects on TestFlight store data in production by default. Developers can switch to development by changing com.apple.developer.icloud-container-environment in Entitlements.plist. fatbobman.com/en/snippet/... 041
Fatbobman (东坡肘子) @fatbobman.com · 23/03/2025I looked at the demo on your github, and it's strange that when creating the datahandler, even if detached is used, it will still be done on the main thread. @Entry will break some of Swift's concurrency constraints. 120
Fatbobman (东坡肘子) @fatbobman.com · 23/03/2025@freiwald.dev , modelExecutor of modelActor using modelContext queue(Thread), and modelContext's queue depends on the context of its creation. In order to ensure that it runs in the non-main thread, you can use Task.detached fatbobman.com/en/posts/con... 120
Fatbobman (东坡肘子) @fatbobman.com · 21/03/2025In SwiftUI, use implicit animations for specific elements and explicit animations for managing state changes. Explicit animations add default effects to views without implicit animations. fatbobman.com/en/snippet/... 021
Fatbobman (东坡肘子) @fatbobman.com · 20/03/2025SwiftUI's onAppear is semantically closer to UIKit's viewWillAppear, as it is triggered when a view is about to appear on the screen. Specifically, it is called after the view has completed its layout and before it begins rendering to the screen. fatbobman.com/en/posts/on... 031
Fatbobman (东坡肘子) @fatbobman.com · 17/03/2025Before the Swift community embraced embedded development, some manufacturers were already using Swift for embedded systems. The SwiftIO Playground Kit sparked excitement and challenges in Swift for embedded tech. fatbobman.com/en/posts/de... 2132
Fatbobman (东坡肘子) @fatbobman.com · 14/03/2025How does SwiftData convert these code declarations into models that the default storage (Core Data) can recognize when using a purely code-based declaration? Understanding the underlying principles is very helpful for correctly creating models. 👇 fatbobman.com/en/posts/un... 032