Letting AI See SwiftUI: Xcode Preview MCP in Practice — Pitfalls and Hopes
Apple's Xcode 26.3 introduced the MCP capabilities for preview rendering, however, developers face various challenges including rendering device selection and image consistency. Through hands-on experiences, the article outlines potential workarounds for using Xcode's Preview rendering effectively, especially in AI workflows, while emphasizing the need for improvements within Xcode to reduce friction in UI development.
#SwiftUI #AI #DevTools #fatbobman
Apple's Xcode 26.3 introduced the MCP capabilities for preview rendering, however, developers face various challenges including rendering device selection and image consistency. Through hands-on experiences, the article outlines potential workarounds for using Xcode's Preview rendering effectively, especially in AI workflows, while emphasizing the need for improvements within Xcode to reduce friction in UI development.
#SwiftUI #AI #DevTools #fatbobman
Using Swift’s ‘some’ keyword beyond SwiftUI
The 'some' keyword in Swift offers a way to simplify generics across various contexts, beyond just SwiftUI. By allowing type inference for return types, it reduces complexity in API design, enabling cleaner code structures and improved performance without type erasure's penalties. This article explores practical applications of 'some' in functions and protocols, highlighting its versatility within the Swift language.
#Swift #SwiftUI #iOSDev #Generics #SwiftLanguage #swiftbysundell
The 'some' keyword in Swift offers a way to simplify generics across various contexts, beyond just SwiftUI. By allowing type inference for return types, it reduces complexity in API design, enabling cleaner code structures and improved performance without type erasure's penalties. This article explores practical applications of 'some' in functions and protocols, highlighting its versatility within the Swift language.
#Swift #SwiftUI #iOSDev #Generics #SwiftLanguage #swiftbysundell
Upcoming expiration of Developer ID Certification Authority (Sub-CA)
The upcoming expiration of the Developer ID Certification Authority (Sub-CA) on February 1, 2027, requires developers to prepare for changes to their certificates. To maintain proper functionality, developers should check their current certificates for expiration, generate replacements from the new Developer ID Certification Authority (G2) valid until 2031, and re-sign their packages accordingly. Important actions are needed to ensure continued app functionality, particularly for installer packages and future updates.
#Apple #iOSDev #Xcode #developer #certification #applecom
The upcoming expiration of the Developer ID Certification Authority (Sub-CA) on February 1, 2027, requires developers to prepare for changes to their certificates. To maintain proper functionality, developers should check their current certificates for expiration, generate replacements from the new Developer ID Certification Authority (G2) valid until 2031, and re-sign their packages accordingly. Important actions are needed to ensure continued app functionality, particularly for installer packages and future updates.
#Apple #iOSDev #Xcode #developer #certification #applecom
How to change line height in SwiftUI
Adjusting line height in SwiftUI can significantly enhance text readability and layout. The new lineHeight(_:) modifier allows developers to specify line height using various options, including fixed points and multiples of the font size, ensuring text adapts to dynamic content sizes effectively. This tutorial covers all line height variations, demonstrating their impact on text formatting and providing practical examples for each case.
#SwiftUI #iOSDev #sarunw
Adjusting line height in SwiftUI can significantly enhance text readability and layout. The new lineHeight(_:) modifier allows developers to specify line height using various options, including fixed points and multiples of the font size, ensuring text adapts to dynamic content sizes effectively. This tutorial covers all line height variations, demonstrating their impact on text formatting and providing practical examples for each case.
#SwiftUI #iOSDev #sarunw
A SwiftUI search adapter needs its own request ownership
Understanding request ownership is crucial for navigating state management in SwiftUI searches. This article explains how a search adapter can maintain stable observable state while managing multiple competing requests effectively. With a focus on demonstrating ownership rules and handling complex scenarios, it provides practical code examples to enhance your iOS development skills.
#SwiftUI #iOSDev #iOSDevelopment #CombineFramework #robinwinters
Understanding request ownership is crucial for navigating state management in SwiftUI searches. This article explains how a search adapter can maintain stable observable state while managing multiple competing requests effectively. With a focus on demonstrating ownership rules and handling complex scenarios, it provides practical code examples to enhance your iOS development skills.
#SwiftUI #iOSDev #iOSDevelopment #CombineFramework #robinwinters
robinwinters.github.io
A SwiftUI search adapter needs its own request ownership — Robin Winters
Robin Winters presents a native iOS teaching demo with observable search state, non-cooperative request races and four executable adapter checks.
Introducing RocketTrace: Using Xcode Instruments with AI Agents
RocketTrace enhances the analysis of Xcode Instruments recordings by providing ranked findings tailored for AI agents. This Mac app streamlines performance evaluations, allowing developers to identify key issues like CPU hotspots and concurrency errors with a more efficient workflow. Benchmark tests demonstrate that it significantly reduces token usage and analysis time compared to traditional methods.
#iOSDev #Swift #Xcode #AI #SwiftLee #Performance #Development
RocketTrace enhances the analysis of Xcode Instruments recordings by providing ranked findings tailored for AI agents. This Mac app streamlines performance evaluations, allowing developers to identify key issues like CPU hotspots and concurrency errors with a more efficient workflow. Benchmark tests demonstrate that it significantly reduces token usage and analysis time compared to traditional methods.
#iOSDev #Swift #Xcode #AI #SwiftLee #Performance #Development
TLS certificate validation on iOS
Understanding TLS certificate validation on iOS is crucial for developers working with HTTPS connections. This article covers essential validation checks, the importance of certificate chains, and provides guidance on inspecting server certificates. It highlights common issues and best practices to ensure secure communication in iOS applications.
#iOSDev #Swift #Security #LivsyCode
Understanding TLS certificate validation on iOS is crucial for developers working with HTTPS connections. This article covers essential validation checks, the importance of certificate chains, and provides guidance on inspecting server certificates. It highlights common issues and best practices to ensure secure communication in iOS applications.
#iOSDev #Swift #Security #LivsyCode
Livsy Code → Learn Swift the smart way
TLS certificate validation on iOS → Livsy Code
Greetings, traveler! Most iOS apps talk to servers over HTTPS. In everyday work, certificate validation stays in the background. You create a request, the system sends it, and everything works. Most of the time, developers do not need to think about certificate…
👍1
SwiftUI state management best practices, from production
Understanding who owns a value in SwiftUI state management can prevent frustrating bugs. This guide emphasizes the importance of defining the source of truth, the lifetime of a value, its authority, and whether it needs to persist, before selecting a state management wrapper like @State or @Binding. Insights on how to handle derived state without introducing race conditions are also addressed, making this a crucial resource for iOS developers enhancing their SwiftUI practices.
#SwiftUI #iOSDev #StateManagement #Swift #salari
Understanding who owns a value in SwiftUI state management can prevent frustrating bugs. This guide emphasizes the importance of defining the source of truth, the lifetime of a value, its authority, and whether it needs to persist, before selecting a state management wrapper like @State or @Binding. Insights on how to handle derived state without introducing race conditions are also addressed, making this a crucial resource for iOS developers enhancing their SwiftUI practices.
#SwiftUI #iOSDev #StateManagement #Swift #salari
🔥1
[Accepted with modifications] SE-0547: SwiftPM Support for Compilation Caching
SwiftPM now supports compilation caching, significantly improving build performance in common workflows. This accepted proposal allows configuring caching through global, per-package, and per-build settings, optimizing reuse of compiled outputs and accelerating development speed. Notably, remote caching has been deferred for future consideration, focusing initial efforts on local and CI builds.
#Swift #SwiftPM #iOSDev #SwiftEvolution #CompilationCaching
SwiftPM now supports compilation caching, significantly improving build performance in common workflows. This accepted proposal allows configuring caching through global, per-package, and per-build settings, optimizing reuse of compiled outputs and accelerating development speed. Notably, remote caching has been deferred for future consideration, focusing initial efforts on local and CI builds.
#Swift #SwiftPM #iOSDev #SwiftEvolution #CompilationCaching
🔥2
What a Broken Wrist Taught Me About iOS 27 Dictation and macOS Voice Control
iOS 27 brings notable enhancements to dictation capabilities by integrating essential text-editing features from Voice Control, allowing users to efficiently correct wording and capitalization via voice commands. However, while dictation gains these improvements, macOS 27 disappointingly lacks equivalent functionalities, highlighting a significant divide between the two platforms. Users relying on multilingual dictation may face challenges, as iOS 27 no longer remembers preferred languages for contacts, necessitating manual adjustments for each conversation.
#iOS27 #macOS27 #VoiceControl #Accessibility #iOSDev #mjtsai
iOS 27 brings notable enhancements to dictation capabilities by integrating essential text-editing features from Voice Control, allowing users to efficiently correct wording and capitalization via voice commands. However, while dictation gains these improvements, macOS 27 disappointingly lacks equivalent functionalities, highlighting a significant divide between the two platforms. Users relying on multilingual dictation may face challenges, as iOS 27 no longer remembers preferred languages for contacts, necessitating manual adjustments for each conversation.
#iOS27 #macOS27 #VoiceControl #Accessibility #iOSDev #mjtsai
Mjtsai
Michael Tsai - Blog - What a Broken Wrist Taught Me About iOS 27 Dictation and macOS Voice Control
The iOS Weekly Brief: Issue #81
Pre-orders for the upcoming iPhone Duo begin next week, alongside the release of Xcode 27.1 RC. This issue offers insights on preparing apps for the new device, delves into Swift's concurrency improvements with Sendable for data safety, and highlights how to optimize app design with SwiftUI. Also featured is a discussion on AI's impact in tech, specifically for iOS developers, which showcases real-world applications from industry leaders.
#iOSWeeklyBrief #iOSDev #SwiftUI #Xcode #AppDevCon
Pre-orders for the upcoming iPhone Duo begin next week, alongside the release of Xcode 27.1 RC. This issue offers insights on preparing apps for the new device, delves into Swift's concurrency improvements with Sendable for data safety, and highlights how to optimize app design with SwiftUI. Also featured is a discussion on AI's impact in tech, specifically for iOS developers, which showcases real-world applications from industry leaders.
#iOSWeeklyBrief #iOSDev #SwiftUI #Xcode #AppDevCon
SwiftUI .task vs .onAppear - Async Work Done Right
Handling async work in SwiftUI has evolved with the introduction of the .task modifier which simplifies state management compared to .onAppear. The article compares these two approaches, highlighting how .task allows for better lifecycle management of async operations, minimizes stale data risks, and leverages cooperative cancellation. This results in cleaner code that is easier to maintain and understand while effectively managing the intricacies of asynchronous data loading.
#SwiftUI #iOSDev #AsyncProgramming #SagarUnagar #CleanCode
Handling async work in SwiftUI has evolved with the introduction of the .task modifier which simplifies state management compared to .onAppear. The article compares these two approaches, highlighting how .task allows for better lifecycle management of async operations, minimizes stale data risks, and leverages cooperative cancellation. This results in cleaner code that is easier to maintain and understand while effectively managing the intricacies of asynchronous data loading.
#SwiftUI #iOSDev #AsyncProgramming #SagarUnagar #CleanCode
Fine-Grained Swift Warning Control with Bazel Features
Controlling Swift warnings just got easier with Bazel's features mechanism. By using flags like --features, developers can now effectively elevate specific diagnostic groups to errors or selectively suppress them for certain targets. This flexible approach simplifies the management of Swift warnings across projects and enhances the overall build process.
#Bazel #Swift #iOSDev #SwiftDevelopment #AdinCebic
Controlling Swift warnings just got easier with Bazel's features mechanism. By using flags like --features, developers can now effectively elevate specific diagnostic groups to errors or selectively suppress them for certain targets. This flexible approach simplifies the management of Swift warnings across projects and enhances the overall build process.
#Bazel #Swift #iOSDev #SwiftDevelopment #AdinCebic
Fine-Grained Swift Warning Control with Bazel Features
Fine-Grained Swift Warning Control with Bazel Features :: Adin Ćebić —
Ever since Swift gained the ability to control warnings via diagnostic groups in SE-0443, we’ve been able to promote specific diagnostic groups to errors.
However, passing these flags via copts on swift_library targets isn’t always convenient. To apply them…
However, passing these flags via copts on swift_library targets isn’t always convenient. To apply them…
ComPDFKit
ComPDFKit offers a robust Swift Package Manager integration for the ComPDF SDK, enabling developers to implement advanced PDF viewing, editing, and annotations functionalities in their iOS and macOS applications. With a single dependency, it simplifies the development process and enhances document management capabilities. This package has been actively maintained and recently received its latest release, ensuring developers have access to a reliable and feature-rich tool for their projects.
#ComPDFKit #PDF #iOSDev #SwiftPM #macOS
ComPDFKit offers a robust Swift Package Manager integration for the ComPDF SDK, enabling developers to implement advanced PDF viewing, editing, and annotations functionalities in their iOS and macOS applications. With a single dependency, it simplifies the development process and enhances document management capabilities. This package has been actively maintained and recently received its latest release, ensuring developers have access to a reliable and feature-rich tool for their projects.
#ComPDFKit #PDF #iOSDev #SwiftPM #macOS
Exploring _UILiquidLensView
Dive into the intricacies of _UILiquidLensView, a private UIKit component that enables interactive glass lens effects in iOS applications. Discover how it operates through reflection and dynamic selectors, as well as its implementation in Telegram’s user interface. Despite its utility for research and prototypes, it remains unsuitable for production due to App Store guidelines prohibiting private API use.
#iOSDev #UIKit #Swift #PrivateAPI #LivsyCode
Dive into the intricacies of _UILiquidLensView, a private UIKit component that enables interactive glass lens effects in iOS applications. Discover how it operates through reflection and dynamic selectors, as well as its implementation in Telegram’s user interface. Despite its utility for research and prototypes, it remains unsuitable for production due to App Store guidelines prohibiting private API use.
#iOSDev #UIKit #Swift #PrivateAPI #LivsyCode
Livsy Code → Learn Swift the smart way
Exploring _UILiquidLensView → Livsy Code
Greetings, traveler! Liquid Glass is exposed through public APIs such as UIGlassEffect, but not every component Apple uses internally has a public equivalent. One interesting example is _UILiquidLensView, a private UIKit view used to create an interactive…
❤2
ArrangementView in SwiftUI: split and overlay layouts for iPhone Duo
ArrangementView provides an innovative solution in SwiftUI for dynamically arranging two related views based on the available screen space and the fold of the iPhone Duo. With options for both split and overlay layouts, developers can create a seamless user experience that adapts to device configurations. This tool simplifies complex UI design by automating the layout process for different orientations.
#SwiftUI #iOSDev #ArrangementView #iPhoneDuo #nilcoalescing
ArrangementView provides an innovative solution in SwiftUI for dynamically arranging two related views based on the available screen space and the fold of the iPhone Duo. With options for both split and overlay layouts, developers can create a seamless user experience that adapts to device configurations. This tool simplifies complex UI design by automating the layout process for different orientations.
#SwiftUI #iOSDev #ArrangementView #iPhoneDuo #nilcoalescing
Nil Coalescing
ArrangementView in SwiftUI: split and overlay layouts for iPhone Duo
ArrangementView lets SwiftUI place two related views side by side, stacked or layered depending on the available space and the fold on iPhone Duo, with split and overlay styles to configure the result.
How to use layoutMarginsGuide in UIKit
by Sarun Wongpatcharapakorn
Pin content to UIView.layoutMarginsGuide rather than fixed constants so edges align with navigation titles and bar items across devices and rotations. The guide stays inside the safe area; use preservesSuperviewLayoutMargins to inherit controller margins or view.layoutMargins/viewRespectsSystemMinimumLayoutMargins to override.
💡 layoutMargins reports the full inset (safe area plus margin), so view.layoutMargins.left can include the Dynamic Island safe area.
#UIKit #Swift
by Sarun Wongpatcharapakorn
Pin content to UIView.layoutMarginsGuide rather than fixed constants so edges align with navigation titles and bar items across devices and rotations. The guide stays inside the safe area; use preservesSuperviewLayoutMargins to inherit controller margins or view.layoutMargins/viewRespectsSystemMinimumLayoutMargins to override.
💡 layoutMargins reports the full inset (safe area plus margin), so view.layoutMargins.left can include the Dynamic Island safe area.
#UIKit #Swift
Fail the build when a translation goes stale
by Jeroen Leenarts - AppForce1
Use a Run Script build phase and a small Swift macOS tool to scan .xcstrings and .strings, failing Xcode builds when translations are missing, stale, or have mismatched format placeholders. It also checks .localized() call sites and can export English for SwiftGen.
💡 Run the checker as an always-out-of-date Run Script named "Check Translations" so it runs locally and on Xcode Cloud and emits Xcode-error-formatted lines.
#BuildTools #Debugging
by Jeroen Leenarts - AppForce1
Use a Run Script build phase and a small Swift macOS tool to scan .xcstrings and .strings, failing Xcode builds when translations are missing, stale, or have mismatched format placeholders. It also checks .localized() call sites and can export English for SwiftGen.
💡 Run the checker as an always-out-of-date Run Script named "Check Translations" so it runs locally and on Xcode Cloud and emits Xcode-error-formatted lines.
#BuildTools #Debugging
appforce1.net
AppForce1: Fail the build when a translation goes stale
A missing translation, a stale string-catalog entry, or a dropped placeholder should fail the build before it ships.
How to follow App Store review guidelines
by Khoa Pham
Clear, practical guidance on which App Store Review rules cause bans, removals, or rejections and the concrete fixes to avoid them. Includes a submission checklist: test accounts, honest metadata, In-App Purchase for digital unlocks, content-moderation requirements, privacy disclosures, and warnings about hidden/server-enabled features.
💡 Activating features server-side after approval may be treated as 'hidden' and can lead to account termination, not just app rejections.
#AppleNews #Security
by Khoa Pham
Clear, practical guidance on which App Store Review rules cause bans, removals, or rejections and the concrete fixes to avoid them. Includes a submission checklist: test accounts, honest metadata, In-App Purchase for digital unlocks, content-moderation requirements, privacy disclosures, and warnings about hidden/server-enabled features.
💡 Activating features server-side after approval may be treated as 'hidden' and can lead to account termination, not just app rejections.
#AppleNews #Security
DeskMat v1.3.4 Improves Performance of Live Wallpaper Mode
by Matthias Gansrigler
DeskMat 1.3.4 makes Live Wallpaper mode more efficient, improving performance during live-desktop rendering. It also fixes sleep/wake behavior and a Focus integration bug on macOS 26 “Sequoia” and macOS 27 “Golden Gate”.
💡 DeskMat supports automation via Shortcuts and AppleScript and can auto-enable covers based on Focus modes or foreground apps.
#macOS #Widgets
by Matthias Gansrigler
DeskMat 1.3.4 makes Live Wallpaper mode more efficient, improving performance during live-desktop rendering. It also fixes sleep/wake behavior and a Focus integration bug on macOS 26 “Sequoia” and macOS 27 “Golden Gate”.
💡 DeskMat supports automation via Shortcuts and AppleScript and can auto-enable covers based on Focus modes or foreground apps.
#macOS #Widgets