Issue #383

October 13th, 2019

Articles & Tutorials

link image   Drawing Bezier Curves like in Google Material Rally (

Chan Myae Aung writes about the basic idea of a Bezier curve, what Android provides for it and how we can implement it by taking advantage of Canvas API.

Dependency Inversion on Android Theming (

Nice interpretation of dependency inversion on resource files. Very helpful if you need to theme your app.

link image   Tired of job applications? 🙄 (

So are we 😜. Join Hired, the #1 career marketplace for Android Engineers where companies apply to you, not the other way around. Get salary details and equity upfront, before the interview. Choose the tech stack. Plus, no more applications.

AndroidX: Security library (

Scott Alexander-Bown takes a look at the first Android-specific security library that’s part of AndroidX.

Media Store access using openFile() on Android 10 (

As of Android 10, things have changed slightly with how we access files that are contained outside of our application. Joe Birch describes how this change of behavior has come from the concept of scoped storage – which aims to improve the privacy of user files.

Firebase ML Kit: AutoML Vision Edge (

In this blog post Nikit Bhandari builds an app called SeeFood, the app sees food and tells you what food item it is using Firebase ML Kit and a custom model.

Using FirebaseMLKit with CameraX (

ML Kit makes face detection super simple, and CameraX’s analysis step makes it easy to feed images to the face detector. Andrew Marshall shows how to combine the two to detect the contours of a person’s face!

Kotlin Enum Recipes (

In this post, Artur Dryomov shares some tips, tricks & recipes for enums that will improve the readability of your code.

What the Formula? Managing state on Android (

Laimonas Turauskas introduces Formula — an open-source state management library built in Kotlin.

R8 Optimization: Enum Ordinals and Names (

This post is part of Jake Wharton's series on D8 and R8, Android’s new dexer and optimizer. In this article, he looks at how enums are optimized by R8.

Server as a function with Kotlin (

In the Kotlin world, the most prominent implementation of the "server as a function" concept is http4k, which the maintainers describe as an "HTTP toolset written in Kotlin with a focus on creating simple, testable APIs". Simon Wirtz describes how it works.



link image   Place a sponsored post & reach over 66k Android devs (



Senior Android Engineer (London, UK)

At Lenny, we're bringing ultra flexible, personalised insurance cover to people when they need it. Starting with hourly car cover. As our first Android Engineer, you will have the opportunity to build our Android app from the ground up, helping to define both the tech stack and target architecture.

Sr. Software Engineer - Android Voice & Video SDKs (Denver, CO)

Twilio is growing rapidly and seeking a Sr. Software Engineer for the Voice and Video SDKs team, which enables developers to build rich WebRTC-based media experiences. The SDKs you build will have the audience of 2M+ developers building with Twilio.


Libraries & Code

link image   Kaspresso (

Kaspresso is a UiTest framework based on Espresso, UIAutomator and Kakao and helps you to write right and no-pain ui tests.

hypershard-android (

A fast and easy CLI tool that leverages AST (Abstract Syntax Tree) to parse test files for the purposes of test collection.

formula (

A functional reactive framework for managing state and side effects based on RxJava.

spotless (

Keep your code spotless. Spotless can format using .

http4k (

http4k is a lightweight but fully-featured HTTP toolkit written in pure Kotlin that enables the serving and consuming of HTTP services in a functional and consistent way. http4k applications are just Kotlin functions which can be mounted into a running backend.

AR-Toolbox (

An open-source ARCore & Sceneform playground app

Dagger2 Shaded (

In case you want to migrate your app to Dagger 2 - but it's too huge to do it all in once. Dagger 2 Shaded is a wrapper around Dagger 2 with the Maven Shade Plugin so we can have Dagger 1 and Dagger 2 living together.

insetter (

Insetter is a library to help apps handle WindowInsets more easily



link image   Gradle Incremental Annotation Processing (

Many popular annotation processors support incremental annotation processing. Check this table to see if the annotation processors you use supports incremental processing.


Videos & Podcasts

link image   Kotlin/Everywhere Buenos Aires (

Videos of the presentations from Kotlin/Everywhere Buenos Aires