New
Apps 1,520Makers 1,518This week 1,520
Promote your app−30%
Suuudokuuu screenshot 1
0views in
the last 30 days

Stand With Ukraine

Suuudokuuu

Sudoku game to help Ukraine win the war against russia.

Unique. modern, open source React Native / Expo Sudoku game with a lot of features.

Feel free to create an issue, feature request or pull request if you have any suggestions or ideas.

Play now! Do not hesitate

Play directly in your browser! Download on the App Store Download on the Play Market

Play directly in your browser!]

Features

Monorepo architecture

Project is using a monorepo approach with TurboRepo to manage multiple packages in a single repository.

Internalization(i18n)

The app supports multiple languages, which is detected by expo-localization including:

  • Ukrainian
  • English
  • French
  • German
  • Spanish

i18n is implemented using Lingui library

App versioning and release management

The app uses semantic versioning to manage versions with conventional commits meaning each commit and pull request has a strict format, which allows to generate beautiful changelogs and release notes automatically.

A github PR workflow has a step to validate the PR title using commitlint to ensure that the PR title follows the conventional commits format.

Users can automatically see current app version on home page using expo-constants

Native versions

App uses fingerprint runtimeVersion policy ensure that expo-updates are applied to the correct version of the app.

To automate user-facing app version app.cofig.js takes it from the package.json file of the app package, which is updated automatically by lerna.

Expo tutorial on app versioning

Release management

The app uses lerna to manage versions of the packages in the monorepo, generate changelogs for each package if it was changed, and create Github releases.

Enterprise-grade CI/CD

EAS over the air updates are used to deliver the PRs and production updates to the users, 2 channels are used:

  • development - for the pull requests
  • production - for the master branch

All changes are represented as pull requests, each pipeline runs:

These strict rules ensure that the code is of high quality, secure, and maintainable. Also this is very helpful for Copilot and other AI tools

Pull requests

Each pull request creates an EAS preview for the iOS, Android and Web platforms, all info is published as comments to the PR, and web deployment is created.

Master branch

Each commit to the master branch:

  • creates an EAS OTA update for the iOS, Android and Web production platforms.
  • creates a new GitHub release with the changelog for the release

Production Web is hosted on Vercel, maybe we will migrate to EAS hosting when it becomes stable.

Each commit

AppStore and Google Play

Special manual GitHub Workflow is used to build and publish the app to the stores.

For the iOS app is published ti the TestFlight, for the Play Market it is published to the internal testing track.

Then after manual review the app can be published to the production track.

Internal distribution and testing

For testing on real devices special manual GitHub Workflow is used to build the app for internal distribution.

You need to register your device in the Expo dashboard to be able to install the development build.

Register your IOS device

Auto-candidates

The app supports auto-candidates mode, which allows you to fill the candidates automatically based on the current state of the board.

Web keyboard support

Use your arrow keys to navigate through the Sudoku board, press any number 1-9 to fill the cell.

Tab activates auto-candidate mode

Sharing puzzles

You can share the current puzzle with your friends via a link, which will open the app with the same puzzle, score, mistakes and timer.

Expo - Sharing

Expo - Linking

Expo - Router

Theming support

You can switch between light and dark themes, OS/Browser theme is detected automatically initially.

React navigation theming

React native - Appearance

React native - useColorTheme

Universal links

Sharing a link to https://suuudokuuu.com/ will open the app on your device if it is installed, otherwise it will open the web version of the app.

Expo iOS Universal Links

Expo - Android Linking

Expo - iOS Linking

Animation

The app uses react-native-reanimated for smooth animations and transitions.

Cell text animations are implemented using single SharedValue to optimize the performance, prop flag triggers the animation.

Packages

  • app - React Native / Expo application package
  • generator - Sudoku puzzle generator
  • app-tests - Maestro tests for the app package

Acknowledgements

Our Hell and Infinity difficulty levels stand on data curated by the wider Sudoku community over many years. Huge thanks to:

  • t-dillon/tdoku for the puzzles2_17_clue dataset (BSD 2-Clause licensed) behind our Hell-difficulty corpus, and to Gordon Royle of the University of Western Australia, who originally compiled the 17-clue collection; it was later completed and proven exhaustive by champagne, blue, and other members of the Enjoy Sudoku forum.
  • The Enjoy Sudoku forum community and champagne, who compiled the "hardest sudokus" database behind most of our Infinity-difficulty corpus.
  • Arto Inkala, creator of Everest and AI Escargot, and the Enjoy Sudoku forum authors behind Golden Nugget, Kolk, Patience, Discrepancy, Fata Morgana, Cigarette, Imam Bayildi, Red Dwarf, Second Flush, Silver Plate, First Peak, and Platinum Blonde, the named world-record puzzles that round out our Infinity level.
  • Nicolas Juillerat, creator of Sudoku Explainer, and the Enjoy Sudoku forum's Patterns Game community, whose SE rating methodology our difficulty scale follows.

License

Suuudokuuu is licensed under the O'SAASY License — an MIT-style license with one condition: you may not offer the Software itself as a competing hosted or SaaS product. Learn more at osaasy.dev.

Description taken from the repository README.

Ratings

–
0 ratings
5 0
4 0
3 0
2 0
1 0

Rate this app

Sign in to rate

Comments 0

Sign in to comment

No comments yet.

Related apps

#sudoku · #games