I wish to develop an application that may download a lot of information at launch, after which display that data through the application, determined by in which the user is.
The information will contain info for example clients, bills, stock, etc., but I wish to download the information all-in-one go, in order to save needing to keep installing/ moving data. This provides the user a chance to work offline.
My real question is: what's the easiest method to store this data on iOS? I've investigated CoreData, but desired to determine if that's the right path before I commit a lot of time to learning about it.
Core Information is more often than not what you want. It features a learning curve but once you climb it, Core Data makes everything simpler.
Core Data isn't just a persistence API, it's an API for creating the whole model layer of the Model-View-Controller design application (that the Apple API utilizes.) So, once you understand Core Data, you've got a very fast and simple method to create the logical "guts" from the application. Learning Core Data will give you a substantial boost towards the speed of development and also the reliability and maintainability of the applications.
However, real-world constraints of accessible skills and occasions can pressure you to decide on other available choices. See this previous answer for any introduction to when you should use Core Data versus other techniques.
All is dependent on what you would like related to your computer data and what format it's in.
dump the binary files on the unit (for example for pdf's or jpgs)
create classes applying NSCoding and employ NSKeyedArchiver to keep them (for example for data retrieved from the webservice)
use core data to keep the date. This really is handy for those who have more complicated relations involving the objects and/or wish to search/filter your dataset
Core Data will work for the majority of things and is going to do unless of course you will need to optimize data storage and access, and also, since you need to optimize last this is exactly what I'd do inside your situation.
You will find a number of ways. To begin, I would suggest you download the information using JSON or RSS. When you download it, you may either use Core Data, SQLite or Plists.
I would suggest Core Data over SQLite. So essentially it's Core Data versus. Plists. Now if you wish to run complex queries, use Core Data. If all for you to do is store simple data, in types of arrays/dictionaries (may also be nested), go for Plists.
This link ought to be helpful. Review it.
CoreData is easily the most generally used data store however it all is dependent. For example for those who have plenty of PDF's you want to download then you definitely wouldn't put individuals in CoreData by itself, however, you would save the files towards the customers documents directory and generally add the particulars (title, path etc) in CoreData for fast retrieval.
For additional normal data for example customer particulars, addresses etc you'll be able to use CoreData to simply move from your domain layer (Customer Object, Address Object) to some persistent store.
CoreData may be worth the reading through for me. If you prefer a ramp up i quickly have sample code with a Storage Service within the code with this article. You can utilize it / hack it apart / tell me your ideas onto it! ) Best of luck!