diff --git a/.github/workflows/flutter.yml b/.github/workflows/flutter.yml
index 87361b3..58064f3 100644
--- a/.github/workflows/flutter.yml
+++ b/.github/workflows/flutter.yml
@@ -65,6 +65,8 @@ jobs:
test:
runs-on: macos-latest
+ if: always()
+ needs: [lint, format]
steps:
- uses: actions/checkout@v4
@@ -82,6 +84,7 @@ jobs:
build:
runs-on: macos-latest
if: false # skips job
+ needs: [lint, format, test]
steps:
- uses: actions/checkout@v4
diff --git a/README.md b/README.md
index 43ee104..f3f16cd 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,81 @@


-Mobile app for the card game CABO.
+A mobile score tracker for the card game Cabo, helping players effortlessly manage scores and automatically calculate round results.
-`// todo`
+## 📱 Description
+Cabo Counter is an intuitive Flutter-based mobile application designed to enhance your CABO card game experience. It eliminates manual scorekeeping by automatically calculating points per round.
+
+## ✨ Features
+
+- 🆕 Create new games with customizable rules
+- 👥 Support for 2-5 players
+- ⚖️ Two game modes:
+ - **100 Points Mode** (Standard)
+ - **Infinite Mode** (Casual play)
+- 🔢 Automatic score calculation with:
+ - Kamikaze rule handling
+ - Exact 100-point bonus (score halving)
+- 📊 Round history tracking
+
+## 🚀 Getting Started
+
+### Prerequisites
+- Flutter 3.24.5+
+- Dart 3.5.4+
+
+### Installation
+
+```bash
+git clone https://github.com/flixcoo/Cabo-Counter.git
+cd Cabo-Counter
+flutter pub get
+flutter run
+```
+
+## 🎮 Usage
+
+1. **Start New Game**
+- Choose game mode (100 Points or Infinite)
+- Add 2-5 players
+
+2. **Gameplay**
+- Track rounds with automatic scoring
+- Handle special rules (Kamikaze, exact 100 points)
+- View real-time standings
+
+3. **Round Management**
+- Automatic winner detection
+- Penalty point calculation
+- Game-over detection (100 Points mode)
+
+## 🃏 Key Rules Overview
+
+### Scoring System
+- Round winner: 0 points
+- Other players: Sum of card values
+- Failed Cabo call: +5 penalty points
+- Kamikaze: 0 points for caller, 50 for others
+- Exact 100 points: Score halved
+
+### Game End
+- First player ≥101 points triggers final scoring
+- Lowest total score wins
+
+## 🤝 Contributing
+
+Contributions are welcome! If you'd like to improve Cabo Counter, please:
+- Follow the existing code style and architecture
+- Maintain clean, well-documented code
+- Keep changes focused and test your work
+
+Feel free to open issues or submit pull requests!
+
+## ⚠️ Disclaimer
+
+This project is not affiliated with or endorsed by Smiling Monster GmbH. CABO is a registered trademark of its respective owners. This app is designed for scorekeeping purposes only and does not include actual game components.
+
+---
+
+> 🚀 Powered by Flutter | Developed with 🩵
diff --git a/assets/cabo-counter-logo_rounded.png b/assets/cabo-counter-logo_rounded.png
index e7c440b..68d0a13 100644
Binary files a/assets/cabo-counter-logo_rounded.png and b/assets/cabo-counter-logo_rounded.png differ
diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj
index c268585..804f441 100644
--- a/ios/Runner.xcodeproj/project.pbxproj
+++ b/ios/Runner.xcodeproj/project.pbxproj
@@ -476,7 +476,7 @@
DEVELOPMENT_TEAM = RJB4MM6RVS;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
- INFOPLIST_KEY_CFBundleDisplayName = "CABO Counter";
+ INFOPLIST_KEY_CFBundleDisplayName = "Cabo Counter";
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities";
IPHONEOS_DEPLOYMENT_TARGET = 18.0;
LD_RUNPATH_SEARCH_PATHS = (
@@ -484,11 +484,16 @@
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0.0;
- PRODUCT_BUNDLE_IDENTIFIER = com.flixco.caboCounterApp;
+ PRODUCT_BUNDLE_IDENTIFIER = com.flixcoo.caboCounter;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
+ SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
+ SUPPORTS_MACCATALYST = NO;
+ SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
+ SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = 1;
VERSIONING_SYSTEM = "apple-generic";
};
name = Profile;
@@ -668,7 +673,7 @@
DEVELOPMENT_TEAM = RJB4MM6RVS;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
- INFOPLIST_KEY_CFBundleDisplayName = "CABO Counter";
+ INFOPLIST_KEY_CFBundleDisplayName = "Cabo Counter";
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities";
IPHONEOS_DEPLOYMENT_TARGET = 18.0;
LD_RUNPATH_SEARCH_PATHS = (
@@ -676,12 +681,17 @@
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0.0;
- PRODUCT_BUNDLE_IDENTIFIER = com.flixco.caboCounterApp;
+ PRODUCT_BUNDLE_IDENTIFIER = com.flixcoo.caboCounter;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
+ SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
+ SUPPORTS_MACCATALYST = NO;
+ SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
+ SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = 1;
VERSIONING_SYSTEM = "apple-generic";
};
name = Debug;
@@ -698,7 +708,7 @@
DEVELOPMENT_TEAM = RJB4MM6RVS;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
- INFOPLIST_KEY_CFBundleDisplayName = "CABO Counter";
+ INFOPLIST_KEY_CFBundleDisplayName = "Cabo Counter";
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities";
IPHONEOS_DEPLOYMENT_TARGET = 18.0;
LD_RUNPATH_SEARCH_PATHS = (
@@ -706,11 +716,16 @@
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0.0;
- PRODUCT_BUNDLE_IDENTIFIER = com.flixco.caboCounterApp;
+ PRODUCT_BUNDLE_IDENTIFIER = com.flixcoo.caboCounter;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
+ SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
+ SUPPORTS_MACCATALYST = NO;
+ SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
+ SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = 1;
VERSIONING_SYSTEM = "apple-generic";
};
name = Release;
diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/cabo-counter-logo_rounded 1.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/cabo-counter-logo_rounded 1.png
index e7c440b..68d0a13 100644
Binary files a/ios/Runner/Assets.xcassets/LaunchImage.imageset/cabo-counter-logo_rounded 1.png and b/ios/Runner/Assets.xcassets/LaunchImage.imageset/cabo-counter-logo_rounded 1.png differ
diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/cabo-counter-logo_rounded 2.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/cabo-counter-logo_rounded 2.png
index e7c440b..68d0a13 100644
Binary files a/ios/Runner/Assets.xcassets/LaunchImage.imageset/cabo-counter-logo_rounded 2.png and b/ios/Runner/Assets.xcassets/LaunchImage.imageset/cabo-counter-logo_rounded 2.png differ
diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/cabo-counter-logo_rounded.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/cabo-counter-logo_rounded.png
index e7c440b..68d0a13 100644
Binary files a/ios/Runner/Assets.xcassets/LaunchImage.imageset/cabo-counter-logo_rounded.png and b/ios/Runner/Assets.xcassets/LaunchImage.imageset/cabo-counter-logo_rounded.png differ
diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist
index 9db35c3..f992151 100644
--- a/ios/Runner/Info.plist
+++ b/ios/Runner/Info.plist
@@ -7,7 +7,7 @@
CFBundleDevelopmentRegion
$(DEVELOPMENT_LANGUAGE)
CFBundleDisplayName
- CABO-Counter
+ Cabo Counter
CFBundleExecutable
$(EXECUTABLE_NAME)
CFBundleIdentifier
@@ -24,6 +24,12 @@
????
CFBundleVersion
$(FLUTTER_BUILD_NUMBER)
+ LSApplicationQueriesSchemes
+
+ https
+ http
+ instagram
+
LSRequiresIPhoneOS
UIApplicationSupportsIndirectInputEvents
@@ -32,14 +38,10 @@
LaunchScreen
UIMainStoryboardFile
Main
+ UIStatusBarHidden
+
UIStatusBarStyle
UIStatusBarStyleDarkContent
- LSApplicationQueriesSchemes
-
- https
- http
- instagram
-
UISupportedInterfaceOrientations
UIInterfaceOrientationPortrait
diff --git a/lib/main.dart b/lib/main.dart
index 53d2f11..9580339 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -21,7 +21,7 @@ class App extends StatelessWidget {
),
),
debugShowCheckedModeBanner: false,
- title: 'CABO-Counter',
+ title: 'Cabo Counter',
home: const MainMenuView(),
);
}
diff --git a/pubspec.yaml b/pubspec.yaml
index 048a6bf..e09b4e3 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
name: cabo_counter
-description: "Mobile app for the card game CABO"
+description: "Mobile app for the card game Cabo"
publish_to: 'none'
version: 0.1.3+63