Skip to content

Yashgugaliya/ScreenShot

Repository files navigation

Screenshot Viewer and OCR

Overview A simple Android app that provides a seamless experience for viewing and managing screenshots. The app leverages modern Android development principles and integrates Google ML Kit for OCR and image labeling. It follows the MVVM architecture, uses Hilt for dependency injection, Room for local data storage, and employs Kotlin Coroutines for asynchronous programming.

Features

  • Image Sync
    • Automatically syncs images from the device's screenshot gallery.
    • Utilizes Android's Content Provider to fetch and display images.
  • Text Recognition with Google's ML Kit
    • Implements Google's ML Kit for on-device text recognition (OCR).
    • Populates the description field in the 'Screenshot Details' page with OCR data extracted from the selected image.
  • Image Labeling
    • Uses Google's ML Kit for on-device image labeling.
    • Collections in the app are based on the labels generated from image labeling.
  • User-Friendly UI
    • Horizontal image strip for easy navigation.
    • Full image preview on the 'Screenshot Details' page.
    • Intuitive design for a smooth user experience.

Built With 🛠

  • Kotlin - First class and official programming language for Android development.
  • Coroutines - For asynchronous and more..
  • Google ML Kit - For OCR and Image Labeling.
  • Hilt - Hilt provides a standard way to incorporate Dagger dependency injection into an Android application.
  • Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
    • LiveData - Data objects that notify views when the underlying database changes.
    • ViewModel - Stores UI-related data that isn't destroyed on UI changes.
    • ViewBinding - Generates a binding class for each XML layout file present in that module and allows you to more easily write code that interacts with views.
    • Room - SQLite object mapping library.
  • Material Components for Android - Modular and customizable Material Design UI components for Android.

Package Structure

com.example.screenshot  # Root Package

├── data                # For data handling.
│   ├── local           # Local Persistence Database. Room (SQLite) database   
│   └── model           # Model classes
|
├── di                  # Dependency Injection
├── repository          # Single source of data.           
├── util                # Utility Classes / Kotlin extensions  
├── view                # Activity/View layer
│   ├── activity        # Activity layer
│   ├── adaptor         # Adaptor View 
│   ├── bottomsheet     # BottomSheet layer
│   └── fragments       # Fragments layer
|
├── viewmodel           # ViewHolder for RecyclerView
└── app                 # Application Class

Architecture

This app uses MVVM (Model View View-Model) architecture.

About

A simple Android app that provides a seamless experience for viewing and managing screenshots.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages