Quick question for all you Android experts.
We're currently debating whether to embed a basic set of data files (PLC and possibly also CC-CEDICT (or a subset of it)) directly in our app's .apk or download them from an outside server on first run. Since Android 2.1 and earlier didn't support installing apps on an SD card, downloading from an external server was the obvious choice for those, which is why so many other dictionary apps work that way, but as we're only targeting 2.2 and later it seems like building the files into the app would be quite reasonable, as long as we also tag the app to install to SD by default.
Advantages to built-in files:
Advantages to downloading on first run:
Thoughts, anyone? Neither of these is particularly challenging programming-wise - we already have a perfectly good file downloading system for use with add-ons anyway - so we can look at it primarily as a usability decision (with a little bit of cost-saving thrown in).
We're currently debating whether to embed a basic set of data files (PLC and possibly also CC-CEDICT (or a subset of it)) directly in our app's .apk or download them from an outside server on first run. Since Android 2.1 and earlier didn't support installing apps on an SD card, downloading from an external server was the obvious choice for those, which is why so many other dictionary apps work that way, but as we're only targeting 2.2 and later it seems like building the files into the app would be quite reasonable, as long as we also tag the app to install to SD by default.
Advantages to built-in files:
- Smoother installation - no annoying delay after you launch the app for the first time
- Faster / more reliable download of those required files since they're coming from Google's servers
- Easier support - won't have to worry about people with spotty internet connections not being able to use the app / having to wait 3 hours before it's ready
- Easier for us to push updates to PLC to cover new words (something we're about to start doing more frequently) - no annoying prompt to download, you automatically have the latest version when you update the app
- Modest bandwidth cost savings on our end since we're not pushing all those extra downloads from CloudFront (figure $0.01 per user, so $1000 per 100,000 downloads).
Advantages to downloading on first run:
- Faster installation of minor updates
- Smaller app size if you do want to keep it in internal memory
- More consistent with other Android apps
Thoughts, anyone? Neither of these is particularly challenging programming-wise - we already have a perfectly good file downloading system for use with add-ons anyway - so we can look at it primarily as a usability decision (with a little bit of cost-saving thrown in).