Sitelet https://github.com/john-athan/minesweeper
Skip to content

Repository files navigation

Minesweeper

A Minesweeper for Android that looks like a first-party app, asks for nothing, and plays differently by difficulty.

No ads. No permissions. No analytics. No internet. Just the game.

Get it on F-Droid

Live on F-Droid as of v1.2. The update bot picks up new tags on its own schedule, so v1.3 can lag the GitHub release for a while.


Every other Minesweeper on Android is either a privacy nightmare stuffed with ads and trackers, or a bare-bones port that looks like it was built in 2009. This one is neither.

Built from scratch with Jetpack Compose and Material 3, it looks and feels like a first-party Google app. Material You dynamic colour adapts the entire palette to your wallpaper on Android 12+. Spring physics, ripple flood-fill animations, screen shake on game over.

The three built-in difficulty modes are mechanically distinct, not just bigger grids:

  • Easy, 9×9, classic rules, guaranteed safe first click
  • Medium, 12×12, higher mine density, 5-minute countdown, only your clicked cell is safe at the start
  • Hard, 14×14, safe on the tapped cell only, no chord reveal, 3-minute countdown, fog of war, revealed cells fade out after 6 seconds and you must hold the mine map in your head

Fog of war is a novel mechanic that doesn't exist in any other Minesweeper app. It turns a memory game into a memory game.

Past the three presets there is a Custom mode: pick a grid anywhere from 5×5 to 20×20, set the mine count, and switch fog of war and safe-start on or off independently. No countdown, chord stays on, custom is about layout, not time pressure.

The grid always fills the screen. Cells scale to any device. No zooming, no tiny tap targets.

Best time and win count are tracked per preset (Easy, Medium, Hard) and shown in the win/lose banner, stored locally with plain Android SharedPreferences.

A flag mode toggle above the board swaps tap and long-press: tap flags an unrevealed cell, long-press reveals it.


Screenshots

Medium mode in-game Hard mode, fog of war Game over


Building

Requirements: JDK 17+, Android SDK 35, Gradle (wrapper included).

git clone https://github.com/john-athan/minesweeper
cd minesweeper
./gradlew assembleDebug
# APK → app/build/outputs/apk/debug/app-debug.apk

Release build (unsigned):

./gradlew assembleRelease

Tech stack

Layer Technology
Language Kotlin 2.4.20
UI Jetpack Compose (BOM 2025.07.00)
Design system Material 3
Dynamic colour Material You (Android 12+)
Build AGP 9.4.1, Gradle 9.7.1
Min SDK 21 (Android 5.0)

All dependencies are Apache 2.0 licensed (AndroidX / Jetpack). No third-party libraries, no trackers, no network calls of any kind.


License

GPL-3.0-or-later, see LICENSE.

About

Modern Minesweeper for Android: Compose and Material 3, fog of war, countdown timers. No permissions, no internet, no ads. GPL-3.0.

Topics

Resources

Contributing

Security policy

Stars

12 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages