When developing software, it's sometimes very easy to get overwhelmed by complexity due to the number of interacting pieces.
This is a problem that's prevalent in all software development from Server-Side development, Front-End development and all the way to Android development.
In a bid to tame complexity software engineers building complex software have looked up to tools that help reduce this burden. One such tool is design using Finite State Machines.
In this tutorial we'll be using Tinder's State Machine to model an Entity and handle complexity of dealing with the many possible states it can be in a manner that makes it almost effortless.