🕹️ Mobile multiplayer offline card games aggregator 🚀 👨💻 Written 💯 in Dart and Flutter 🔨
The inspiration for “The Deck” came from a situation many of us have experienced. Imagine gathering with friends for a game night, only to realize that nobody has the necessary cards. Frustrating, right? This dilemma sparked the idea of leveraging technology to create a solution.
The primary goal of “The Deck” is to provide a user-friendly and cooperative digital game environment for playing classic games that were usually played with cards on paper. One of the standout features of “The Deck” is its unique ability to assign one device as the “table” (a.k.a. deck). By placing this device in the middle of the group, all players can witness the real-time state of the cards. This adds a new level of immersion making it a truly captivating experience.
- Select a game 📚
- Connect to the room 🔗
- Start game 🚀
![]() |
![]() |
![]() |
- ⚙️ How it works 👀:
- Dev.to
- Medium
- PlantUML diagrams here - /documentation
Contribution is welcome 🤝
If you contributed and build a new Game, ping me if you wish it to be released on the store markets. [email protected]
Use FVM to manage Flutter SDK version
- install
fvm
withbrew
- Setup Flutter version from pubspec
fvm use x.y.z
- Read version here: fvmrc
- run with
fvm flutter run
Naming convention, start commit description with:
- (FEAT) - feature
- (FIX) - bug fix
- (CHORE) - refactoring, updating dependencies, etc
- (TEST) - tests
- For App Store release ⭐️
- fvm flutter build appbundle --release
- Fat APK with all ABI
- fvm flutter build apk --release
- Upload file to Play store
- For split-abi APK testing
- fvm flutter build apk --release --split-per-abi
- Archive for App store upload ⭐️
- fvm flutter build ipa --release
- open file with Xcode, validate and upload
- IPA file to drag & drop into iphone:
- fvm flutter build ipa --release --export-options-plist="/Users/igor.steblii/Projects/foundation_tone/ft_fe/build/ios/archive/Runner.xcarchive/Info.plist"
-
In case VS code fail with missing Cocoapods
-
- fvm flutter clean + fvm flutter pub get + Reload VSCode
-
For
normalize': Unicode Normalization not appropriate for ASCII-8BIT (Encoding::CompatibilityError)
-
Run:
export LC_ALL=en_US.UTF-8
-
for wrong locale
export LANG="en_US.UTF-8
-
Run
locale
if there is anyC
, then runexport LC_ALL=en_US.UTF-8
-
For
flutterfire
script fails with"unhandle JSON exception"
-
Download json/plist form Firebase and update in respective folders (invertase/flutterfire_cli#30)
-
iOS Device require permission to connect to local network, which cannot be access from code. To emulate access query local IP address
-
Another way is to add permission to
Info.plist
to ask on app start: -
- NSLocalNetworkUsageDescription
-
- Access to the local network required to create and connect to game rooms
-
For
Error when reading 'lib/objectbox.g.dart': No such file or directory
-
- Run:
fvm flutter pub run build_runner watch --delete-conflicting-outputs
- Run:
To generate a new Redux template see scripts
This project is licensed under the terms of the MIT license.