I’ve been working very slowly on an Android app in my spare time. It’s a client for Letterboxd (like Goodreads but for movies) and I’m currently replicating a feature that’s available on the website: you can see the user rating distribution for every movie.
The API gives us everything that we need to build it ourselves, so I created a quick prototype, drawing the chart directly on a canvas, then tested it with Google TalkBack, an Android accessibility service for blind and visually impaired users.
The screen capture below shows navigation with TalkBack enabled (the white circle shows the “move…
This is part five of a five-part series on refactoring themes and styles — it’ll make sense without reading the other parts, but if you want the full picture, start reading here:
After all the hard work we’ve put in, detangling our themes, defining new attributes, and determining default styles, it’d be a shame if now someone were to… hardcode a color 👀
It’s going to happen. It’s ok. What we’re after is something like this, where the rate at which hardcoded colors are used should plateau, and then start to go down:
This is part four of a series on refactoring themes and styles — it’ll make sense without reading the other parts, but if you want the full picture, start reading here:
At Monzo, we often create short-lived apps which only depend on the specific modules we need to test our feature during development. This helps mitigate the cost of having to wait for long builds because we don’t have to compile the entire app.
One of these short-lived apps evolved into the Gallery, a showcase of styles and components that can be reused in different features.
This is part three of a series on refactoring themes and styles — it’ll make sense without reading the other parts, but if you want the full picture, start reading here:
Theme overlays are used to override values from your theme. At Monzo, we leverage theme overlays in different ways and this post highlights three cases where we’ve found using them to be helpful.
Most of the toolbars in the Monzo app have the same color as the screen’s background, which is defined by the activity theme, but there are other cases where we want a distinct color:
This is part two of a series on refactoring themes and styles — it’ll make sense without reading part one, but if you want the full picture, check it out here:
In the last post, we recounted what the theme structure looked like for the Monzo Android app. There were multiple hierarchies, with distinct framework bases, and the sheer number of nodes was pretty overwhelming.
We’ve been working to apply these best practices to the Android app at Monzo. For us, the challenge lay more in how we could make these changes safely, over time. In other words, how we can refactor our themes.
From the outside, the look and feel of the Monzo app is pretty simple. …
We’ve been working recently on Monzo Plus, a way for users to add extra features (like travel insurance) to their account for a monthly fee.
As part of this package, users are able to choose one of three card colours — the iconic Hot Coral, the also-neon Lagoon Blue or, what seems to be an early fan favourite, Midnight Sky.
This post shows how we implemented the animations on Android.
This post demonstrates some ways we can improve our pull request process to add important information to help the reviewer understand our changes faster.
I’m a visual person. When I’m reviewing code, I really appreciate when pull requests add some context around how a code change affects the end-user:
Android App Links is a feature designed to reduce friction for users who want to access your content — instead of a user clicking an HTTP link and navigating to your website, Android will redirect them to the same content in your app, for a seamless transition to a native Android experience.
It has three main screens:
I really like the way that Gmail for Android shows the checked state for selected emails.
Why is this good? There are three visual affordances which make it very clear which emails are selected:
Why is it COOL? Look what happens when an email is selected and deselected quickly. The avatar animation is shown in reverse from the position it was at:
Google Developer Expert for Android, prolific film watcher and new thing try-er