1

I would like to support multiple dynamic themes for my app. At the same time, I dont want to increase my app bundle size by adding all set of icons and images. I wish, user selectively download from server during runtime.

Following are the two methods I see in stack overflow.

  1. Make the new styles, icons and background images into separate APK and let the user download from google play and import those values during runtime.

How to release application plugin using Android Market?

  1. Make the new styles, icons and background images into a zip file and let the user download and save it in SD card. Write a Resourse manager wrapper to parse and read values from the config file inside the zip file.

Create downloadable custom theme and apply it during run time

Option: 2 looks to be a better solution but it has set of limitations like we can set only the bg color and text color.

Could you please let me know which approach is better? Or is there any other better method.

Community
  • 1
  • 1
Aram
  • 952
  • 1
  • 8
  • 30

2 Answers2

1

The first method will be an effective one, Since normal users mostly prefer apps or themes to be downloaded from Play Store.

  1. It will be easy for you also to promote your App as well as your Themes.
  2. You can easily provide new updates for your themes and bug fixes , no need to download a .Zip file again & again.
Ashwamegh
  • 168
  • 8
  • Thanks. Have you used that approach? Does that approach has any limitation? For that also, I need to write an resouremanager wrapper? – Aram Nov 22 '16 at 11:51
1

For our case, we have decided to go ahead with below approach:

  1. For each theme, we will create a config file, that will contain the list of configurable elements (color, icon, image) along with necessary resources (icons, images, bgimage).
  2. We will post this in our server and allow user to browse through the list with a preview image.
  3. If he decides to download a theme, we will download and unpack in local memory.
  4. In our android app, all the elements(textview, imageview, listview) will contain a wrapper which will read from this config and apply before rendering.

NOTE: #4 is too much work, so we will divide all our themes to light and dark in top level. 75% of the config should come from our styles file (light or dark). Only font color, bgcolor, bgimage, iconsets will change based on the config file.

From this approach, we can easily move to the separate apk approach also.

Neo
  • 3,309
  • 7
  • 35
  • 44
Aram
  • 952
  • 1
  • 8
  • 30