DEV Community

Cover image for Rewriting Chess.com's Android App

Rewriting Chess.com's Android App

Tony Robalik on April 06, 2018

Chess.com's Android app, which is used by about three hundred thousand people daily, and a million monthly, and who speak over 69 languages, is get...
Collapse
 
ben profile image
Ben Halpern

I love this post. Really great primer on how this process comes to happen.

Collapse
 
autonomousapps profile image
Tony Robalik

Thank you! I was worried it might come across as promotional, but really I'm just excited to get to work on a greenfield project and do things "right" from the start.

Collapse
 
ben profile image
Ben Halpern

Nah, great overview. It's not like you're out here pushing stuff on us. Everybody here writes code for some company and it's natural to make it part of the story. As you've done here, when your intentions are to write something useful, it comes across.

Collapse
 
rhymes profile image
rhymes

BTW it would be awesome if, from time to time, you were able to update dev.to with the progress of the rewrite (barring trade secrets obviously :-))

Thread Thread
 
autonomousapps profile image
Tony Robalik

I intend to! I'd like to publish every couple weeks. I have several planned posts, including: Kotlin, Moshi, dagger.android, Room, the Paging lib, static analysis & CI, etc etc....

Thread Thread
 
chrisvasqm profile image
Christian Vasquez

I'm super interested in this!

I'm currently redoing all the exercises that are part of Udacity's Android Basics courses with Kotlin and I bet I can learn a bunch from you :)

Collapse
 
rhymes profile image
rhymes

Terrific story and good luck for the rewrite :-)

Collapse
 
surajdubey profile image
Suraj Dubey

Are you also planning to adapt Android Architecture Components while re-writing app? What architecture does Chess.com use now(MVP/MVVM/MVI or something else) and planning to make architecture change?

Collapse
 
autonomousapps profile image
Tony Robalik

Heh, great question. The current app, as noted, has been around for a while. So, for various reasons I won't go into, it's largely a Big Ball of Mud. Over the past couple of years we've engaged in a huge refactoring effort to convert parts of it to a hand-rolled MVP pattern, but it's been hard going. Moving forward, we're adopting the new Android Architectural Components with ViewModels, Room, LiveData, etc. We already have a few features in the current app utilizing this pattern, and so far, we're really impressed.

Collapse
 
ryry_02 profile image
Ryan (he/him)

Great intro post! Really looking forward to the future posts about the re-write of one of my most used Android apps. Especially as I'm starting to dabble in Kotlin myself. Nice work 👍

Collapse
 
jokerwin profile image
José Silva

Excellent post Tony. I usually play on chess.com website but I also have the android app and it's great! My question is how are they planning on minimizing the delay between moves?

Collapse
 
autonomousapps profile image
Tony Robalik

Do you mean between the current version available in the Play Store and the rewrite version? We're continuing to update the current version for a few months, most likely, with several big features nearly complete and ready to roll out to our beta community.

Collapse
 
goku132 profile image
Michael

Great post. Really looking forward to the new app.

Collapse
 
germanviscuso profile image
German Viscuso

Are you using an agile framework like Scrum for development? If not, are you planning to use one for the app redesign? Just curious!

Collapse
 
autonomousapps profile image
Tony Robalik

We actually already employ a modified kanban process, which we'll be continuing for the rewrite project.

Collapse
 
gameoverwill profile image
Wilfredo Pérez

Wow I use a lot chess.com Android app and I can't wait that you start to share the process of the new one. Feel free to contact me as a tester :D although I'm a very bad player I love this game.

Collapse
 
autonomousapps profile image
Tony Robalik

Hahaha... I'll see what Hikaru thinks ;-)