This Kotlin-based app is designed to simplify your Magic: The Gathering gaming experience by efficiently tracking life totals, commander damage, and offering a range of additional features for smoother gameplay.
- Life Total Tracking: Keep track of life totals for 1-6 players, including an alternate 4 player layout.
- Commander Damage: Easily update and monitor commander damage during gameplay.
- Tracking: Track over 20 types of counters per-player with an additional mana & storm counter option.
- Personalization Settings: Customize the app according to your preferences, with the ability to save and load per-player settings.
- Custom Image Uploading: Take your personalization even further by uploading an image to use as your player background.
- Scryfall API Integration: Browse the catalog of 20,000+ MTG cards to select a card art for your background, see oracle text, and reference rulings.
- Planechase Support: Create & save a planar deck with built-in features such as planeswalking and the planar die.
- Crash protection: App state is saved automatically to storage, allowing for recovery upon a crash or accidental close.
- Utility Functions: Includes coin flipping, dice rolling, first player selection, and tracking the monarchy.
The UI is crafted to be minimal yet intuitive, providing a clear picture of the gamestate from a glance without overwhelming elements.
- Compose Multiplatform: Leveraging the Jetpack Compose framework for efficient and performant UI creation that can be shared across platforms.
- Ktor: Integration with 3rd part APIs over http such as the Scryfall API.
- Koin: Cross-platform compatable dependency injection
- Coil: Asynchronous image loading and caching
- Kotlinx Serialization: Efficient serialization/deserialization of Json.
- Gradle Tracks versions across the multi-module app structure.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. It is assumed you have Git and Android Studio installed. To build and run the iOS app, a macOS device with Xcode installed is required as well.
- Clone the repository to your local machine:
git clone https://github.com/ntietje1/MTG_Life_Total_App.git
- Open the project in Android Studio and allow Gradle to sync.
- Build and run the app on your desired Android emulator or device by either clicking the green play button or running the following command:
./gradlew :shared:installDebug
- Open the xcode project in Xcode.
- When building for iOS, the following command should run automatically, but you may need to run it manually:
./gradlew linkReleaseFrameworkIosArm64
- Build and run the app on your desired iOS simulator or device by clicking the play button in Xcode.
- Official Public Launch: LifeLinked is now available on both the Google Play and IOS App Store.
- Continuous Improvement: Regular updates and addition of new features to enhance user experience.
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.