The advent of smartphones has led to enormous opportunities as well as challenges to mobile app developers. Ease of use and proximity add great value to a mobile device. App developers are tasked to create new experiences while carrying over the feature-set from a desktop to cater to the mobile generation. The app stores seem to be growing by more than 1000 apps/day which speaks large of the increase in demand for mobile apps.


While the app marketplace is booming and generating new business models, it is becoming a challenge for the app developers to differentiate their apps. Most of the apps in a category tend to address the same problem and offer a similar feature set. In the series of blog posts, we want to share our perspective on how applications can differentiate and stand out in their respective category.

The first concept that we like to share is Theming or implementing custom look and feel. Theming allows a user to select custom color settings, icons and other UI items that suit their preferences. With this approach, the app is never the same and a user can customise the app to their heart’s content.


Theming is a simple concept, but takes some effort to implement it correctly. Customization can be implemented for text, colors, images and layouts to a certain extent. Customization also requires us to think through each UI element and abstract out certain attributes, which can be controlled from an external source.In the case of text, we can abstract size, color and type. These attributes can be controlled either by integrating with a cloud based service or internally by the app.

Images can be customized too, but the complexity arises when we need to manage multiple versions of the same image, which impacts the size of the binary. For this reason, we identified all images that could be replaced with text based images, so that the same abstraction as discussed for the texts could be applied. This improves the performance and also helps in maintaining a convenient binary file size.

Colors are relatively straightforward as there are not much attributes to abstract…it is just the color code. It is a good practice to use a fixed color palette for any interface and so it makes the implementation all the more easier.

When the app is initialized, we need to load all the attribute values specific to the user and fall back to the default values in case a custom specification hasn’t been selected. The customized values can either be stored natively in the app or for a better experience, it is best to store them in a cloud service, so that the customisation can be applied across devices and platforms.


Sign-up for our newsletter @

At Imaginnovate, we have applied this concept to one of the apps that we have developed and it was very well received. If you would like to learn more about theming or know more about Imaginnovate, please reach us at

To know more about how we implemented these in our mobile apps or learn about out capabilities, please visit


A technology agency for the mobile first generation

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade