Embracing new API's whilst retaining backwards compatibility

This week, I delved into whether to embrace or avoid new APIs in Apple's upcoming operating systems. I encountered a few challenges while working on my Mac iOS app, which I aimed to have a modern look. Inspired by Apple developer videos, I wanted to incorporate features like a navigation split view and fancy backgrounds, similar to the design of CleanMyMac.

However, I hit a snag when they were in a part of the app's window. Even AI couldn't solve it. Finally, I found a solution in a video on the Apple developer portal, which involved using modifiers only available in macOS 15. Faced with a choice, I implemented conditional code to keep compatibility with macOS 14 while enabling new features for macOS 15 and beyond.

Using conditional code, such as #if available(macOS 15, *), I can target specific OS versions and ensure my app remains functional across different versions without cutting off users. This technique can be applied to various scenarios, not just API availability, making it a versatile tool.

Become a Patreon member and help this Podcast survive
https://www.patreon.com/compileswift

Please leave a review and show your support
https://lovethepodcast.com/compileswift

Follow me on Mastodon
https://iosdev.space/@Compileswift
Thanks to our monthly supporters
  • Marko Wiese
  • Adam Wulf
  • bitSpectre
  • Arclite
★ Support this podcast on Patreon ★
Embracing new API's whilst retaining backwards compatibility
Broadcast by