https://github.com/avan1235/bring
Shopping list app with live updates, available on all platforms thanks to Kotlin Multiplatform
https://github.com/avan1235/bring
android compose-multiplatform desktop ios kotlin-multiplatform kotlinx-rpc ktor-server shopping-list-app web
Last synced: 13 days ago
JSON representation
Shopping list app with live updates, available on all platforms thanks to Kotlin Multiplatform
- Host: GitHub
- URL: https://github.com/avan1235/bring
- Owner: avan1235
- License: mit
- Created: 2025-03-10T07:20:15.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2026-05-30T20:38:09.000Z (13 days ago)
- Last Synced: 2026-05-30T21:11:36.363Z (13 days ago)
- Topics: android, compose-multiplatform, desktop, ios, kotlin-multiplatform, kotlinx-rpc, ktor-server, shopping-list-app, web
- Language: Kotlin
- Homepage: https://bring.procyk.in
- Size: 21.3 MB
- Stars: 19
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# 🛒 Bring! - A Multiplatform Shopping List App
[](https://bring.procyk.in)
[](https://github.com/avan1235/bring/releases/latest)
[](https://github.com/avan1235/bring/releases/latest)
[](https://github.com/avan1235/bring/actions/workflows/client.yml)
[](https://github.com/avan1235/bring/releases/latest)
[](https://play.google.com/store/apps/details?id=in.procyk.bring)
[](https://hub.docker.com/repository/docker/avan1235/bring/tags?ordering=last_updated)
[](./LICENSE.md)
[](https://github.com/avan1235/bring/stargazers)
[](https://github.com/avan1235/bring/fork)
## 📱 Overview
Bring! is a modern, feature-rich shopping list application built with Kotlin Multiplatform (KMP) and Compose Multiplatform (CMP). It allows users to create, manage, and share shopping lists across multiple platforms with a seamless, native-like experience.
Web version is publicly available at https://bring.procyk.in.
If you like the project, consider supporting it by leaving ⭐.
## 🚀 Features
- ✅ Create and manage shopping lists
- ✅ Import shopping lists data from external websites
- ✅ Generate shopping lists with the help of AI
- ✅ Mark items as favorites for quick access
- ✅ Real-time synchronization across devices
- ✅ Collect all loyalty cards in single place
- ✅ Customizable settings
- ✅ Beautiful, responsive UI
## 🛠️ Technology Stack
### Client
- **Kotlin Multiplatform** - Share code across platforms
- **Compose Multiplatform** - UI framework for all platforms
- **Ktor Client** - HTTP client for API communication
- **KStore** - Cross-platform storage solution
- **Arrow** - Functional programming library
- **Kotlinx Serialization** - JSON/CBOR serialization
- **Kotlinx Coroutines** - Asynchronous programming
- **Kotlinx DateTime** - Cross-platform date/time handling
- **Kotlinx RPC** - Type-safe client-server communication
### Server
- **Ktor Server** - Asynchronous web framework
- **Exposed** - SQL framework for database access
- **PostgreSQL** - Relational database
- **GraalVM** - Native compilation for improved performance
- **Koin** - Dependency injection
- **Kotlinx RPC** - Type-safe client-server communication
## 💻 Supported Platforms
The client application supports:
- 📱 Android
- 🍎 iOS (requires macOS for building)
- 🖥️ Desktop (Windows, macOS, Linux via JVM)
- 🌐 Web (via WebAssembly and JavaScript)
## 🏗️ Project Structure
```
bring
├─ composeApp # Client application code
│ └─ src
│ ├─ androidMain # Android-specific code
│ ├─ commonMain # Shared client code
│ ├─ iosMain # iOS-specific code
│ ├─ jvmMain # Desktop-specific code
│ └─ webMain # Web-specific code
├─ server # Server application code
│ └─ src
│ ├─ main # Server implementation
│ └─ test # Server integration tests
├─ shared # Shared code between client and server
│ └─ src
│ └─ commonMain # Data models, API definitions
└─ shared-client # Client-specific shared code
└─ src
├─ commonMain # API clients, network communication
└─ ... # Platform-specific code
```
## 🚀 Getting Started
### Prerequisites
- JDK 21 or higher
- Docker and Docker Compose (for running the server)
- Android Studio or IntelliJ IDEA (for development)
- Xcode (for iOS development, macOS only)
## 📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
## 👨💻 Author
Maciej Procyk