I know what plist does but what is the general purpose of plist?
Is there a standard or Apple recommendation for when use it for reading / writing data with it?
Suppose your app has a big constant that it uses, like the names of all the countries in the world in alphabetical order. That's an array of strings. How will you create that constant?
One way might be to type the whole array in code, a really big array.
It might be easier to configure this as a .plist file and read the file into an array as your app launches.
So, that is one use of a .plist file: it's a text rendering in a canonical format for data that you will need to use during the app's lifetime.
And of course the same thing works in reverse; you could save an array of strings as a .plist file while the app runs, in order to read it again the next time the app runs. (That in fact is how UserDefaults works.)