Extending an Interactive ADB 🔀
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:
Making ADB a little bit dynamic 📱
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 Activity
.
Bundling Things Nice and Pretty 💝
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 Activity
as Intent
extras, a Fragment
as arguments or its onSaveInstanceState
, or even a ViewModel
’s SavedStateHandle
, the most common way to do it is through a Bundle
.
Multi-module Lint Rules Follow Up: Suppressions ☠️
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:
Debugging App Links in Android 12 🔗
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:
📣 PSA: Disabling mapping file uploads with Crashlytics
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.
XML Parsing in Lint: Things Are Not What They Seem 🦹♀️
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.
Lazy dev: Indexed Branch Switching 🌳
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.
Multi-module Lint Rules: Tests 🧪
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.
Multi-module Lint Rules 🤹♀️
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.