Annyce Davis

Davis Technology Consulting

  • Home
  • About Me
  • Blog
  • Courses
  • Newsletter

Talk: Screen Robots UI Testing with Espresso

May 9, 2016 by Annyce Davis

Often when writing tests with Espresso you find a lot of onView, withId, perform calls scattered throughout your test methods. This takes away from the simplicity of the test, tends to be verbose and also litters resource ids everywhere. There’s got to be a better way, right? Yes, there is…Screen Robots. In this presentation you will learn how to take advantage of the Screen Robot abstraction technique.

It covers: UI Testing, Basic Espresso, and Screen Robots

Materials

  • Slides
  • Sample Code
  • Blog Post
 
If you would like to learn more about creating high quality Android applications, I encourage you to check out my video course and bite-sized video content on Caster.io.

The Blerg Podcast Chat

April 25, 2016 by Annyce Davis

I was recently a guest on The Blerg podcast. It’s a podcast that focuses on the various technologies in the Android ecosystem, featuring famed developer of Action Launcher, +Chris Lacy.

During our chat, we talked all about Android TV, Google’s solution for streaming devices in your home. We also talked a bit about what we would love to see in the way of additions to Android TV in the future. I spent several years developing for Google TV and Android TV, it was certainly a unique experience from typical Android application development. At any rate, I wanted to share some of the highlights of our chat with you.

Highlights


[02:10]: We briefly mention some of the challenges developing for the older Google TV devices.

[05:00]: Discussing the differences between the Google TV remote and the Nexus Player remote.

[08:35]: Chris talks about his experience with the Sony TV.

[13:00]: My main use case for the Nexus Player is a Chromecast YouTube Party.

[15:25]: We talk about how much I loved the Chrome Browser on the old Google TV devices.

[17:15]: Chris starts discussing the “Recommendations” feature of the Android TV.

[19:00]: We talk about the things we like/dislike about the Android TV Launcher.

[24:50]: I talk a bit about Apple TV and the look-and-feel of the applications.

[29:40]: Learned about a new game that I can play on Android TV, Crossy Road.

[31:10]: Another feature we’d love, suggested/new apps to aid in discoverability.

[33:20]: Shout out to my favorite show, Murder She Wrote, which it watch endlessly on Netflix.

[37:10]: Our take on apps that are installed by default, like Netflix.

[39:10]: I talk about developing for Android TV, huge improvement over Google TV.

[41:10]: The one thing I’d love to see with Android TV is having it integrated with my cable provider.

Hope you enjoyed the episode!

Testing Tricks #5 – Using Screen Robots with Espresso

April 18, 2016 by Annyce Davis

In this presentation by a developer at Square: “Software Quality/Automation Testing”, he discussed how they take advantage of Robots to make it easier to update tests whenever UI elements change, as well as a few additional benefits. This is a very useful abstraction technique for when you’re writing large numbers of tests in Espresso. So let’s look at an example of using a Screen Robot to test a simple login flow.

Before Using a Screen Robot

So the above code is how you would typically make use of Espresso, where you have multiple calls to onView() and reference the resource ids directly in each test. Two main drawbacks of this approach is that 1) if you need to change the ids in the future you have to update multiple tests, and 2) it’s not very clear from first glance what you’re attempting to accomplish in a given test due to the Espresso calls. So now let’s look at the same example, this time using Screen Robots.

Notice how the test method is more succinct and more easily conveys what we are trying to do, namely login with a given username and password and then make sure that it was a success. This includes the code for our LoginScreenRobot. This allows us to have a thin abstraction layer over the Espresso calls by extending our base ScreenRobot class. Hope you found this short testing tip helpful!

Fragmented Podcast Chat

March 30, 2016 by Annyce Davis

I was recently a guest on one of my favorite podcasts, Fragmented. It’s a podcast that focuses on tips and tricks for improving the Android Development experience. 

We talked all about Gradle, the build system that is used for running, testing, and packaging Android applications. I wanted to share some of the highlights.

Highlights


[02:31]: Kaushik attempts to discover if my time at The Washington Post was as exciting as the Spotlight movie.

[04:35]: Talking about my new work at Off Grid Electric.

[06:50]: We starting digging into some of the benefits of the Gradle build system.

[09:15]: We discuss build flavors and how they allow you to have different variations of your application.

[10:20]: Donn asks a question many have wondered: Why do we have some many .gradle files when we start a new Android application?

[12:22]: We discuss how the settings.gradle file is used.

[13:35]: How does the Gradle plugin structure benefit Android developers.

[16:40]: Donn introduces us to Gradle tasks. Then we talk about how they’re connected to plugins.

[24:10]: We do a quick overview of Creating a Custom Gradle Plugin. 

[31:00]: We start talking about improving the Gradle build times. 
Then as an extra bonus, Chiu-Ki Chan, fellow Android GDE, made an awesome Sketchnote of the entire episode.

Talking @Gradle with @brwngrldev on @FragmentedCast https://t.co/neRPu12nEc #Sketchnotes pic.twitter.com/u4fBIj3Evn

— Chiu-Ki Chan (@chiuki) March 30, 2016



« Previous Page
Next Page »

Follow Me

  • Bluesky

Categories

  • Android (61)
  • Career (5)
  • Communication (4)
  • Flutter (1)
  • Git (4)
  • Gradle (4)
  • Grails (23)
  • iOS (1)
  • Java (8)
  • JavaScript (6)
  • Kotlin (17)
  • Life (5)
  • Public Speaking (26)
  • Revenue (2)
  • RxJava (1)
  • Software Development (14)
  • Twitter (3)
  • Uncategorized (11)
  • Video Course (5)

Follow Me

  • Bluesky

Copyright © 2025 · All Rights Reserved · Log in