Splinge is a Kotlin Multiplatform application designed to help you split expenses among friends, family, or travel groups. It features a modern Compose Multiplatform UI and works seamlessly on both Android and iOS.
- Group Management: Create multiple groups for different trips or occasions.
- Expense Tracking: Add expenses, specify who paid, and who the expense was for.
- Flexible Splitting: Split expenses equally among group members.
- Smart Debt Simplification: Choose between basic splitting and a "Smart" algorithm that minimizes the number of transactions needed to settle up.
- Multi-Currency Support: Set different currencies (€, $, £) for each group.
- PayPal Integration: Quickly open PayPal 'Scan Me' links to settle debts.
- Report Sharing: Generate and share detailed expense reports via system share sheets.
- Dark Mode Support: Full support for system dark and light themes.
This is a Kotlin Multiplatform project targeting Android and iOS.
composeApp/src/commonMain/kotlin/org/oltionzefi/splinge/
├── model/ # Data classes: Group, Member, Expense, Split, Transaction
├── logic/ # Pure business logic: SplitCalculator
├── navigation/ # Screen sealed class (all app destinations)
├── ui/
│ ├── components/ # Reusable Composables (dialogs, …)
│ ├── screens/ # Full-screen Composables (one file per screen)
│ └── theme/ # SplingeTheme, colour schemes
└── util/ # Stateless helpers: ShareUtil, number formatting
composeApp/src/androidMain/— Android entry point (MainActivity) andPlatformimplementation.composeApp/src/iosMain/— iOS entry point (MainViewController) andPlatformimplementation.iosApp/— Xcode project and SwiftUI wrapper for the shared Compose UI.
# macOS / Linux
./gradlew :composeApp:assembleDebug
# Windows
.\gradlew.bat :composeApp:assembleDebugOpen the iosApp/ directory in Xcode and run, or use the IDE run configuration.
Contributions are welcome! Please read CONTRIBUTING.md for guidelines on branching, code style, and how to add new screens.
See CHANGELOG.md for a history of notable changes.
Splinge is released under the MIT License.
Learn more about Kotlin Multiplatform.