Sign in

Tech PR Manager at Surf, Android Developer, GDE, creator of androidbroadcast.dev

The main emphasis in the release was made on enhancing OS security and data privacy, as well as redesigning the system. They have done a very good job of supporting today’s new media standards, and they have minimized the amount of pain that flagship devices will experience from older or budget smartphones. …


Simplify usage of Android View Binding with Kotlin Property Delegates and solve behavior of Fragment’s ViewLifecycleOwner

View Binding is a new feature in Android Studio 3.6, but this isn’t true at all. View Binding is a lighter variant of Android Data Binding. Why do we need View Binding? The answer is performance. Many developers useAndroid Data Binding only to have reference to views from Layout XML and ignore other features of the library. Code generation in View Binding is faster. But the default way of its usage isn’t so good.

View Binding: default way

Let’s look at the usage of View Binding in Fragment. We have a layout resource profile.xml (content isn’t important). Generated View Binding for the layout has…


Autofill 1.0.0, CoordinatorLayout 1.1.0 and a lot of new RC/Betas

When the attention of Android developers was focused on Kotlin Conf. But Google released new updates in Android Jetpack.

New Stable Releases

Autofill 1.0.0

The library is small. It contains only constants for autofill hint. You can find new constants in HintConstants class.

More about autofill can be found here.

Coordinator Layout 1.1.0

  • CoordinatorLayout now implements NestedScrollingParent3 and CoordinatorLayout.Behavior implements a new overload of onNestedScroll to enable Behaviors to be able to report how much scroll distance they consume to nested scrolling children (during the dispatchNestedScroll()/onNestedScroll() pass)
  • Improved support of accessibility inCoordinatorLayout
  • CoordinatorLayout.DefaultBehavior annotation is deprecated. Now to specify default behavior for CoordinatorLayout you need to use CoordinatorLayout.AttachedBehavior


Benchmark Stable, ViewPager2 Stable, and next RecyclerView

The last week gave us the first stable releases of new libraries, new major releases of existing libraries.

New libraries

Benchmark 1.0.0

Benchmark is a library that allows you to write a performance benchmark of app code and get results. It handles all device configurations issues, stabilizes performance and etc. to ensure that tests will be accurate and consistent.

Benchmark is the first library from AndroidX that is 100% Kotlin.

ViewPager2 1.0.0

ViewPager2 replaces ViewPager. The new widget is built on top of RecyclerView. Old implementation will not be supported anymore and all features will be added only in ViewPager2.

Improvements from the previous ViewPager are:


Photo by Torsten Kellermann (unsplash.com/photos/sTCikT_c7sQ)

How to inject dependencies into Android Components constructors with Dagger 2

Kotlin is a beautiful language but I don’t like one thing from it — lateinit. Why? lateinit is a result of limitations that came from Android components. The most popular usage of the keyword in Android is injecting in properties with Dagger 2 from Activity.onCreate() or Fragment.onAttach().

  1. dependency is modifiable
  2. dependency isn’t private
  3. dependency will be resolved in onCreate()


Experimental annotation, Biometric & Webkit are stable

Hi! A new week and new updates! Let’s go to find out what’s new in Jetpack on this week:

New Stable Libraries

Annotation-Experimental 1.0.0

The first stable release of the new library that helps make youк code better. Do you know about Kotlin’s @Experimenal annotation? The purpose of it is to mark not the final API and aware of you use such kinds of APIs. But warnings work only in Kotlin code.

Annotation-Experimental library contains special annotation @Experimental (from AndroidX) that can be analyzed by Android Lint and allow us to have the same warnings in Java code.

Biometric 1.0.0

AndroidX Biometric library is a backport of…


News in Android Jetpack October 21–27, 2019

Last week was the week of Android Dev Summit (October 22–23). On the first day were announced many RC updates. The updates give us

  • More integrations with Kotlin Coroutines
  • Save state in View Model
  • Improved animations support
  • ViewPager 2 — ViewPager on top of RecyclerView
  • Improved nested scroll
  • Possibility to benchmark your Android App in the right way

A full list of changes can be found here

Bug fixes in stable release

Room 2.2.1

  • Fixed work when expandProjection turned on
  • Improved verifying quieries at compile time

RCe of next major releases

Activity 1.1.0-rc01


Playing with Jetpack Compose dev
Playing with Jetpack Compose dev
Source unsplash.com/photos/3cIvvzjE6Lk

No more quest to try it! Only dependencies and Android Studio 3.5

During Google I/O’19 many new and interesting things were presented for Android Developers. I am sure that Jetpack Compose is #1 in the top list of them. Unfortunately, it’s not ready for production and trying it was a difficult quest because you need to build your own version of Android Studio. The reason is that composable functions are build using a custom Kotlin compiler plugin. Kotlin compiler plugins have no open APIs and I didn’t find any information about its release.

Everything changed on October 10 when Google released the first dev builds of Jetpack Compose libraries. They don’t require…


Review of most interesting changes in Android Jetpack releases for the last week

First Jetpack Compose artifacts

The first portion of Jetpack Compose artifacts arrived:

  • androidx.compose:compose-compiler:0.1.0-dev01
  • androidx.compose:compose-runtime:0.1.0-dev01

New features in stables and alphas

Room 2.2.0 (changes since 2.1.0)

  • Pre-packaged Database: New APIs in RoomDatabase.Builder are now available for creating a RoomDatabase given an already populated database file from an asset of file.
  • Schema Default Values: @ColumnInfo now has a new property defaultValue that can be used to specify the…


Kotlin: cleaning Java bytecode before release
Kotlin: cleaning Java bytecode before release
The photo by Pan Xiaozhen (source)

Kotlin removes much boilerplate code that we need to write by hands or generate with an IDE or third party libraries like Dagger 2. Good examples of that in Kotlin is null safety. Thanks to the feature, you don’t have to write if(value != null), but we know that a high power can’t come without a price. The price in Kotlin/JVM is additional Java bytecode.

Let’s check decompiled Java code produced by the Kotlin compiler and find out how to bring down the price.

Function parameters

Kotlin code:

// Sample.kt
fun sample(arg1: String) {
}
public final class SampleKt…

Kirill Rozov

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