How to get away with READ/WRITE permissions on Android

Android has been using permissions since its beginning but never really enforced the correct usage until Marshmallow and developers took advantage of it and went rampant. Since Marshmallow (API 23, Android 6.0), android ecosystem introduced permission requests and now we have to ask user to explicitly provide permissions which is really good in the sense of privacy for the users, but adds a lot of work for developers and provides kind of bad user experience.

»
Author's profile picture Jay Rambhia on Android

Get started with Android Lint - Custom Lint Rules

Android build system provides a lot of tools to optimize the code, find potential issues, improve performance, etc. One of the tool it supports is Lint. Lint is a tool which analyzes the source code and flags potential bugs and errors during the build, and Android Studio even uses Lint to show those bugs and errors in the editor.

»
Author's profile picture Jay Rambhia on Android

Flutter - An app to get movie ratings on-demand

Flutter is an open source android app completely written in Kotlin. The idea behind Flutter comes from a necessity. I would spend a lot of time on Netflix just find a good movie to watch. It was difficult to find a good movie because Netflix would show its own ratings which are not at all reliable and more often than not I would end up watching a bad movie. I wanted something which would show me the IMDb rating of the movie on Netflix. I didn’t find anything that would work on Android so I thought of writing my own app and named it Flutter.

»
Author's profile picture Jay Rambhia on Android

Synchronizing state between different components in Litho

This is the fifth post in the series - Exploring Litho. In the first post - Android GIF search engine with Litho, we explored some key aspects of Litho - LayoutSpec, MountSpec, Use Glide to load images, Update RecyclerView data, etc. In the second post - Managing State in Litho, we dabbled around with state in Litho components. In the third post - Navigation with Litho, we used LithoView and components to navigate instead of an Acitivity or a Fragment. If you’re not familiar with Litho, I would suggest you to go through the previous posts. We explored Events and how to use them to propogate changes in the fourth post - Using Events in Litho.

»
Author's profile picture Jay Rambhia on Android

Using Events in Litho

This is the fourth post in the series - Exploring Litho. In the first post - Android GIF search engine with Litho, we explored some key aspects of Litho - LayoutSpec, MountSpec, Use Glide to load images, Update RecyclerView data, etc. In the second post - Managing State in Litho, we dabbled around with state in Litho components. In the third post - Navigation with Litho, we used LithoView and components to navigate instead of an Acitivity or a Fragment. If you’re not familiar with Litho, I would suggest you to go through the previous posts.

»
Author's profile picture Jay Rambhia on Android

Navigation with Litho

This is the third post in series of exploring Litho. In the first post - Android GIF search engine with Litho, we explored some key aspects of Litho - LayoutSpec, MountSpec, Use Glide to load images, Update RecyclerView data, etc. In the second post - Managing State in Litho, we dabbled around with state in Litho components. If you’re not familiar with Litho, I would suggest you to go through the previous posts.

»
Author's profile picture Jay Rambhia on Android

Managing State in Litho

This is the second post in series of exploring Litho. In the first post - Android GIF search engine with Litho, we explored some key aspects of Litho - LayoutSpec, MountSpec, Use Glide to load images, Update RecyclerView data, etc. If you’re not familiar with Litho, I would suggest you to go through the first post.

»
Author's profile picture Jay Rambhia on Android

Build Android GIF search engine using Litho by Facebook

I recently tried my hands with React - A Javascript library for building user interfaces. I started following this amazing tutorial - React 101 by Tighten. I had just finished building my first GIF search engine and Facebook open sourced Litho - A declarative UI framework for Android. Well, Litho takes a lot of inspiration from React. I had just started to get my hands dirty with React (and liked it), I thought I give Litho a try. So what should I do? GIF search engine for Android using Litho!

»
Author's profile picture Jay Rambhia on Android

ViewPager Animations

Meaningful transitions and animations makes the UI more elegant. Now, I’m no UI expert but I can say when I like a thing better than the other. Well, this post is about that. Adding animations is good but adding intuitive animations is better. In the previous post, I talked about view position in ViewPager - ViewPager cards inspired by “ViewPager class inspired by Duolingo”.

»
Author's profile picture Jay Rambhia on Android

ViewPager cards inspired by "ViewPager cards inspired by Duolingo"

»
Author's profile picture Jay Rambhia on Android

Background Blur in Android

»
Author's profile picture Jay Rambhia on Android

RxJava for Form Validations

Since I started learning about RxJava, I have always been fascinated about how it can be used to make my life easier, code more fun and readable. I have successfully implemented Volley with RxJava to implement REST API calls, most of the async loading (images, files, etc). My worst enemy is forms. Forms need real time validations and real time responses to make UX better. In this post, I talk about my obsession about EditText. Here I am trying to solve it so that I can get some peace of mind.

»
Author's profile picture Jay Rambhia on Android