Sign in

Tech PR Manager at Surf, Android Developer, GDE, creator of

Hello. My name is Kirill Rozov, and if you are interested in Android development, then most likely you have heard about the Android ResId Telegram channel with daily news for Android developers.

Modern mobile applications are already quite serious enterprise projects that are developed by hundreds of developers, contain thousands of lines of code and are constantly changing and developing. The process of automating code checking and application work helps to deal with such a huge codebase. …

The Google I/O’21 conference took place, and we learned absolutely everything about the new version of Android, and we can also try it all in Beta 1, which we can install on the Pixel, and other manufacturers also allow you to install the GSI image.

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 (

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().

The code has the following issues:

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

It will be better if we already have all the dependencies when creating a new instance of classes (in the constructor):

In that case, we solved all issues with the property. But…

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

and all updates in the status of release candidate.

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

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

A full list of changes can be found here.

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

They aren’t stable and have issues but I saw confirmation of usage Jetpack Compose in Android Studio 3.5 and 3.6. Together with androidx.compose artifacts arrived many artifacts in the groupandroidx.ui. Waiting for Android Dev Summit 2019 to hear more details.

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…

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