The new ViewPager2 API is a replacement for the good old ViewPager API that was used to create swipeable views in Android.
ViewPager2 has a lot of benefits over its predecessor like support for vertical swiping, the possibility of using the diff-util and the dynamic number of fragments, etc. It is also the recommended way of creating swipeable views on Android moving forward.
In one of the places where we are using
ViewPager in our app, we enable/disable user swipe at runtime in either(left/right) or both directions. This is done on basis of different user input. In
ViewPager we did…
Android Kotlin Extension Gradle plugin is deprecated in favor of ViewBinding. That marks the end of too good to be true
kotlinx.android.synthetic bindings for XML files. While
synthetics were very convenient they had the following shortcomings
All of the above is solved in the new
View Binding library. In one of my projects, there is heavy use of synthetics. In absence of an automated migration tool, it is a…
Slow build speeds are not unfamiliar to us Android Developers. It specifically becomes a nuisance when your codebase is large. Nowadays
Kotlin is the preferred choice of development language for many developers(including myself). Since
Kotlin is known to have larger build times then
Java it becomes even more important keep a tab on those build times.
There are many build performance optimizations techniques and tutorials are available out there that one can apply to keep build speeds in check. However, one also needs to measure the efficacy of those optimizations. Benchmarking builds after every change can be a tedious and…
In this article, we are going to use Half data type from the Android platform and also explore the caveats of it.
This post is add on to a previous 3 part article series.
4. Bonus How to draw 2.6 million polygons on Android at 60 FPS: Half the data with Half Float
In last article I explained a problem statement that required us to draw 2.6 million polygons in realtime at 60 FPS. There are three ways to do this on Android in my understanding. First, using Android
Canvas APIs, Second
OpenGL, and Third the new
This post is part 2 of 3 part article series.
In last article we were able to render L3 datasets with 20 FPS, however, we could not even see the L2 dataset on screen. In this article, I will be throwing light at some optimizations which can help us achieve our final goal i.e. render full L2 dataset at 60FPS.
This post is part 3 of 3 part article series.
Weather visualizations are mesmerizing to the eyes, and, they are equally fascinating from a technical standpoint. In this article series we are going to explore how can you render such a beautiful visualization with little understanding of data and Computer Graphics.
This post is part 1 of 3 part article series.
I have been developing Android apps for about 6.5 years now. For every small or big Android app I have churned out, I have blindly used
Gson for serialization and deserialization.
Gson seemed to be flawless as it almost read my mind.
This changed in one of my recent
Kotlin only project. Like every other project we started off with Gson here as well. But then, things changed when we started facing dreaded
NullPointerExceptions. But wait, did I not say
Kotlin? And isn't Kotlin supposed to be our solution for this billion dollar problem?
Well no! Kotlin can only do…
In my last article I listed out some of the issues that we faced when trying to setup
AndroidX Testing Framework with Espresso. While there were many issues, in the end tests ran successfully and I hoped this was one time thing.
Turns out that was not the case at all!
We are a small team which can’t afford to have full fledged test suits just yet. We decided to be selective. First, we wanted to write a smoke test suite for integration testing. Secondly we want to write UI unit tests for important screens. These two type of tests…
In my brief experience with Android developers and community so far I have seen lot of people talking about automated testing and its importance, but a very few people get the chance to actually write extensive tests for their code. They hardly ever have time for it. I also happen to be one of them. Although I have heard, read and talked about it a lot, I have very limited hands on experience.