Compose: UI Screenshot Testing

UI testing on Android has been tricky. However, Jetpack Compose makes it much easier. In a recent post we looked at how we can easily test adaptive layouts. But we can take this further. In another recent post, we created a strikethru animation overlay. In this post, we’ll look at how we can test the…

Compose: Strikethru Animation

Regular readers of Styling Android will know that I rather like animating things. That’s a topic that I’ve covered frequently! There’s an occasional series where I cover techniques for animating icons. For togglable icons this generally uses <animated-selector />. However, Compose does not support this. If you try and inflate a resource containing this tag,…

Bluetooth Pairing

Back in February 2020, I wrote about how location is becoming more complex in terms of privacy. The primary motivation around that post was that Bluetooth scans and pairing require ACCESS_LOCATION_FINE permission which can be confusing for the user. Why should an app that connects to a Bluetooth device require access to my location? The…

Compose: List / Detail – Testing part 2

In a recent post on Styling Android we looked SlidingPanelLayout. This can simplify the implementation of a List / Detail UI. It handles the logic of whether to show a side-by-side layout or a two-page layout depending on the screen size. Currently, there is no equivalent for this in Jetpack Compose. In this article, we’ll…

Compose: List / Detail – Testing part 1

In a recent post on Styling Android we looked SlidingPanelLayout. This can simplify the implementation of a List / Detail UI. It handles the logic of whether to show a side-by-side layout or a two-page layout depending on the screen size. Currently, there is no equivalent for this in Jetpack Compose. In this article, we’ll…

Compose – List / Detail: Foldables

In a recent post on Styling Android we looked SlidingPanelLayout. This can simplify the implementation of a List / Detail UI. It handles the logic of whether to show a side-by-side layout or a two-page layout depending on the screen size. Currently, there is no equivalent for this in Jetpack Compose. In this article, we’ll…

Compose – List / Detail: Basics

In a recent post on Styling Android we looked SlidingPanelLayout. This can simplify the implementation of a List / Detail UI. It handles the logic of whether to show a side-by-side layout or a two-page layout depending on the screen size. Currently, there is no equivalent for this in Jetpack Compose. In this article, we’ll…

Gradle: Version Catalogs

In April 2021 Gradle V7.0 was released. It introduces a new experimental feature called version catalogs. These can make life easier when we need to maintain consistent dependency versions in multi-module projects. In this post, we’ll take a look at this new feature, and how it can make life easier.

Jetpack Compose

Jetpack Compose was first announced by Google at I/O 2019. For those that don’t know, Compose is a declarative UI framework. It will replace the traditional View-based system that has been part of Android since the beginning. In this post, I’ll explain why there hasn’t been any Compose content on Styling Android up to now.…

Projector: Usage

Regular readers of Styling Android may already be aware that I am very much in favour of using a build server to speed up my builds. In the past, I have documented how I use Mainframer and Mirakle. I have a very meaty 6 core i9 8950HK with 32Gb RAM, and 512Gb SSD running a…