I'm new to iOS development and am trying to formulate a strategy/design for the data layer of my application.
I have objects (basically lists, so they're objects that contain N sub-objects) that can be shared among users. The users need to be able to make changes to these lists and the changes should be synced to a cloud data store. They will be stored/represented as JSON documents (think MongoDB). One list may have at most a hundred-ish items on it, but will more often have on the order of a few tens of items.
The app needs to work offline, and when a connection is restored, sync the changes that have accumulated since the connection was interrupted.
For my backend, I desire to use something like FireBase or AppWrite to enable easy future cross-platform compatibility (in other words, I don't want to use CloudKit because I think it will not be as straightforward to leverage on other platforms), and to give me a base for user registration/account management among other things. One user may at most have a handful (less than a dozen) lists, most of the time.
So, all that said...I'm trying to figure out the right "local" storage strategy for these objects in iOS/Swift.
It's unlikely that the total data would ever amount to more than a few hundred KB, so maybe files (one JSON file per list)? In addition to the structured data, there will be metadata/ancillary data that needs to be cached/stored with the lists (like images pulled from the web based on a URL on a list item).
Core Data? I'm not going to be dealing with huge datasets, nor is there any relationship between the lists -- just between the lists and users, and of course the items in a list. So I'm not sure if Core Data is worth it.
I'm just completely new to iOS development and am struggling to determine the right approach here, so any advice would be appreciated.
Selecting any option will automatically load the page