Bumble Zsolt Kocsi Aug 31, 2021

Checkmate on Compose Part 1

Article Summary

Zsolt Kocsi from Bumble built a chess app in Jetpack Compose to solve a problem that's frustrated beginners for years: engines tell you a move is bad, but never explain why.

As Bumble's team adopted Compose, Kocsi created Chesso, an open-source chess app with a unique twist: visual overlays that show pressure on squares, blocked pieces, and escape routes. This deep dive covers the architecture decisions behind building a moderately complex game in Compose, from data modeling to UI state management.

Key Takeaways

Critical Insight

Building a chess app revealed that Compose handles UI state brilliantly, but complex game logic still benefits from traditional Reducer patterns.

Part II reveals how Kocsi animated piece movements and built the signature visualization layers that make complex positions instantly readable.

About This Article

Problem

Zsolt Kocsi had to build an 8x8 chessboard that displayed pieces at the right size for any screen while keeping a 1:1 aspect ratio. He started with Unicode chess symbols, but they looked bad on dark squares.

Solution

He switched from Unicode text to vector graphics using Compose's Icon composable with tint parameters. This gave him better image quality and more control over sizing than relying on font sizes.

Impact

The vector approach fixed the visibility problems with light pieces on dark squares and improved the overall look. The chessboard now compares well visually to other chess apps.