I am currently working on an Android app which needs to download some files (mostly graphics) from a server on the first launch. The reason for this is to keep the graphics out of the application file (apk) because I don't want to have low end phones download high resolution graphics which would never be used. In face I do not want to pack multiple resolution files into the apk. The size of the download would be 20 - 60mb depending on the screen resolution (higher screen resolution -> bigger files)

Once the app is started the user needs to register and/or login in order to use the app. Once the user is logged in the mentioned files are needed. I came up with multiple solutions to show the user whats going on:

  1. Right after the login the application notifies the user that some files need to be downloaded and maybe recommends to connect to a wifi network. Once this is confirmed a loading animation / progress bar shows how long it will take to finish the download.
  2. BEFORE the user logs in the application notifies the user that files need to be downloaded. Once this is confirmed the files get downloaded while the user registers / logs in which would reduce the waiting time since the user is distracted as long as he enters his username / password. If the download takes too long the loading animation / progress bar from solution 1 is displayed.
  3. I deliver some low resolution 'default' graphics with the app (packed into the application file (apk)) which can be shown while the higher resolution files are downloaded in the background. This would cause the application to not look as good as it should until the graphics are downloaded but it would be usable from the beginning without any waiting time. Maybe a static notification is shown somewhere in the app to inform the user that high res files are being downloaded.

The problem I have is: which of the mentioned solutions would be best? Or am I completely wrong with my ideas and I should think of another approach?

  • [3] Botzer the user as less as possible on first launch. Over 50% of all apps are only opened once and if the user isn't immediately satisfied he will uninstall it. Sadly this is how it works
    – BlueWizard
    Commented Jul 9, 2015 at 20:54

2 Answers 2


In my opinion as a user I would prefer to go for option 3, if the user uses a low end mobile with lower memory then they hesitate to download the app as it takes a lot of memory with high resolution graphics. In case of high resolution mobiles the users can be informed with some progress in graphics (as in the image attached) that shows the app graphics need to be enhanced to obtain higher resolutions. This will make all kind of users comfortable.


Is your application a game? It looks quite heavy if it's not! Anyway, if at any point the user is expected to stop what he or she is doing to wait for a (big) download to finish, that's bad friction. As ugly as it sounds, maybe the best course of action here would be to pack the full res images with the app and give the user, with a low end phone or high, the conscious choice to wait for the app to download and from there have a seamless experience.

If that's somehow impossible, the third option is the best way to ensure the user gets the apps benefits from the get go. But you do have to show somehow that you're burdening their device with such a heavy load.

  • Yes the application is a game. The problem I see is that todays high end phones have massive resolutions (LG G4: 2560x1440px) and to bring the best possible user experience and the best look big textures are needed which can not be deleted once packed into the apk. (So the app gets very big for low end phones aswell). I think I'll go with number 3 but first I rethink everything. Maybe there's another approach which solves the Problem better.
    – Max K
    Commented Jul 8, 2015 at 22:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.