How to defend a shipping app against iOS 26 and 27 beta regressions

Your HealthKit completion handler reports success = YES, but no permission was ever granted. UserDefaults.standard.integer(forKey:) crashes inside App.init(). A system extension that worked all last year now fails with errno 13 for half your customers. These are not edge cases — they are real regressions that shipped in iOS 26.5 and iOS 27 beta 1,…
Sandbox model for loadFileURL allowingReadAccessTo — renderer process can only read files within the specified directory tree

How to load local HTML files in WKWebView on iOS and macOS

Since iOS 13, loading local HTML via WKWebView requires the purpose-built loadFileURL(_:allowingReadAccessTo:) API. This post covers the correct approach, how to handle inter-page navigation including the /nextPage sandbox trap, and when to use WKURLSchemeHandler for same-origin-sensitive apps.

How to Define Your Own Uniform Type Identifier (UTI)

Uniform Type Identifiers (UTIs) are a standardized way for macOS and iOS applications to identify data types. UTIs are used to identify a wide range of data types, from images and audio files to text documents. UTIs are hierarchical, allowing applications to recognize and work with related data types. Developers can define their own UTIs in their applications to provide better integration with other applications in the ecosystem.

How to Transfer Applications for App Store Small Business Program Members

The App Store Small Business Program offers lowered commission cost with one big caveat: no app transfer. But apps graduating from a “hobby” into a “small business” would definitely involve transferring ownership. Read how to transfer apps without engaging in the app transfer process and losing out on the program’s benefits.

How to Maintain Loading State in Cells

When a table view asks for a cell, often images in the cell isn’t yet available and needs to be fetched from a server – thus the cell gets a placeholder image. But static placeholders doesn’t look as good as animated ones. Unfortunately cell views gets scrolled off and re-used which makes managing animations challenging.

Clean Architecture with VIPER Sample Project for UIKit

Architecting applications to meet today’s challenges and be ready for tomorrow’s problem is not an easy feat. The principles of clean architecture may be sound, but separating the signal from the noise is tough. Here is a sample VIPER project for iOS that you can tinker to learn about the principles of clean architecture.