Latest
19 illustrated stories · updated 08:24 PM
Get your subscriptions ready for iOS 27
Discover how you can expand the reach of your subscriptions with new features in iOS 27. You can start preparing today by making sure your apps use StoreKit 2 to handle your Apple In-App Purchases. Request access to Bun…
Authentication and Authorization: A Comprehensive Guide
OAuth 2.0, JWT, PKCE, OIDC, SAML, SSO: the auth ecosystem is big enough to misremember. This compendium builds a clear mental model for each concept and explains how they fit together.
Get ready for iPhone Duo
Start getting ready for iPhone Duo today. Watch new videos, sign up for Group Labs, and take part in Q&As on the Apple Developer Forums. Explore now
App Store submissions now open for the latest OS releases
iOS 27, iPadOS 27, macOS 27, tvOS 27, visionOS 27, and watchOS 27 will soon be available to customers worldwide, which means you can now submit apps and games that take advantage of the latest Apple technologies and inno…
In-House Over-the-Air Localizations in a Modular iOS App
How we built a minimalistic, elegant and effective remote localization system for the Just Eat Takeaway consumer app.
Everything about my smart home and homelab setup
I've written a couple of posts in the past about how my home network and home automation setup is laid out, but it changed so much over time that it's now time for an updated post! This time I'll put everything together …
Revisiting the JET iOS Modular Architecture in 2026
Revisiting the Modular iOS Architecture @ Just Eat from 2019 addressing previous limitations and refining the vocabulary.
Luca: A Decentralized Tool and Skills Manager for the AI-Augmented Developer Workflow
Introducing Luca. Luca manages tools, agentic skills and tasks on macOS and Linux. https://luca.tools/
Universal Links At Scale: The Challenges Nobody Talks About
A deep dive into the practical challenges of implementing, testing, and maintaining Universal Links at scale
How to Implement a Decentralised CLI Tool Manager
A design to implement a simple, generic and decentralised manager for CLI tools from the perspective of a Swift dev.
Swift 6 suitable notification observers in iOS
The author discusses challenges managing side projects, specifically updating SignalPath to Swift 6. They encountered errors related to multiple notification observations but resolved them by shifting to publishers, avoi…
AnyClass protocol and Objective-C methods
AnyClass is a protocol all classes conform to and it comes with a feature I was not aware of. But first, how to I ended up with using AnyClass. While working on code using CoreData, I needed a way to enumerate all the Co…
AnyView is everywhere in Xcode 16
Xcode 16 introduces a new execution engine for Previews, enhancing project configuration support and improving performance by up to 30%. However, it wraps SwiftUI views in AnyView for debug builds, which can hinder optim…
Sorting arrays in Swift: multi-criteria
Swift’s foundation library provides a sorted(by:) function for sorting arrays. The areInIncreasingOrder closure needs to return true if the closure’s arguments are increasing, false otherwise. How to use the closure for …
How to keep Date’s microseconds precision in Swift
DateFormatter is used for converting string representation of date and time to a Date type and visa-versa. Something to be aware of is that the conversion loses microseconds precision. This is extremely important if we u…
Wrapping async-await with a completion handler in Swift
It is not often when we need to wrap an async function with a completion handler. Typically, the reverse is what happens. This need can happen in codebases where the public interface can’t change just right now, but inte…
How the relative size modifier interacts with stack views
And what it can teach us about SwiftUI’s stack layout algorithm I have one more thing to say on the relative sizing view modifier from my previous post, Working with percentages in SwiftUI layout. I’m assuming you’ve rea…
Working with percentages in SwiftUI layout
SwiftUI’s layout primitives generally don’t provide relative sizing options, e.g. “make this view 50 % of the width of its container”. Let’s build our own! Use case: chat bubbles Consider this chat conversation view as a…