I want to develop an app that can download a load of data at start up, and then display that data throughout the app, dependent on where the user is.
The data will contain info such as clients, invoices, stock, etc., but I want to download the data all in one go, to save having to keep downloading/ transferring data. This also gives the user the ability to work offline.
My question is: what is the best way to store this data on iOS? I have looked into CoreData, but wanted to know if that is the correct path before I commit too much time to learning all about it.
Core Data is almost always the way to go. It has a learning curve but after you climb it, Core Data makes everything easier.
Core Data is not just a persistence API, it is an API for creating the entire model layer of a Model-View-Controller design app (which the Apple API employs.) So, once you learn Core Data, you have a very quick and easy way to generate the logical “guts” of the application. Learning Core Data will provide a significant boost to the speed of development and the reliability and maintainability of your apps.
However, real-world constraints of available skill sets and times can force you to choose other options. See this previous answer for a breakdown of when to use Core Data versus other methods.