Photo Slice Native is an Android-first Expo / React Native arcade prototype inspired by Xonix, where each level is built from a random photo on the device.
The project focuses on a tactile cut-and-reveal loop: the player slices into a hidden image, avoids moving hazards, and gradually opens the photo by capturing safe areas.
- mobile-first single-screen gameplay prototype
- random level photos loaded from the media library
- demo backdrop fallback when photo access is unavailable
- five difficulty levels:
Sunny,Cloudy,Stormy,Blizzard,Apocalypse - hazard counts per difficulty:
3,4,5,6,8 - moving cursor that travels along the hidden area perimeter
- tap-driven
90degree turns while a cut is active - per-difficulty counters for completed photo openings
- local sound effects for reveal and hazard clear events
- EAS build profiles for preview APK and production AAB outputs
- Expo
- React Native
- TypeScript
- local asset-based audio
- GitHub Actions CI for type checking
npm install— install dependenciesnpm run start— start the Expo dev servernpm run android— build and run the Android app locallynpm run ios— build and run the iOS app locallynpm run web— launch the web previewnpm run prebuild— regenerate native Expo projectsnpm run typecheck— runtsc --noEmitnpm run apk— create an Android preview build through EASnpm run aab— create a production Android App Bundle through EAS
- tap the field to send the cursor into the hidden area
- while a cut is active, each next tap turns it by
90degrees toward the tap side - if a hazard touches the cut before it closes, the attempt fails
- when a cut reaches the boundary, the smaller captured area is revealed
- hazards inside the revealed area are removed
- when all hazards are cleared, the photo is fully opened and the run continues on a new random image
cd /Users/valeryazartsov/photo-slice-nativenpm installnpm run android
- Android package:
com.valeryazartsov.photoslicenative - Expo slug:
photo-slice-native - TypeScript-only codebase
- CI validates type checking on push and pull request
Project-level updates are tracked in CHANGELOG.md.