Weekend good reads for Apple developers #2023/27

While we wait for next beta of visionOS SDK there are still a lot of interesting topics to get familiar with.

And that a wrap for this week. Come back next Friday for another big pack of interesting reads.

WWDC23 highlights

WWDC23 week is over, all announcements are already made, Apple and developers are going through highlights of the conference.

Apple lists important sessions on spatial computing, developer tools, Swift, UI frameworks, design, graphics and games, ML, privacy and security, and other topics.

Apple also asks developers to take part in survey that could shape the future of conference.

macOS 14 Sonoma

Developers highlight FaceTime reactions, presenter mode for screen sharing and various of other features.

Widgets availability for macOS should help bringing more apps to Mac from iPhone and iPad.

Another area of interest is support for web apps.

tvOS 17

Apple TV is to support VPN apps with tvOS 17. This will put tvOS on par with other Apple platforms.

Also, tvOS will improve sound for dialogs to make voice more audible. This feature requires second generation HomePod (original HomePod and HomePod mini are not supported) and Apple TV 4K.

iOS/iPadOS 17

DockKit SDK and Standby mode bring interesting capabilities for apps and also could hint on more standalone home devices.

Autocorrect in standard keyboard is expected to become much better with iOS 17.

iCloud

iCloud Drive now could be switched off and third-party apps will still be able to sync via iCloud.

Vision Pro

Analysts expect that more affordable version of Vision Pro will be released in 2025.

M2 Ultra

Benchmarks for M2 Ultra show significant improvements over M1 Ultra chips. New chip is 20% faster than previous generation.

Apple Developer:

References:

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

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. :)

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

Weekend good reads for Apple developers, issue #53

It is officially winter and here is new great pack of good articles for all Apple developers.

Have a great first winter weekend and see you soon!

Developers now can transfer apps that use iCloud

Apple prevented transfer of the applications between developers if the application used iCloud containers or key-value storage. Well, not anymore.

Now Apple allows this kind of application transfer. This provides an opportunities to indie developers to sell their apps to other developers even if they were using iCloud.

Apple Developer: App Store Connect Update

App Store Connect Help: App transfer overview

Weekend good reads for Apple developers, issue #27

Here are some good reads for upcoming weekend.

And that's it for today. Have a nice weekend!