Last week, Qualcomm announced its acquisition of the renowned open-source hardware platform Arduino, simultaneously unveiling the first Arduino to feature Qualcomm silicon—the Arduino UNO Q. Unlike its classic predecessors, the UNO Q employs a "dual-brain" architecture: a Linux-running Qualcomm Dragonwing processor handles high-performance computing, while an STM32 microcontroller manages real-time control tasks.| Fatbobman's Blog
A week ago, OpenAI released the Sora 2 model along with a new Sora app that carries distinct social-platform features. For now, users can generate videos with Sora 2 only through its iOS app. In terms of visual detail, character rendering, environmental texture, and audio-visual synchronization, Sora 2 represents a substantial improvement over earlier versions.| fatbobman.com
According to 9TO5Mac's report, Apple is adding MCP (Model Context Protocol) support to its ecosystem to enable agentic AI capabilities. The implementation path closely aligns with our speculation in Weekly #077| Fatbobman's Blog
One year after the release of Swift 6.0, Swift 6 welcomes its second major version update. Beyond the much-anticipated Default Actor Isolation, Swift 6.2 brings numerous practical new features.| fatbobman.com
Tomorrow marks the official release of iOS 26, and a large number of users are likely to upgrade immediately to experience the brand-new Liquid Glass design language. Compared to previous years, this year’s adaptation workload is significantly heavier—especially for apps with complex interactions, which may face many unexpected issues.| Fatbobman's Blog
While Swift has offered strict concurrency checking for some time, many of Apple's official APIs have yet to be fully adapted, and this situation may persist for quite a while. As Swift 6 gradually gains adoption, this problem becomes increasingly prominent: developers want to benefit from the concurrency safety guarantees provided by the Swift compiler, while struggling with how to make their code meet compilation requirements. This article will demonstrate the clever use of MainActor.assume...| Fatbobman's Blog
In the blink of an eye, this newsletter has reached its 100th issue. Looking back to the first issue in October 2023, I wasn't sure I could keep this going for so long. Yet over these two years, through consistent creation, I've gained so much.| fatbobman.com
Patton is 13 years old now. While he usually displays far more energy and vitality than other dogs his age, various health issues have inevitably emerged as he's gotten older. Recently, Patton was diagnosed with pulmonary hypertension, and the vet prescribed a targeted treatment plan. Just as I was feeling relieved that the treatment seemed to be working, last Monday afternoon, Patton suddenly couldn't stand, was drooling excessively, and showed clear signs of cardiac distress.| fatbobman.com
Swift's concurrency model introduces numerous keywords, some of which are similar in naming and purpose, often causing confusion among developers. This article examines several keywords related to cross-isolation domain passing in Swift concurrency: Sendable, @unchecked Sendable, @Sendable, sending, and nonsending, helping you understand their respective roles and use cases.| Fatbobman's Blog
Swift 6.2’s Default Actor Isolation reduces boilerplate by inferring isolation for unmarked code, but brings new actor-boundary rules and macro challenges| fatbobman.com
Compared to some open-source frameworks, Core Data and SwiftData, despite having Apple's official endorsement, often leave developers helpless when exceptions occur due to their "black box" nature, making it difficult to quickly locate problems and find effective solutions. This article documents an app startup timeout incident caused by Core Data model migration, shares the solution, and deeply analyzes the underlying causes.| Fatbobman's Blog
Following the release of the new Liquid Glass style, Apple promptly introduced Icon Composer, a tool for creating icons that comply with the Liquid Glass standard. According to Apple's introduction, Icon Composer appears straightforward to use. It essentially requires users to place images in layers, and that's it. However, in practice, several details require careful attention. Megabits'll use his app as an example to briefly describe the issues I encountered during the process.| Fatbobman's Blog
Text is heavily used in SwiftUI. Compared to its counterparts in UIKit/AppKit, Text requires no configuration and works out of the box, but this also means developers lose more control over it. In this article, I will demonstrate through a real-world case study how to accomplish seemingly impossible tasks with SwiftUI's approach - finding the first view among a given set where text is not truncated, and using it as the required size.| Fatbobman's Blog
A month-long journey with Claude Code reveals how AI reshapes coding, and why developers should stay actively involved to truly grow and avoid over-reliance.| fatbobman.com
Discover Swift 6.2’s new concurrency-safe NotificationCenter.Message APIs to ensure type safety, eliminate runtime errors, and streamline notification handling.| fatbobman.com
Discover how SwiftUI's ZStack uses layoutPriority to compute size, allowing dynamic container resizing by toggling view importance—no ifs, no switches.| fatbobman.com
WWDC 2025 arrived right on schedule. Apple released all session videos at once, allowing developers to dive into the new features and APIs they care about without delay. After skimming through them over the past two days, my initial takeaway for this year’s conference is: as expected, yet unexpected.| Fatbobman's Blog
Enable prebuilt SwiftSyntax in Swift 6.1.1+ to speed up macro builds by avoiding source compilation—works with Xcode and command-line builds| Fatbobman's Blog
Notepad.exe is a native macOS Swift editor for fast, lightweight coding. Run @main projects, use per-file Toolchains, and test SPM libraries effortlessly| fatbobman.com
Swift 5.9 adds the package access modifier to limit API visibility to within the same package, improving modularity and encapsulation without using public| Fatbobman's Blog
Fix SwiftLint not working in Swift monorepos by setting config search paths in VSCode and specifying included directories in .swiftlint.yml| Fatbobman's Blog
Learn how to test Core Data in VSCode or Cursor by configuring the Xcode toolchain and manually converting xcdatamodeld to momd with xcrun momc.| fatbobman.com
Swift 6.1 now supports official WebAssembly builds via SwiftWasm—no patches needed. Use JavaScriptKit for seamless Swift–JavaScript interaction in WASM apps.| fatbobman.com