1

I'm making an app. Part of the app is to choose from 5 preset images.

These will be available at install and so need to be bundled with the app.

However, there is also potential to "add" more images through in app purchases.

I'm looking for the "best" way to store these images on the device with the potential to add/unlock more images.

My thoughts are that "CoreData" is too heavy for this. I could do some sort of plist thing to reference the initial five images. But then how do I add more through IAP?

With IAP, do I download the additional images upon purchase? Or should they also be bundled into the app at install and then unlocked when purchased?

Never done IAP stuff before and my previous apps all used Core-Data as they were very data heavy.

Fogmeister
  • 76,236
  • 42
  • 207
  • 306
  • 1
    Just a suggestion .. If you want user to pay before accessing the new images, then it is probably a bad idea storing them in app bundle. It is very easy to extract bundle contents from the IPA file from app store. Unless you store them in an encrypted form. – Amar May 21 '13 at 09:11
  • 2
    @Amar I wouldn't worry about that for two reasons: 1. very few people JB (~ 10-15%) and even fewer pirate apps/IAPs, and 2. if people wanted to, they can still hack around any proposed solution. – maroux May 21 '13 at 20:52

1 Answers1

2

There are two things to consider -

  1. Do you want to add more images after you've shipped?
  2. Are the images small enough that they can be download quickly on demand?

If the answer to either is yes, I would recommend going the hosted content route. Apple even allows you to host content on their servers.

Otherwise, just bundle everything in your app and unlock as required.

Small note on security: I would not worry about piracy at all since there is no way you can stop people from pirating content/apps. Besides, the number of people who JB is quite small (23m / 90% * 500m ~ 5%) and the number of people who pirate is even smaller.

Community
  • 1
  • 1
maroux
  • 3,764
  • 3
  • 23
  • 32