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!

Weekend good reads for Apple developers, issue #26

Some interesting articles to spend your weekend on.

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

Apple reports that iCloud bug causing sync issues is fixed

Apple seems to be responding to developers' reports regarding issues with iCloud.

https://twitter.com/bhansmeyer/status/1486396104002392069?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1486396104002392069%7Ctwgr%5E%7Ctwcon%5Es1_&ref_url=file%3A%2F%2F%2FApplications%2FNetNewsWire.app%2FContents%2FResources%2F

However, it is still important to monitor system status for current outstanding iCloud issues.

Apple Support: System Status

Reference: