Android · Jan van Haasteren

JVH Puzzle

JVH Puzzle

Native Android tracker for Jan van Haasteren puzzles. Shared Firebase backend with Kotlin and Jetpack Compose.

Top 5 in Top Apps · Netherlands

Get it on Google Play

The puzzles

What are Jan van Haasteren puzzles?

Jan van Haasteren is a Dutch illustrator whose jigsaw puzzles are famous for chaotic, humorous scenes packed with tiny characters and side jokes.

With well over a thousand puzzles released, collectors often own dozens or hundreds of boxes. JVH Puzzle Android brings that catalog, scanning, and collection tracking to native Android.

Capabilities

What you can do

Collection tools for Android, aligned with the iOS product without forcing a shared UI wrapper.

Collect

01

Puzzle catalog

Full database with search and browse flows.

02

Barcode scanning

CameraX and ML Kit based scanning.

03

Collection tracking

Statuses, stats, timer options, and export.

04

Groups

Social discovery and shared collection context.

Stay close

05

Advent calendar

Seasonal collection experience through December.

06

Following

Stay connected with other collectors without a noisy social feed.

07

Statistics

Collection stats, completions, and progress overviews on Android.

08

Shared backend

Firebase sync aligned with the iOS app across devices.

First Android app

Built because collectors asked for it

After the iOS launch, the same question kept coming back: is there an Android version too? Demand in Jan van Haasteren groups was clear enough to commit, not to a quick port, but to a real native app.

This was my first Android project. I learned Kotlin and Jetpack Compose from scratch, chose native over Flutter so it would feel at home on Android, and kept Firebase as the shared backend with iOS. From first build to Play Store launch took about 2.5 months, including closed beta and real-device testing.

Read the full story: from Swift to Kotlin →

Product

More from the app

Add puzzles
Add puzzles
Analytics
Analytics
Completed
Completed
Light and dark
Light & dark

Built with

Tech stack

Native Android frameworks first, with Firebase for the shared collector backend.

Lang

Kotlin

Native Android foundation for the app layer. Platform-first code without a cross-platform wrapper.

UI

Jetpack Compose

Declarative Android UI for catalog, collection, scan, and stats flows that feel native on every screen size.

Camera

CameraX

Camera pipeline behind barcode scanning, so opening Scan goes straight to a live viewfinder.

Scan

ML Kit

On-device barcode recognition so a box can enter your collection without typing titles.

Cloud

Firebase

Sync, accounts, Groups, and Following across devices, shared with the iOS app.

Images

Coil

Efficient image loading for catalog art and collection covers without blocking the UI.

Async

Coroutines

Structured concurrency for scans, sync, and UI work so collectors stay in flow.

Theme

Material 3

Light and dark system theming with Android-native interaction patterns throughout the app.

Flow

Navigation Compose

Typed navigation between catalog, scan, collection, Following, and statistics.

Journey

Milestones

Key moments in JVH Puzzle’s path on Google Play.

Updates

Changelog

  • Sort by release year (newest / oldest)
  • Groups toolbar, location search, and Discover
  • Time stats include manual completion times
  • Combo box add handles duplicates one-by-one
  • Type values directly in manual time fields
  • Change email in Account Management
  • Update screen via Remote Config
  • Timer and completion time fixes
  • Adjust Time on Android (manual puzzle time)
  • Major internal optimization
  • New internal EAN linking system
  • Scan improvements: — More reliable and extensive scans thanks to the new internal EAN system
  • Fix for duplicate article numbers
  • Advent calendar feature now on Android
  • "Missing pieces" option when adding
  • The large puzzle-piece icon shown when starting a puzzle has been removed
  • Active puzzles are now indicated with a subtle orange border
  • This border disappears automatically when the puzzle is completed
  • Piece-count display has been improved
  • Added a Cancel button in the Edit flow
  • Android back button now works correctly in this flow
  • All barcodes are now processed correctly
  • The app can reliably retrieve information from the website again
  • HTML parsing is robust and accepts valid variations in page structure
  • Update 1
  • You can now indicate if a puzzle has been lent out
  • Sections now show the number of puzzles in clear labels, so you can immediately see how many puzzles are in…
  • Via Settings, you can now export a complete overview of all puzzles in your collection
  • When starting a puzzle, you can now choose whether to begin with a timer or without a timer
  • You can now indicate if a puzzle has missing pieces, how many there are, and add a note about it
  • Various bug fixes and improvements
  • Camera / Scanner Issue Fixed
  • The known camera issue has been resolved
  • Wrong View & Missing Options Fixed
  • After fixing the camera, sometimes the wrong view was shown — this has now been corrected
  • All new features and improvements that are in the iOS update have now also been added to Android
  • Focus for Future Updates
  • Closed beta feedback and improvements
  • Closed beta feedback and improvements
  • Closed beta feedback and improvements
  • Closed beta feedback and improvements
  • Closed beta feedback and improvements
  • Closed beta feedback and improvements
  • Closed beta feedback and improvements
  • Closed beta feedback and improvements
  • This version primarily includes beta feedback and improvements
  • Welcome to JVH Puzzle for Android! This is the first release of the Android version, bringing the complete…
  • Access to the full database of 1000+ Jan van Haasteren puzzles with series, artist, and piece count data bu…
  • Quickly add puzzles to your collection by scanning barcodes using your device camera
  • Track your puzzle collection with real-time sync across all your Android devices using Firebase
  • Built with Jetpack Compose and Material Design 3 for a native Android experience that feels smooth and resp…