A few weeks ago, I wrote about a script for making
adb a little bit more interactive. The script makes the process of running an
adb command much smoother if there are multiple devices attached by presenting a chooser. For example, when sending a deeplink:
➜ ~ deeplink https://zarah.dev Multiple devices found: 1 - R5CR7039LBJ 2 - emulator-5554 3 - emulator-5556 Select device:
Android has a lot of tools for developers and one that has been around for as long as I can remember is Android Debug Bridge (
adb). It allows you to issue commands to an attached device, such as installing an app or starting an
Of all the projects that I have worked on over the years, one thing they all have in common is the need to pass things around. Whether passing stuff to an
Intent extras, a
Fragment as arguments or its
onSaveInstanceState, or even a
SavedStateHandle, the most common way to do it is through a
It has been a hot minute since I posted about writing multi-module Lint rules so it’s time for a follow up. Today’s topic: suppressions! A quick recap of where we are:
I have been working with deeplinks lately and I noticed that quite a few things have changed since I last worked with them. The most important change is quoted in the list of Android 12 behaviour changes:
One of the more famous crash reporting tools used in Android development is probably Crashlytics. It offers up a lot of insight into an app’s performance – from device characteristics to insights on issue commonalities. If, like my current project, obfuscation is enabled in an app, Crashlytics has a Gradle plugin that uploads the mapping file so that we end up with readable crash reports.
About a year ago, I wrote about including quickfixes for Lint rules. Quick fixes appear on the context menu when Lint flags an error and allows developers to quickly address the issue. They can be applied by clicking on the link at the bottom of the dialog or pressing ALT+ENTER (⌥ + ↩) and then choosing the fix.
Back in August, I wrote about making an alias for finding the five most recent branches I have checked out by filtering out
git reflog entries.
In my previous post, I talked about how to write a Lint rule that gathers information from different modules before performing a final analysis to determine if there are errors.
I have been learning a LOT about Lint the past year. Our team has grown 5x since I joined more than three years ago, and it became really obvious really quickly that we should be letting robots do a lot of the mundane and repetitive enforcement of our team’s code conventions.