Weekly note ✏️
Who would’ve imagined just a few years ago that we'd see alternative app stores on iOS in the EU and external payment links in the US? The tech world is shifting fast—and even the biggest players are being forced to move.
The recent U.S. court decision affecting App Store Guidelines Section 3—specifically, “Other Purchase Methods”—is a major turning point. This change may finally let developers avoid Apple’s tax cut, a long-standing frustration in the dev community.
But let’s be clear: this wasn’t handed out freely. It was the result of a high-profile legal battle—Epic Games vs. Apple—where major corporations were fighting over revenue control. And now that the door is open, Amazon’s Kindle app has reportedly wasted no time walking through it.
Amazon is no small fish. So the real question is:
Will Apple apply the same rules fairly to smaller and mid-sized developers?
We’ll have to wait and see. But one thing is clear: the once impenetrable walls of Apple’s ecosystem are starting to show cracks—and that could mean more freedom, flexibility, and fairness for indie devs down the line.
Connect with the "Those Who Swift" team - Justas Markus & Anton Gubarenko 👋
Sponsor 🤝
Product for Engineers: Helping engineers flex their product muscles
Product for Engineers is PostHog’s newsletter dedicated to helping engineers get better at product. It includes what they’ve learned from building PostHog, research into top startups, and curated advice on building great products.
Swift Around the Web 🌐
Demystifying Picture in Picture on iOS
Artem Novichkov provides a concise guide on implementing Picture in Picture (PiP) mode in iOS applications. He demonstrates how to enable PiP for both standard video playback using AVPlayer and custom video sources, such as live camera feeds via AVFoundation.
Read more.📍
What's New in Swift 6.1
Paul Hudson outlines the key enhancements in Swift 6.1, highlighting improved syntax flexibility and compiler diagnostics. Notably, SE-0439 introduces support for trailing commas in various constructs like arrays, dictionaries, tuples, function calls, and generic parameters, promoting cleaner diffs and easier code maintenance.
Read more.📍
SwiftUI View Model Ownership
Chris Eidhof explores the nuances of managing view model ownership within SwiftUI views. He emphasizes that when a view owns its view model, using @State
is appropriate, but developers must be cautious about initializing state properties outside the body
, as it can lead to unexpected behavior.
Read more.📍
Coding 👨💻
Adding Dependencies to Binary Swift Packages
In his article, Daniel Saidi addresses a limitation in Swift Package Manager (SPM): binary targets cannot directly declare dependencies. To work around this, he suggests adding dependent packages as separate targets and including them in the product's target list.
Read more.📍
Migrating to the UIKit scene-based life cycle
This technical note guides developers through transitioning their iOS apps from the traditional UIApplicationDelegate
model to the modern scene-based life cycle introduced in iOS 13. The document provides practical steps and code examples to facilitate a smooth migration.
Read more.📍
Apple News 🍏
Updated guidelines for US
A controversial yet highly anticipated change to the US App Store Review Guidelines now allows apps to link to alternative purchase methods
Read more.📍
Hello Developer: May Edition
Apple unveils the Pathways: pack of videos, articles and docs for exact platforms to learn about. Also Accessibility Day initiative and behind the scenes of ‘Wreck‘.
Read more.📍
Design 🎨
SwiftUI: How to Use Custom Fonts, Colours, and Images in a Swift Package
Jeremy Gale offers a practical guide to integrating custom fonts, colors, and images within a Swift Package for SwiftUI projects. He outlines methods to ensure these assets function correctly in both runtime and Xcode Previews, including strategies for registering fonts and managing asset bundles.
Read more.📍
Other cool stuff 🧰
Ten Years Older: Voice Takes Over
Article discusses how advancements in voice recognition and AI have transformed user interactions, making voice a primary mode of communication with devices. And of course offers insights into the implications of this shift for developers and the future of human-computer interaction.
Read more.📍
Why Some Mac Apps Launch Slowly: A Follow-Up
Jeff Johnson revisits his 2024 analysis of slow Mac app launches, attributing delays to Gatekeeper's malware scanning during app startup. He discusses how macOS 15.4 introduced a change where Gatekeeper scans apps only when they are first launched, rather than during installation, leading to noticeable delays for users launching apps for the first time.
Read more.📍
Complexity Part 4: Abstractions
Dmitrii Ivanov continues his journey to Complexity Realm: now he delves into the dual nature of abstraction in software development, highlighting its power to simplify complex systems and its potential to introduce unintended complexity when misapplied. He emphasizes the importance of context in designing effective abstractions and warns against pitfalls like premature generalization and leaky abstractions.
Read more.📍
AI 🤖
Gemini 2.5 Pro Update
Google has released an early preview of Gemini 2.5 Pro, featuring significant improvements in coding capabilities, particularly for building interactive web applications. Developers can access Gemini 2.5 Pro via the Gemini API in Google AI Studio, Vertex AI, and the Gemini app.
Read more.📍
Tutorials 📒
Synthesizing Text into Speech in SwiftUI
Authors demonstrate how to convert text into spoken audio within a SwiftUI application using the AVFoundation framework. The tutorial guides developers through integrating AVSpeechSynthesizer
to enable text-to-speech functionality, enhancing accessibility and user interaction.
Read more.📍
Implementing Live Activities in a SwiftUI App
Matteo Altobello provides a comprehensive tutorial on integrating Live Activities into SwiftUI applications using the ActivityKit framework. Through a 3D printing simulation, he demonstrates how to display real-time updates on the Lock Screen and Dynamic Island, including progress, elapsed time, and status messages.
Read more.📍
Video 🎥
Build Your First Apple Multiplatform App
Time to learn how to make an app which is compatible through all iOS ecosystem - iOS, macOS, iPadOS, visionOS
Watch here.📍
Yet, another thing…📎
Clippy is Back!
Finally we can bring back the Clippy with connected LLLm and chat with an old friend. Or foe.. It depends.
Try here.📍
Thanks for reading Those Who Swift! Subscribe for free to receive new posts.