Grox: a library to manage the state of Java / Android apps

Alin Turcu

Mobile Dev Manager

Softvision

From coding to architecture solutions and coordinating engineering teams, I was involved in all stages of mobile app development in my career. Lately I mostly focus on software design, establishing coding standards, experimenting with the latest frameworks and technologies, improving apps performance and coaching engineers. I am also an active contributor to open source libraries, I love sharing knowledge and keeping up to speed with the latest technological trends. I always say: “if you have always done it that way, it is probably wrong, never stop searching for better ways to do things and innovate, innovate, innovate in everything that you do!”

Abstract

Back in the days, your application was a charm, clean, designed, the code was clear, and at any point in time, you could tell in which state it was. But over time, new features came into play, network calls, asynchronous processing, your little baby turned out to be a monster and you loose yourself in the code, it’s not possible to tell in which state your app is between network calls, errors, user interactions, etc.. You’re lost ! Grox is an open source library (https://github.com/groupon/grox) that helps to manage the state of Kotlin / Java / Android applications. Inspired by Flux and Redux, Grox lets you express state changes in a testable and homogenous way. Grox offers a flexible, scalable way to manage the state of your application. With Grox you know in which exact state you are at any point in time, and you state will be represented clearly. Grox also offers time travel debugging, and a nice Rx API that plays very well with RxBinding and asynchronous code. In this session, we will explain why Grox is nice, give a few examples to use it, test your code and enjoy it’s scalability. You will see that Grox is a breeze to manage from the simplest app to the most complex ones.

  • Grey Facebook Icon
  • Grey Twitter Icon
  • Grey YouTube Icon

Droidcon is a registered trademark of Mobile Seasons GmbH