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.
- 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.mp4
- Jetpack Compose for UI
- Koin for Dependency Injection
- Ktor for Networking
- MVVM + Clean Architecture: Domain/usecase, repository, remote/data, and UI layers
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
-
Clone the repo:
git clone https://github.com/yourusername/ObjectDetect.git cd ObjectDetect
-
Open in Android Studio (Giraffe or newer recommended).
-
Set up your Roboflow API key and workflow endpoint:
- Edit
KtorObjectDetectionApi.kt
and replace the API key and endpoint with your own from Roboflow.
- Edit
-
Build and run on your device or emulator.
- API Key:
Set your Roboflow API key inKtorObjectDetectionApi
. - Image Size Limit:
Images are resized to a max of 2048x2048 before upload.
- Jetpack Compose
- Koin
- Ktor
- Kotlinx Serialization
- Timber for logging