https://github.com/numq/stash
Android Jetpack Compose Clean Architecture file sharing application client
https://github.com/numq/stash
android android-client android-compose arrow-kt clean-architecture coil-compose event-driven-architecture file-sharing koin okhttp3 qrcode-scanner screaming-architecture websockets zxing-qrcode
Last synced: 6 months ago
JSON representation
Android Jetpack Compose Clean Architecture file sharing application client
- Host: GitHub
- URL: https://github.com/numq/stash
- Owner: numq
- License: mit
- Created: 2022-07-14T19:48:37.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2024-03-28T21:35:27.000Z (over 1 year ago)
- Last Synced: 2025-03-25T12:21:33.813Z (7 months ago)
- Topics: android, android-client, android-compose, arrow-kt, clean-architecture, coil-compose, event-driven-architecture, file-sharing, koin, okhttp3, qrcode-scanner, screaming-architecture, websockets, zxing-qrcode
- Language: Kotlin
- Homepage:
- Size: 221 KB
- Stars: 7
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Stash
Android file sharing application client
**See also:**
[Compose Desktop: client & embedded server](https://github.com/numq/stash-desktop)
[React Electron: client & embedded server](https://github.com/numq/stash-electron)
## Architecture
- **Clean Architecture**
- **Domain driven design**
- **Reactive programming**
- **Functional programming** *- monadic error handling, pipeline, clean functions (side effects
control)*
- **Screaming architecture** *(features)*
- **MVVM**
- **Unidirectional Data Flow** *(state reduction)*## Structure

Data layer:
- **Socket client**
Domain layer:
- **Entities (```File```, ```Folder```, etc.)**
- **Interactors (```Start sharing```, ```Share file```, etc.)**
- ```FileRepository```
- ```FolderRepository```
- ```TransferService```Framework:
- **DI**
- **Context dependent components (OS services, etc.)**
- **Navigation**
- **Presentation (viewModels, screens)**## Features:
- **Folder sharing mode**
- **Offline mode**
- **Share file** *(if sharing)*
- **Remove file** *(if sharing)*
- **Download file**
- **Show image content**
- **Show file details** *(carousel)*
- **Files selection**
- **Selected files actions**
- **Download multiple files as ZIP**
- **Auto reconnection**
- **Interactive download notifications**## Tech:
- **Android**
- **Kotlin**
- **Jetpack Compose**
- **ArrowKT**
- **Koin DI**
- **Java WebSocket**