Call for round the year submissions for Fragments in 2019

Call for round the year submissions for Fragments in 2019

Submit a proposal at any time in the year on mobile engineering, state of mobile platforms, and building products with mobile. We will find you a suitable opportunity to share your work.

Aakash Khatter


Theming your app like a pro

Submitted Feb 27, 2019

You want to introduce a dark theme throughout your app and you think it should be easy enough. However, once you dive into it, you realize it’s not that straight-forward. It’s easy to get lost with the turns you have to take to make it work.
Adding theming capability to an existing application involves a lot of thought process. Not only the existing UI has to be modified, a lot of design work is also needed. This involves keeping in sync with design team and working with tools of trade such as Sketch and achieving more automation with internal tools.
This talk will be focussed on how we can develop a system to make our app theme-able using a set of component libraries and a few xml tricks. We’ll go through various phases of theming which involves colours, icons and images inside the app and also on how to deal with the nightmare of making it work in older versions of Android.
We’ll also see challenges in implementing the same especially in a large application spread across multiple teams and how to maintain and test these components.


The following is presentation break up
1. Creating custom components with custom class and custom styles.
2. Creating color configurability with attributes.
3. Theming various components, icons and images using attributes.
4. Solving challenges related to API levels.
5. Discussion on compile-time and runtime theming.
6. Creating guidelines for product teams implement the same in a large project.
7. Maintaining release cycles and handling backward compatibilities.
8. Testing components regressively.

Speaker bio

Aakash is a an android developer with a knack for design. He is currently work at GO-JEK in the UX Engineering team trying to bridge the gap between design and development. When not pushing pixels, he likes to try different cuisines.


{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}