Weekend good reads for Apple developers #2023/19

Sun is back here in Bay Area, weekend is probably going to be quite hot. And we've a lot to read – even couple of not-so-technical articles. Let's dive in.

Hope you have time to read these great articles and we'll meet again next Friday!

Another CloudKit support library

Just recently we announced Canopy, and now there is another library to sync data over CloudKit.

CloudSyncSession is a Swift library that builds on top of the CloudKit framework to make it easier to write sync-enabled, offline-capable apps.

CloudKitSession

In case of CloudSyncSession data is not persisted locally by the library. Overall, design principles are described in documentation:

  1. Persistence-free. Data is not persisted to disk.
  2. Testable. Code is structured in a way to maximize how much behavior can be tested.
  3. Modular. To the extent that it makes sense, different behaviors are handled separately by different components.
  4. Event-based. State is predictable, as it is updated based on the series of events that have previously occurred.
  5. Resilient. Recoverable errors are gracefully handled using retries and backoffs. Non-recoverable errors halt further execution until the app signals that work should be resumed.
  6. Inspectable. The current state of the session can be evaluated for troubleshooting and diagnostics.
  7. Focused. This project aims to solve a particular use case and do it well.

GitHub: CloudSyncSession

Reference: CloudSyncSession

Tact CloudKit code is released as open-source library Canopy

Tact developers released library to work with CloudKit as open source – Canopy.

Canopy helps you write better, more testable CloudKit apps. It isolates the CloudKit dependency so you can write fast and reliable tests for your CloudKit-related features, and implements standard CloudKit-related behaviors.

GitHub: Canopy (documentation)

Reference: CloudKit code from Tact is now available as Canopy open-source library

iCloud and other services to stop working on older OS releases

Apple plans to shut down iCloud and other Apple services for older OS releases according to @StellaFudge.

https://twitter.com/StellaFudge/status/1643410897635799042
https://twitter.com/StellaFudge/status/1643410897635799042

iOS 11 – 11.2.6, macOS 10.13 – 10.13.3, watchOS 4 – 4.2.3 and tvOS 11 – 11.2.6 are expected to loose access to iCloud services later this year. No formal confirmation from Apple is yet issued though.

References:

Weekend good reads for Apple developers #2023/4

Weekend is coming with several great reads this time. Let's dive in!

This is a lot for a weekend, so choose wisely. :)

Apple releases iOS and iPadOS 16.3, watchOS 9.3 and macOS Ventura 13.2

Apple publishes updates to some of its operating systems. iOS, iPadOS, watchOS and macOS 13.2 get updates. tvOS and HomePod software are not yet updated. Also, no new Xcode is released.

This update also brings iCloud Advanced Data Protection to all users worldwide.

iOS 16.3

This update includes the following enhancements and bug fixes:

  • New Unity wallpaper honors Black history and culture in celebration of Black History Month
  • Security Keys for Apple ID allow users to strengthen the security of their account by requiring a physical security key as part of the two factor authentication sign in process on new devices
  • Support for HomePod (2nd generation)
  • Emergency SOS calls now require holding the side button with the up or down volume button and then releasing in order to prevent inadvertent emergency calls
  • Fixes an issue in Freeform where some drawing strokes created with Apple Pencil or your finger may not appear on shared boards
  • Addresses an issue where the wallpaper may appear black on the Lock Screen
  • Fixes an issue where horizontal lines may temporarily appear while waking up iPhone 14 Pro Max
  • Fixes an issue where the Home Lock Screen widget does not accurately display Home app status
  • Addresses an issue where Siri may not respond properly to music requests
  • Resolves issues where Siri requests in CarPlay may not be understood correctly

Some features may not be available for all regions or on all Apple devices. For information on the security content of Apple software updates, please visit this website: https://support.apple.com/kb/HT201222

iPadOS 16.3

This update includes the following enhancements and bug fixes:

  • Security Keys for Apple ID allow users to strengthen the security of their account by requiring a physical security key as part of the two factor authentication sign in process on new devices
  • Support for HomePod (2nd generation)
  • Fixes an issue in Freeform where some drawing strokes created with Apple Pencil or your finger may not appear on shared boards
  • Addresses an issue where Siri may not respond properly to music requests

Some features may not be available for all regions or on all Apple devices. For information on the security content of Apple software updates, please visit this website: https://support.apple.com/kb/HT201222

watchOS 9.3

watchOS 9.3 includes new features, improvements and bug fixes, including new Unity Mosaic watch face to honor Black history and culture in celebration of Black History Month.

For information on the security content of Apple software updates, please visit this website: https://support.apple.com/kb/HT201222

macOS Ventura 13.2

This update introduces Security Keys for Apple ID, and includes other enhancements and bug fixes for your Mac.

  • Security Keys for Apple ID allow users to strengthen the security of their account by requiring a physical security key to sign in
  • Fixes an issue in Freeform where some drawing strokes created with Apple Pencil or your finger may not appear on shared boards
  • Fixes an issue where VoiceOver may stop offering audio feedback while you are typing

Some features may not be available for all regions, or on all Apple devices. For detailed information about the security content of this update, please visit: https://support.apple.com/kb/HT201222

Updates to previous platforms

Apple also updates OS releases for devices which could be be updated to latest software. These updates were releases with security fixes:

  • iOS 12.5.7
  • iOS 15.7.3
  • iPadOS 15.7.3
  • macOS Big Sur 11.7.3
  • macOS Monterey 12.6.3

References:

Several app developers share their issues with iCloud synchronization

iCloud was introduced many years ago, however, developers still see issues with syncing data in their apps using Core Data.

NetNewsWire, Overcast developers (as well as others) share their thoughts in couple of blog posts.

Most developers report long syncing time and overall unreliability of the service. Moreover, according to internal app statistics, it sees that about 10% of users do not have iCloud meaning that they did not entered their Apple ID in system settings.

Overall recommendation to developers who plan to use iCloud is to have an alternative by either having their own sync solutions (self-hosted or using some public cloud offering), or rely on third-party as data storage (NetNewsWire allows to use multiple RSS aggregators in addition to iCloud).

References:

Spend Stack is now open source

Jordan Morgan has negotiated open-sourcing of his Spend Stack app. Source code of this app might be used for multiple features – CloudKit integration, animations and transitions.

There are several restrictions on reusing Spend Stack source code and naming, check the blog post for possible usages.

Code is mostly Objective-C, however, could be still relevant.

GitHub: Spend-Stack-Public

Reference: Spend Stack is Now Open Source

Apple releases iOS 16.2 and other platforms

Following recent RC Apple now releases iOS/iPadOS 16.2, macOS 13.1 Ventura, watchOS 9.2 and tvOS 16.2. Xcode 14.2 is also released.

HomePodOS received corresponding update (which is required for Home updates and Matter support).

Apple also releases security bug fixes for previous OS releases - iOS 15 and macOS 11 Big Sur and macOS 12 Monterey.

This update brings several important updates:

Apple Newsroom: Apple launches Freeform: a powerful new app designed for creative collaboration

References: