# Handstand Sam

Sam Edwards - Handstands, Travel, Android & Web

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## How I'm Using Agents for Development - January 2026

DevFeed: [How I'm Using Agents for Development - January 2026](<https://devfeed.tech/articles/how-i-m-using-agents-for-development-january-2026-25131.md>)

Original publisher: [Read original article](<https://handstandsam.com/2026/01/07/how-im-using-agents-for-development-january-2026/>)

Author: Sam Edwards

Published: 2026-01-07T16:23:40Z

Content type: opinion

Language: en

Sources: [Handstand Sam](<https://devfeed.tech/sources/handstand-sam.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [Claude](<https://devfeed.tech/topics/claude.md>), [IntelliJ IDEA](<https://devfeed.tech/topics/intellij-idea.md>), [ide](<https://devfeed.tech/topics/ide.md>), [context window](<https://devfeed.tech/topics/context-window.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [GUI](<https://devfeed.tech/topics/gui.md>), [YAML](<https://devfeed.tech/topics/yaml.md>), [Test automation](<https://devfeed.tech/topics/test-automation.md>)

Tags: [agents](<https://devfeed.tech/tags/agents.md>), [claude](<https://devfeed.tech/tags/claude.md>), [code](<https://devfeed.tech/tags/code.md>), [compose](<https://devfeed.tech/tags/compose.md>), [context-window](<https://devfeed.tech/tags/context-window.md>), [development](<https://devfeed.tech/tags/development.md>), [gui](<https://devfeed.tech/tags/gui.md>), [ide](<https://devfeed.tech/tags/ide.md>), [idea](<https://devfeed.tech/tags/idea.md>), [intellij](<https://devfeed.tech/tags/intellij.md>), [intellij-idea](<https://devfeed.tech/tags/intellij-idea.md>), [junit](<https://devfeed.tech/tags/junit.md>), [review](<https://devfeed.tech/tags/review.md>), [test-automation](<https://devfeed.tech/tags/test-automation.md>), [updates](<https://devfeed.tech/tags/updates.md>), [yaml](<https://devfeed.tech/tags/yaml.md>)

### AI overview

A developer describes using agents with IntelliJ IDEA, Firebender, and Claude Sonnet 4.5 across Trailblaze projects. The article explains a Research, Plan, Implement workflow, including incremental commits, progress handoffs when the context window fills, refactoring, UI test automation, and building a Compose-based YAML editor.

### Source excerpt

I'm currently sitting here with Intellij IDEA IDE open with 3 workspaces (different clones of the Trailblaze project). In each one of them I'm using Firebender with the Claude Sonnet 4.5 model. As I'm writing this I just toggled back over to IDE and made sure all my agents are still running. I've been hesitant [...]

## Running Specific Android UI Tests using TestParameterInjector via a Regex

DevFeed: [Running Specific Android UI Tests using TestParameterInjector via a Regex](<https://devfeed.tech/articles/running-specific-android-ui-tests-using-testparameterinjector-via-a-regex-25130.md>)

Original publisher: [Read original article](<https://handstandsam.com/2025/01/15/running-specific-android-ui-tests-using-testparameterinjector-via-a-regex/>)

Author: Sam Edwards

Published: 2025-01-15T14:49:13Z

Content type: tutorial

Language: en

Sources: [Handstand Sam](<https://devfeed.tech/sources/handstand-sam.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Instrumentation](<https://devfeed.tech/topics/instrumentation.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [test](<https://devfeed.tech/topics/test.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [examples](<https://devfeed.tech/tags/examples.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [instrumentation](<https://devfeed.tech/tags/instrumentation.md>), [on-device](<https://devfeed.tech/tags/on-device.md>), [regex](<https://devfeed.tech/tags/regex.md>), [tests](<https://devfeed.tech/tags/tests.md>), [updates](<https://devfeed.tech/tags/updates.md>)

### AI overview

This tutorial explains how TestParameterInjector generates parameterized Android instrumentation test names at runtime and why that makes selecting individual tests difficult. It discusses using the AndroidJUnitRunner tests_regex argument to target specific generated test names, while noting that class-level selection may run multiple parameterized cases.

### Source excerpt

There is documentation on the Android Developer website sharing tips to run Android UI tests via the command-line which I've found super useful. It provides examples on how to run specific tests (instead of running them all) including running by package, class or method. This documentation is fantastic, but it doesn't include the tests_regex argument [...]

## LLM Based Android UI Testing - "Journeys with Gemini"

DevFeed: [LLM Based Android UI Testing - "Journeys with Gemini"](<https://devfeed.tech/articles/llm-based-android-ui-testing-journeys-with-gemini-25129.md>)

Original publisher: [Read original article](<https://handstandsam.com/2024/12/09/llm-based-android-ui-testing-journeys-with-gemini/>)

Author: Sam Edwards

Published: 2024-12-09T15:17:57Z

Content type: article

Language: en

Sources: [Handstand Sam](<https://devfeed.tech/sources/handstand-sam.md>)

Topics: [ui-testing](<https://devfeed.tech/topics/ui-testing.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Android](<https://devfeed.tech/topics/android.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>), [Android Studio](<https://devfeed.tech/topics/android-studio.md>), [Google](<https://devfeed.tech/topics/google.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>)

Tags: [2025](<https://devfeed.tech/tags/2025.md>), [ai](<https://devfeed.tech/tags/ai.md>), [android](<https://devfeed.tech/tags/android.md>), [android-studio](<https://devfeed.tech/tags/android-studio.md>), [aosp](<https://devfeed.tech/tags/aosp.md>), [gemini](<https://devfeed.tech/tags/gemini.md>), [google](<https://devfeed.tech/tags/google.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [llm](<https://devfeed.tech/tags/llm.md>), [model](<https://devfeed.tech/tags/model.md>), [testing](<https://devfeed.tech/tags/testing.md>), [ui](<https://devfeed.tech/tags/ui.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>), [updates](<https://devfeed.tech/tags/updates.md>)

### AI overview

The article examines the proposed "Journeys with Gemini" feature for Android UI testing. Based on public previews, it describes human-readable test steps stored in .journey.xml files, IDE-based tooling, and placeholder AOSP components, while presenting availability and connectivity details as predictions.

### Source excerpt

What Do We Know About "Journeys With Gemini"? "Journeys with Gemini" was first (to my knowledge) discussed publicly at Droidcon London during a segment of #TheAndroidShow by Tor Norbye of the Android Studio team. We saw a sneak peek of a new way to write UI tests for Android using Google's Gemini (AI Model) that [...]

## Demystifying Maestro's UI Testing Implementation

DevFeed: [Demystifying Maestro's UI Testing Implementation](<https://devfeed.tech/articles/demystifying-maestro-s-ui-testing-implementation-25128.md>)

Original publisher: [Read original article](<https://handstandsam.com/2024/11/18/demystifying-maestros-ui-testing-implementation/>)

Author: Sam Edwards

Published: 2024-11-18T13:59:04Z

Content type: article

Language: en

Sources: [Handstand Sam](<https://devfeed.tech/sources/handstand-sam.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [ui-testing](<https://devfeed.tech/topics/ui-testing.md>), [Android](<https://devfeed.tech/topics/android.md>), [Code](<https://devfeed.tech/topics/code.md>), [Git](<https://devfeed.tech/topics/git.md>)

Tags: [adb](<https://devfeed.tech/tags/adb.md>), [android](<https://devfeed.tech/tags/android.md>), [android-testing](<https://devfeed.tech/tags/android-testing.md>), [code](<https://devfeed.tech/tags/code.md>), [format](<https://devfeed.tech/tags/format.md>), [git](<https://devfeed.tech/tags/git.md>), [library](<https://devfeed.tech/tags/library.md>), [maestro](<https://devfeed.tech/tags/maestro.md>), [on-device](<https://devfeed.tech/tags/on-device.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [server](<https://devfeed.tech/tags/server.md>), [testing](<https://devfeed.tech/tags/testing.md>), [ui](<https://devfeed.tech/tags/ui.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>), [uiautomator](<https://devfeed.tech/tags/uiautomator.md>), [updates](<https://devfeed.tech/tags/updates.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

This technical post examines how Maestro implements UI testing. It describes its YAML-based test commands, CLI-installed APKs, an on-device Netty gRPC server, UiAutomator view-hierarchy access, XML serialization, and UI interactions.

### Source excerpt

I first heard about Maestro when it was released in 2022, but I haven't played with it until now. I'm doing some work with Espresso and UiAutomator for Android testing and was curious how Maestro worked under the hood, so I cloned their git repo and dove into the code. This quick post shares what [...]

## Parameterized Android Tests with Burst 2.0

DevFeed: [Parameterized Android Tests with Burst 2.0](<https://devfeed.tech/articles/parameterized-android-tests-with-burst-2-0-25127.md>)

Original publisher: [Read original article](<https://handstandsam.com/2024/10/31/parameterized-android-tests-with-burst-2-0/>)

Author: Sam Edwards

Published: 2024-10-31T15:52:32Z

Content type: tutorial

Language: en

Sources: [Handstand Sam](<https://devfeed.tech/sources/handstand-sam.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Test coverage](<https://devfeed.tech/topics/coverage.md>), [APK](<https://devfeed.tech/topics/apk.md>), [Firebase](<https://devfeed.tech/topics/firebase.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>)

Tags: [analysis](<https://devfeed.tech/tags/analysis.md>), [android](<https://devfeed.tech/tags/android.md>), [apk](<https://devfeed.tech/tags/apk.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [instrumentation](<https://devfeed.tech/tags/instrumentation.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-compiler](<https://devfeed.tech/tags/kotlin-compiler.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [updates](<https://devfeed.tech/tags/updates.md>)

### AI overview

The article explains how Burst 2.0, a Kotlin Compiler Plugin, enables parameterized tests for Kotlin Multiplatform and Android instrumentation tests. It reports that the tests compile and execute successfully from the command line, while noting IDE support issues and a use case for statically computing test names for sharding.

### Source excerpt

Parameterized tests allow you to write a test once, but allow it to be called with multiple parameters. This means it is creating more methods than you've written, but without you having to write and maintain each one individually. Here is a trivial example of writing a single test with TestParameterInjector, but having it run [...]

## Kotlin K2 FIR Quickstart Guide

DevFeed: [Kotlin K2 FIR Quickstart Guide](<https://devfeed.tech/articles/kotlin-k2-fir-quickstart-guide-25126.md>)

Original publisher: [Read original article](<https://handstandsam.com/2024/05/30/kotlin-k2-fir-quickstart-guide/>)

Author: Sam Edwards

Published: 2024-05-31T01:18:21Z

Content type: tutorial

Language: en

Sources: [Handstand Sam](<https://devfeed.tech/sources/handstand-sam.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [2-0-0](<https://devfeed.tech/tags/2-0-0.md>), [analysis](<https://devfeed.tech/tags/analysis.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [guide](<https://devfeed.tech/tags/guide.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [tooling](<https://devfeed.tech/tags/tooling.md>), [updates](<https://devfeed.tech/tags/updates.md>)

### AI overview

A short guide to getting started with Kotlin K2's Frontend Intermediate Representation (FIR) for static analysis. It explains that Kotlin 2.0.0 makes K2 stable, describes FIR as a semantic model independent of compiler backends, and points readers to an embedded compiler dependency and implementation example.

### Source excerpt

I wrote this Kotlin K2 FIR guide because I was not able to find any guides or examples to get started with FIR for static analysis. K2 is now finally stable in Kotlin 2.0.0 and future versions, so FIR will be the recommended way of doing static analysis. Background Starting Kotlin 1.x you could only [...]

## Fetch and Render GitHub Markdown without CORS

DevFeed: [Fetch and Render GitHub Markdown without CORS](<https://devfeed.tech/articles/fetch-and-render-github-markdown-without-cors-25125.md>)

Original publisher: [Read original article](<https://handstandsam.com/2024/05/02/fetch-and-render-github-markdown-without-cors/>)

Author: Sam Edwards

Published: 2024-05-02T16:55:50Z

Content type: tutorial

Language: en

Sources: [Handstand Sam](<https://devfeed.tech/sources/handstand-sam.md>)

Topics: [Cross-origin resource sharing (CORS)](<https://devfeed.tech/topics/cors.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [GitHub API](<https://devfeed.tech/topics/github-api.md>), [Markdown](<https://devfeed.tech/topics/markdown.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [cors](<https://devfeed.tech/tags/cors.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [github](<https://devfeed.tech/tags/github.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [markdown](<https://devfeed.tech/tags/markdown.md>), [security](<https://devfeed.tech/tags/security.md>), [security-vulnerabilities](<https://devfeed.tech/tags/security-vulnerabilities.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

A tutorial on embedding a GitHub project's README on another website from a frontend-only page. It explains why iframes and direct cross-origin fetching fail, then explores the GitHub API, JSONP, Base64 decoding, and rendering the retrieved content.

### Source excerpt

I wanted to embed the contents of my GitHub project on another website, but the path to get there wasn't straightforward. Here are the roadblocks I hit, and how I got around them. Skip to the end if you just want the final solution. Idea 1: Render in an iframe I'd love to just create [...]

## Compose for Web (WASM) - What and Why?

DevFeed: [Compose for Web (WASM) - What and Why?](<https://devfeed.tech/articles/compose-for-web-wasm-what-and-why-25124.md>)

Original publisher: [Read original article](<https://handstandsam.com/2023/09/05/compose-for-web-wasm/>)

Author: Sam Edwards

Published: 2023-09-06T02:43:11Z

Content type: opinion

Language: en

Sources: [Handstand Sam](<https://devfeed.tech/sources/handstand-sam.md>)

Topics: [compose-for-web](<https://devfeed.tech/topics/compose-for-web.md>), [wasm](<https://devfeed.tech/topics/wasm.md>), [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Web](<https://devfeed.tech/topics/web.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Angular](<https://devfeed.tech/topics/angular.md>), [Node.js](<https://devfeed.tech/topics/node-js.md>)

Tags: [angular](<https://devfeed.tech/tags/angular.md>), [compose-for-web](<https://devfeed.tech/tags/compose-for-web.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [updates](<https://devfeed.tech/tags/updates.md>), [wasm](<https://devfeed.tech/tags/wasm.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

An overview of Compose for Web (WASM) in Kotlin Multiplatform, comparing it with Kotlin/JS and Compose HTML. The article discusses browser UI use cases, Kotlin/JS bundle-size tradeoffs, and the potential value of sharing complex business logic across platforms.

### Source excerpt

As a former web-developer myself, I still gravitate back to browser-based UIs. They are so easy to access from anywhere, and are globally available. It's hard to argue the utility of the amazing web platform. Compose for Web (WASM) is the latest technology in Kotlin Multiplatform and I'm pretty bullish about it. In this post [...]

## Adding Compose to Existing Espresso Tests with createEmptyComposeRule()

DevFeed: [Adding Compose to Existing Espresso Tests with createEmptyComposeRule()](<https://devfeed.tech/articles/adding-compose-to-existing-espresso-tests-with-createemptycomposerule-25123.md>)

Original publisher: [Read original article](<https://handstandsam.com/2023/04/12/adding-compose-to-existing-espresso-tests-with-createemptycomposerule/>)

Author: Sam Edwards

Published: 2023-04-12T13:46:30Z

Content type: tutorial

Language: en

Sources: [Handstand Sam](<https://devfeed.tech/sources/handstand-sam.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [Android](<https://devfeed.tech/topics/android.md>), [Instrumentation](<https://devfeed.tech/topics/instrumentation.md>), [test](<https://devfeed.tech/topics/test.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [compose](<https://devfeed.tech/tags/compose.md>), [espresso](<https://devfeed.tech/tags/espresso.md>), [instrumentation](<https://devfeed.tech/tags/instrumentation.md>), [test](<https://devfeed.tech/tags/test.md>), [tests](<https://devfeed.tech/tags/tests.md>), [updates](<https://devfeed.tech/tags/updates.md>)

### AI overview

This tutorial explains how to interact with Jetpack Compose elements in existing Android Espresso instrumentation tests without changing the test's existing Activity behavior. It recommends using createEmptyComposeRule() instead of rules that create or launch an Activity.

### Source excerpt

As the documentation says, you can combine both Espresso and Compose in an Android instrumentation test. In order to interact with Compose in an instrumentation test you need a ComposeTestRule. Problem Typically you would create a ComposeTestRule with createComposeRule() in a part of your app that is compose only, but that will create a blank [...]

## Using Java Reflection with Kotlin Companion Objects

DevFeed: [Using Java Reflection with Kotlin Companion Objects](<https://devfeed.tech/articles/using-java-reflection-with-kotlin-companion-objects-25122.md>)

Original publisher: [Read original article](<https://handstandsam.com/2023/02/01/using-java-reflection-with-kotlin-companion-objects/>)

Author: Sam Edwards

Published: 2023-02-01T18:45:27Z

Content type: tutorial

Language: en

Sources: [Handstand Sam](<https://devfeed.tech/sources/handstand-sam.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Java](<https://devfeed.tech/topics/java.md>)

Tags: [how-to](<https://devfeed.tech/tags/how-to.md>), [java](<https://devfeed.tech/tags/java.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [updates](<https://devfeed.tech/tags/updates.md>)

### AI overview

This tutorial explains how to use Java reflection to access and modify properties on Kotlin companion objects. It covers obtaining the companion object instance, working with the generated Java class, and accessing private backing fields.

### Source excerpt

Kotlin companion objects allow you to add static data and methods associated with a class. This is similar to how Java has static fields and methods. The problem is that Java doesn't really know what a companion object it, so trying to access one using standard Java reflection might make you go crazy. 🤪 The [...]