The Garden

The recent legal actions against Apple have started to crack the walled garden. Other companies, however, are targets of similar actions, but fewer issues due to a difference in business strategy. Rather than creating lock in on hardware, there is a pseudo lock in within the ecosystem. Microsoft and Google offer their apps/services on all platforms, whereas Apple has limited the majority of their apps/services to their hardware. This kind of vendor lock in makes it difficult to change platforms, which is Apple’s goal....

macOS Stability

The recent macOS 14.4 kerfuffle has worryingly brought back to light the Core Rot theory where users of macOS highlight problems in macOS that should not exist and/or experience degrading issues that lead to a death by 1000 cuts. In this case, it would appear from the outside that QA missed common use cases or was not performed at all as standard uses of macOS broke. Some of these breakages seem to be related to the security patches which are not made available for public testing in the betas (for valid security reasons)....

New ASWebAuthenticationSession Features

New in iOS 17.4 is the ability to set headers on an instance of ASWebAuthenticationSession. Like NSURLSession, simply add to the new additionalHeaderFields property. However, this is not the only change. There is now a new initializer, initWithURL:callback:completionHandler:, which leverages the new ASWebAuthenticationSessionCallback class. This allows developers to more strictly control callback behavior by differentiating custom schemes and HTTP URL schemes....

Monitoring Transaction Performance

Apple provides the MetricKit framework for developers to periodically get diagnostic data about how the app is performing and how it is using resources. One of those metrics is MXNetworkTransferMetric, but it only provides an overview of how many bytes the app has transferred. While Apple provides an API for custom metrics, the implementation limitations are enough such that creating custom metrics for transactions wouldn’t work. Rather, you’d need to create a custom collector of sorts leveraging the data from NSURLSessionTaskTransactionMetrics....

Flexible Computing

For many individuals, computers are tools used to accomplish tasks. This could be development work, art generation, media consumption, or simply a portal to the web. Apple’s approach more recently with the underlying unification of its platforms is to enable these tasks and workflows, but in ways Apple wants you to do so. Take, for example, iPadOS. It has a limited multi-tasking and windowing system as well as a limited file system....