Using Fruit Basket demo

I've downloaded the Fruit Basket demo project to get a better understanding of how to implement a file provider for macOS.

From running the program and looking through some of the code, I believe I have a vague notion about what it does, only I'm still unsure about a lot of things.

Where can someone find more information about how Fruit Basket is supposed to work and how it can be used?

I'm still unsure about a lot of things.

The best way to use this forum is to ask questions, one by one. If you do so, don't forget to post the relevant piece of code and explain clearly what doesn't work as expected or what you don't understand.

Note: could you post the link to the WWDC21 session ?

Here is a general overview of the 6 targets in the FruitBasket project.

If you have specific questions, feel free to open more targeted questions on this forum.

  • FruitBasket - Application which provides a GUI interface to manage the registered FileProvider domains in the system. Multiple domains can be registered for the same "Backing Item", which gives the illusion of syncing files between multiple computers. The application also listens on a port, to serve the FruitBasket HTTP server.

  • Provider - The FileProvider extension point.

  • Extension - The code which implements the FileProvider extension point. It mostly transforms the calls to NSFileProviderReplicatedExtension into HTTP calls to the backend, as well as implements various other pieces of the FileProvider API surface.

  • Server - The HTTP server code. This server is the backend to FruitBasket. It stores file contents and their metadata in a sqlite database, and contains the sync business logic.

  • Common - Shared code.

  • Action - The FileProviderUI extension point. It implements a conflict resolution interface, in case you create a conflict by modifying the same file in multiple domains, while they are each offline.

Using Fruit Basket demo
 
 
Q