Speaker

Marcel Schnelle

Marcel Schnelle

I create software and weird music.

Tokyo, Japan

Android evangelist since college, circa 2012. I love build tools and testing.

Area of Expertise

  • Information & Communications Technology

Topics

  • Android
  • Testing
  • Developer Tools

Introduction to Bytecode Instrumentation with AGP 8

With the introduction of AGP 8, a new API for bytecode manipulation was added to the world of Android build tools. Replacing the previous Transform API, which powered many tools used for everyday development, this new way aims at faster build speed and more flexibility for developers. Popular libraries like Realm have faced challenges to adapt to the new paradigm, but ultimately succeeded in pushing their product to the next stage of evolution.

This talk is the spiritual successor to my session about the now-removed Transform API from DroidKaigi 2019. It will introduce the new methods and classes developers can utilize to instrument their code, presenting the required steps to get started with this powerful set of tools.

Exploring the Android Transform API

What do ProGuard, Multidex, Resource Merger and Realm have in common? Answer: All of these components owe key functionality to the Android Transform API. It is a centerpiece of the Android Gradle Plugin's internal architecutre, as it is responsible for processing intermediary build artifacts, and before the introduction of D8, it was even tasked with the bytecode transformation of Java 8 code for Android as well. To third-party developers, it offers a hook into the creation of an APK through a centralized concept, the Transform, which can inspect and modify classes or resources. Little documentation and a lack of accessibility to the topic have rendered the Transform API a "hidden gem" in the Android plugin infrastructure.

This talk will explore the Transform API, and introduce the required steps to register a custom transformation for a given scope to the audience, in a live coding session.

Moving Forward with JUnit 5

JUnit 5 constitutes the next major evolution of the most popular unit testing framework for programming languages on the JVM. JUnit has been embraced by developers for decades now, and continues to amaze with a revised architecture built from the ground up in version 5.

This talk aims to give an introduction to the motivations, architecture and intricacies behind evolving beyond the well-known JUnit 4, and gives an overview of the new features provided by its successor. Attendees will come to embrace the versatility of aspects like dynamic test generation, new APIs for expressive test case declaration, as well as the elaborate backwards compatibility agenda enforced by JUnit 5, which allows for consistent and gradual migration for existing test suites.

Finally, the advantages of early adoption for Android developers specifically are presented by introducing the audience to a third-party Gradle plugin, which enables any Android project to profit from what will eventually become the future de-facto standard for unit testing.

Marcel Schnelle

I create software and weird music.

Tokyo, Japan

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top