Image for post
Image for post

Android App Bundle is the new and official publishing format for Android applications.

This article is available as a video and linked at the end of the post.

With the Android App Bundle we created a format that unlocks, amongst other things, shipping smaller apps to your users. Smaller apps are more likely to be installed and less likely to be uninstalled when disk space gets tight.

In this post we’ll take a closer look at how to build your first app bundle, how you can upload it using the Play Console and dive into some configuration options.

Getting started doesn’t require any changes to your existing codebase.

All you’ll need to do is create an Android App Bundle, using the command line or Android Studio. …

Image for post
Image for post

This article is available as a video and linked at the end of the post.

The Android App Bundle is the publishing format for Android Applications in the Modern Android Development world.

Apps using it have seen an average file size savings of 15 % on user’s devices compared to a universal apk. You can benefit from these savings and streamlined releases without having to make any changes to your app’s code, simply by switching to an Android App Bundle.

To learn more about how to build your first Android App Bundle, read the previous post in this series.

But you can take matters into your own hands and modularize as well as optimize installation even further using Play Feature Delivery. …

Image for post
Image for post
Header image by Virginia Poltrack

Some tasks just shouldn’t be deferred

When you have to execute long running tasks while your app is in the background, you will encounter restrictions to background execution that were introduced with Android 8.0. These restrictions incentivize developer behavior that improves the user’s experience of the entire platform.
To make it easier to accommodate different use cases, we also improved the developer experience when working with background restrictions by adding functionality to WorkManager.

We recommend you use WorkManager to execute long running immediate tasks.

Follow along and learn about the benefits of using WorkManager for immediate execution of long running tasks and how to set everything up. …

Supporting your development and testing workflows

Drawing of multiple devices with screens and files floating between them.
Drawing of multiple devices with screens and files floating between them.
Header by Virginia Poltrack

In this article you’ll read about how to quickly and securely share versions with testers and developers using the Google Play Store.
I’ll also cover improvements we made such as accessing historical releases or being able to upload debuggable builds with Internal App Sharing.

But first, some background information

Distributing an APK to your testers is as simple as attaching it to an email or uploading it to a file storage server. Testers could then download and install the APK on their phones. And so could anyone else that got a hold of the file.

Then came Android App Bundles (AAB). It is the application publishing format for Android. It makes it easy to ship only the required resources to users through split apk without any additional work required from developers. AAB is a publishing format, which means Google Play will generate a set of APKs to be delivered on end-user devices. This can make it challenging to test the exact artifacts that are installed by end-users, especially if you take into account more advanced features such as dynamic delivery and in-app updates. …

What we learned from introducing a DI framework to Plaid

Image for post
Image for post
Illustrated by Virginia Poltrack

This is not an article about dependency injection in general or about why we picked library X over Y.
Instead this post covers key takeaways of our efforts to modularize Plaid from a dependency injection perspective.

Our setup

In a previous post I wrote about the overall modularization story of Plaid.

Let me quickly recap what Plaid looks like from a bird’s eye view.

We have an app module, which contains the main launcher activity. Also there are several dynamic feature modules (DFM) which depend on the app module. …

Image for post
Image for post

At Android Dev Summit Wojtek Kaliciński and I explained how Android App Bundles work together with Instant Apps.

In the session we explain the Android App Bundles in general and how to make an instant app in 2018. Also you’ll learn how users can discover an instant app and how Google Play calculates file size limits. We further provide an introduction to dynamic code loading as well as insights into project modularization.

The recording is available on YouTube.


Here’s the slides & outline for the session with links to the respective parts.


Click the 🎥 to jump right into a section. …

Image for post
Image for post
Illustrated by Virginia Poltrack

How and why we modularized Plaid and what’s to come

This article dives deeper into the modularization portion of Restitching Plaid.

In this post I’ll cover how we refactored Plaid away from a monolithic universal application to a modularized app bundle. These are some of the benefits we achieved:

  • more than 60% reduction in install size
  • greatly increased code hygiene
  • potential for dynamic delivery, shipping code on demand

During all of this we did not make changes to the user experience.

A first glance at Plaid

Image for post
Image for post
Navigating Plaid

Plaid is an application with a delightful UI. Its home screen displays a stream of news items from several sources.
News items can be accessed in more detail, leading to separate screens.
The app also contains “search” functionality and an “about” screen. …

A while ago we open sourced Topeka, an Android quiz app.
It is tested, using integration tests and unit tests.
And it is purely written in Java. Well… it was

What’s the name of the island off the coast of St Petersburg? _ _ _ _ _ _

At Google I/O 2017 we announced official support for the Kotlin programming language. That’s when I started migrating the code base away from Java, learning Kotlin on the way.

Not that this migration was necessary from a technological standpoint. The app is solid as it stands, but mainly to satisfy my curiosity; Topeka serving as my vehicle to learn a new language.

If you’re curious you can jump straight into the source code on GitHub.
For a while the code was on a separate branch, but now it’s merged into master.


Ben Weiss

#Android Developer Relations @ Google

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store