Customizing Android’s SystemUI

Last month I wrote a bit about my work on porting Android 12 to the PineNote, an open source E-Ink tablet. Since then I’ve gotten Android booting and running pretty well, but as anyone that has used an e-reader knows, things that look good on a normal display tend to look pretty bad on a monochrome display with a low …

Porting Android 12 to the PineNote

A few weeks ago, I ordered a PineNote from Pine64. Pine64 is an organization that designs and produces open source hardware, and the PineNote is their first venture into E-Ink tablets. I’ve been interested in some of the newer E-Ink tablets on the market, but having used a Kindle and knowing how poor the e-ink experience can be, I’ve held …

Building a “Complex” Metronome

Even though my first love in music was the stripped-back hard rock bands of the 1990s, I was exposed to more complex compositions during my 5th hour Symphony Band class in high school.  As a percussionist I was particularly drawn to interesting rhythms, changes in tempo, and especially complex time signatures.  This trained my ear to catch the same complexity …

Evil Hangman

Recently, I’ve been learning Kotlin while working on Android apps. While doing this, Kotlin’s heavy use of Lambda functions and comparator parameters began to remind me of functional programming languages like Haskell. Even though Kotlin is an imperative and object oriented language, I wanted to see just how far I could push its functional features by writing Evil Hangman. The …

Using Build Configs to Change Variables in Android Studio

In Android Studio it is possible define a “Build flavor” to set variables for different configurations of an app.  By default there is already 2 build type, release and debug which can be used to store variables but release has certain restrictions preventing it being used for quick debugging. The solution to this is to create multiple build flavors with …