In Android app development career, it is more than likely to come across some UI design for which there is no native API or component. One of such requirement is to build a vertical text view. Recently I came across a similar requirement and decided to write a short article. Here, I had to put a label on y-axis of a graph which wasn’t easy since there is no Vertical TextView by default in Android UI framework. So, I did some study and put together this solution. …


Image source: Google I/O

At Propeller Health, we work hard to provide services to our users in every stage of life. This includes making our products and services accessible. Recently we have been focusing on figuring out the areas we need to improve in terms of accessibility. So, we took the approach of assessing our app for accessibility. Here, I am describing the approach we took, so that the readers can access their apps and make their products and services accessible to a larger user group.

Even in the peak of the technological era, applications are still designed and developed with a one-size-fits-all approach…


Golden gate from my lens [Fri, Aug 23, 2019]

Recently I came across a simple requirement of consuming an AWS pre-signed url in android and displaying the json data in a list, e.g.

https://s3-us-east-1.amazonaws.com/something/foo_bar.json

In the beginning, it felt fairly simple; just another API consumption task. With this thought I started implementing the network, persistence and repository layer first.

For this example, I am using Room for database, Retrofit for network communication, Moshi for json adapter. The basic requirement is pretty straight forward: when app launches, get the data, store and display in the list. When I started the implementation, I under the impression that consuming this endpoint would…


Dandelion in the fall of Midwest

There are several occasions when we need to implement sticky header for some list of data displayed in RecyclerView. And of course, Android doesn't have a native UI component to implement this easily. There are several third-party libraries which we can use to achieve this functionality. But using third party libraries always comes at a cost. There is always a doubt of whether the library we are using will be updated for future versions or not, apart from the additional overhead of LOC and app size that these libraries add. One simpler way of achieving this same behavior without having…


Recently I came across a question during a code-review. It was in the context of a PR where kotlin class and a bunch of functions inside a companion object {} annotated as @JvmStatic for Java interoperability were used. The feedback was "why we can't convert the class into an object and get rid of the companion object {}?".This raised the question, "what is the benefit with that?". Some explanation was done, but I wasn't completely satisfied with the explanation given (by me :)). …


Golden leaves — MidWest

Bash to zsh

Recently, I migrated from using bash go zsh as most of us did.

chsh -s /bin/zsh easy right :)

But somehow I managed to break my terminal in the process of setting up AndroidStudio. I am not a shell pro but I like to keep couple of adb and git commands as alias, so that I can use AndroidStudio Terminal or System Terminal to perform quick actions. All, I wanted to do was to add the path to android-sdk and platform-tools to the system path so that all the adb commands would be recognized and life would be simple. …


Single-choice color selector

More often than not, we as android developers come across a requirement to display a list of objects and make that list selectable in a single choice mode. Over the time, several ways of implementations have been done. I wanted to share the approach that I took recently to achieve this functionality. This requires basic understanding of Kotlin, data binding and a bit of MVVM pattern.

The basic idea here is to keep track of the selected position in the adapter as observable value and right after this changes, call notifyItemChanged() for the oldPosition and the newPosition with will re-bind…

Bigyan Thapa

Mobile Engineer @ Propeller Health, Android Dev, Madison, USA

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