Snapp Mobile iOS Newsletter

Issue 11 • October 11, 2024

By some chance the eleventh issue of the newsletter comes on the eleventh of October. Don’t know if it means anything, but one thing is certain - there’s another set of articles for you to read.

Have fun!

Swift

Profiling apps using Instruments

Apple has certainly done a great job with docc. Not only is the spec allowing you to build rich documentation pages, but you can build interactive demos with it too. Such demo is now available on debugging with Instruments - a tool that is sometimes overlooked by the professional developers, and is not that well known to the newcomers. We are pretty sure that everyone will discover something new to take from this one, so just get yours.

Exhaustive, Flexible, Multi-Typed Error Handling in Swift

Among the many new features Swift 6 offers us, is an improvement on the error handling system. Now a function can declare in advance what types of errors it will throw. The compiler will enforce that the function is not allowed to throw any other Error types, meaning you can exhaustively handle all the error types without worrying if you missed any. Dive in to discover more.

CI

Replacing Fastlane with Shell scripts

Here’s Daniel Saidi with the aim to replace Fastlane with pure shell scripts in attempt to ditch the ruby dependency and get faster builds. As an outcome of that effort he ended up putting his scripts for everyone to use on GitHub - check his SwiftPackageScripts repository.

UI/UX

Zoom Transitions

One of the most sought-after omissions in SwiftUI was the ability to control the navigation-driven animations when going from one level of the navigation to another. With iOS 18 Apple have started to fill that gap with the addition of the NavigationTransition protocol. It now hosts a pre-baked zoom navigation transition that you can use along with the default slide effect, or instead of it. This article also looks at the dealing with UIKit side of things with adopting the same transition, sort of a rarity these days.

SwiftUI: Custom View Transition(Navigation) With Matched Geometry

In relation to the article above - similar animations were still possible before iOS 18 with the help of the matchedGeometryEffect, but it took a lot of work, and it was not relying on the iOS navigation system. This article is a good refresher on the powers matchedGeometryEffect has to drive user interactions within a single screen. But it also shows the limitations of it and highlights why the NavigationTransition is more like the right tool for the job.

How to detect when the size or position of a view changes

Listening for events to occur is a common programming technique, but SwiftUI lacked the ability to track when a view’s frame, size, or safe area insets change. This prevented us from taking any action as a result. Luckily, starting from iOS 18, it is not a problem anymore, as Paul Hudson explains.

Giving depth to your App Icons

Being an app dev goes beyond coding. Your app icon is something that users are paying attention to way more than one may expect. We know of many cases where apps are being removed because of users not liking the icon or even worse - contenders’ apps being chosen for the same reason. There’s no rulebook of what makes an icon appealing, but there are certainly trends that may give us some answers. This article is somewhat of a trip in time with some recommendations you don’t want to miss.

Other

Announcing the Swift Student Challenge 2025

Students may now submit their apps in Apple’s Swift Student Challenge for 2025.

In their own words:

All Challenge winners will receive one year of membership in the Apple Developer Program, a special gift from Apple, and more.

To help you get ready, we’re launching new coding resources, including Swift Coding Clubs designed for students to develop skills for a future career, build community, and get ready for the Challenge.