ylliX - Online Advertising Network

Sharing code between test modules

In 2015, I wrote a post about sharing code between unit tests and instrumentation tests on Android. Iain Cunningham just pointed out that the method I outlined no longer works. That’s fine for me because I haven’t used that method in years! Nowadays I use modules, which provide a far superior method of solving the […]

Domain-Specific Models

For a long time at Trello Android, we used the same class for parsing API calls (via Gson), making DB transactions (via OrmLite), and displaying data in the UI. Here’s a pseudo-code-y example of a board: @DatabaseTable(tableName = “boards”) data class Board( @DatabaseField(columnName = “name”) @SerializedName(“BoardName”) private var boardName: String?, private var cards: List<Card>?, private […]

Drawing custom text spans in Compose UI

While exploring how text paragraphs are rendered in Compose UI, I nerd sniped myself into porting squiggly underlines from Sam Ruston’s Buzzkill app. Sam’s animation was implemented using TextView custom spans, but Compose UI does not offer any alternatives for them yet. While our friends at Google are prototyping text modifiers (first, second), I figured […]

Maintaining Software Correctness

This article is a write-up of a talk I gave at MinneBar 2022. Instead of reading this, you could also watch the recording or view the slides. The title of this talk is “maintaining software correctness.” But what exactly do I mean by “correctness”? Let me set the scene with an example. Years ago, when […]

You Are Not Blocked

23 May 2022 • 1 min read A common complaint I see in the Kotlin/Java/Android community is that someone is “blocked” waiting for an open source library release. This is a bit of a red flag from a developer standpoint and a nuisance as an OSS maintainer. It leads to folks making noise in […]