Giter VIP home page Giter VIP logo

Comments (1)

mentrena avatar mentrena commented on August 16, 2024

Hey @teawithfruit, generally you want to create one synchronizer per model, so if you're using Core Data you would have one synchronizer for your managed object context, and if you're using Realm you would have one synchronizer for your entire realm.

I would recommend creating your synchronizer once (I use the AppDelegate in the example), then pass it to each controller that needs it using dependency injection (here), so they can trigger synchronisation.

In another app of my own I use a protocol like this

protocol SynchronizationInteractor: AnyObject {
    var isSynchronizationEnabled: Bool { get }
    var isSynchronizing: Bool { get }
    var error: Error? { get }
    func synchronize(completion: ((Error?) -> ())?)
    func cancel()
}

And then implement it in a class that owns the synchronizer but doesn't expose it. So the rest of the app is fully agnostic to the technology that's being used to synchronize data.

In the case of the example app it uses VIPER and sets up all dependencies in the App Delegate, but I could give more specific advice depending on how you're architecting your app.

from synckit.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.