https://github.com/uditbhaskar/objectdetect
ObjectDetect is an Android App that lets users select a gallery image and run cloud-based object detection using a Roboflow workflow. It displays both the original and processed images with bounding boxes, supports full-screen viewing with zoom and pan, and features a modern UI built with Jetpack Compose, Ktor, and Koin in a clean architecture.
https://github.com/uditbhaskar/objectdetect
android android-application clean-architecture coroutines-android dependency-injection jetpack-compose jetpack-navigation koin-injection koltin-android kotlin kotlin-flow ktor machine-learning mlkit-android mvvm-android object-detection roboflow-dataset tdd
Last synced: about 2 months ago
JSON representation
ObjectDetect is an Android App that lets users select a gallery image and run cloud-based object detection using a Roboflow workflow. It displays both the original and processed images with bounding boxes, supports full-screen viewing with zoom and pan, and features a modern UI built with Jetpack Compose, Ktor, and Koin in a clean architecture.
- Host: GitHub
- URL: https://github.com/uditbhaskar/objectdetect
- Owner: uditbhaskar
- License: mit
- Created: 2025-06-10T17:28:28.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-23T04:20:33.000Z (12 months ago)
- Last Synced: 2025-06-23T05:25:51.454Z (12 months ago)
- Topics: android, android-application, clean-architecture, coroutines-android, dependency-injection, jetpack-compose, jetpack-navigation, koin-injection, koltin-android, kotlin, kotlin-flow, ktor, machine-learning, mlkit-android, mvvm-android, object-detection, roboflow-dataset, tdd
- Language: Kotlin
- Homepage:
- Size: 138 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ObjectDetect
ObjectDetect is a modern Android app that lets users select an image from their gallery and perform cloud-based object detection using a Roboflow workflow. The app displays both the original and processed images (with bounding boxes), supports full-screen viewing with zoom and pan, and is built with Jetpack Compose, Ktor, and Koin, utilizing Clean Architecture with MVVM.
---
## Features
- Select a photo from the gallery.
- Cloud object detection via Roboflow workflow API.
- View both original and detected images side by side.
- Full-screen image viewing with pinch-to-zoom and pan support.
- Modern Material3 UI with gradients and cards.
- Clean, testable architecture with Koin DI and Ktor networking.
---
## 📹 Demo
https://github.com/user-attachments/assets/772ca950-f742-4f55-b264-63f53444c7fd
---
## Architecture
- **Jetpack Compose** for UI
- **Koin** for Dependency Injection
- **Ktor** for Networking
- **MVVM + Clean Architecture**: Domain/usecase, repository, remote/data, and UI layers
---
## Project Structure
```
app/
core/model/ # Data models (request/response)
data/remote/ # API interfaces and implementations
data/repository/ # Repository interfaces and implementations
di/ # Dependency injection modules
domain/usecase/ # Use case interfaces and implementations
presentation/ # ViewModels and Compose screens
util/ # Utility functions and constants
```
## Getting Started
1. **Clone the repo:**
```bash
git clone https://github.com/yourusername/ObjectDetect.git
cd ObjectDetect
```
2. **Open in Android Studio** (Giraffe or newer recommended).
3. **Set up your Roboflow API key and workflow endpoint:**
- Edit `KtorObjectDetectionApi.kt` and replace the API key and endpoint with your own from [Roboflow](https://roboflow.com/).
4. **Build and run on your device or emulator.**
## 🛠️ Configuration
- **API Key:**
Set your Roboflow API key in `KtorObjectDetectionApi`.
- **Image Size Limit:**
Images are resized to a max of 2048x2048 before upload.
## Dependencies
- [Jetpack Compose](https://developer.android.com/jetpack/compose)
- [Koin](https://insert-koin.io/)
- [Ktor](https://ktor.io/)
- [Kotlinx Serialization](https://github.com/Kotlin/kotlinx.serialization)
- [Timber](https://github.com/JakeWharton/timber) for logging