Skip to content

Github Repos App showinng repos and its issues using gethubAPi and retrofiet

Notifications You must be signed in to change notification settings

darsh-7/Github_Repos_App

Repository files navigation

🐙 Github Repos app (Android)

Github Explorer is a sleek Android application built with Kotlin that allows users to effortlessly explore Github repositories, dive into their details, and track related issues. Leveraging the power of the Github API, the app delivers a seamless and informative user experience.

GITHUB API Kotlin Hilt Retrofit Room DataStore Kotlin Coroutines Compose Shimmer

📸 Screenshots

Repos Main Screen Repos Main Screen Shimmer Repo Details screen Repo Details screen with place holder Repo issues screen Repo issues screen Shimmer Error screen Repos main screen with cached deta

✨ Features

  • Repository Browsing: Explore a handpicked collection of interesting Github repositories.
  • Repository Details: Get comprehensive information for each repository:
    • Name, description, owner, stars, forks
    • Complete list of open issues
  • Issue Exploration: View details for open issues within a repository:
    • Title, description, author, creation date, comments
  • Offline Caching: Previously viewed repositories and their details are available offline, thanks to Room persistence.
  • Smooth UI: Experience a responsive and visually appealing interface with delightful Shimmer loading animations.

🚀 Technologies Used

  • Kotlin: Modern and concise programming language for Android development.
  • Kotlin Coroutines: Manage asynchronous operations efficiently.
  • Android Jetpack:
    • Room: Persist repository data locally for offline access.
    • DataStore: Store small amounts of data, like first-time user flags.
    • ViewModel: Manage UI-related data and handle user interactions.
  • Hilt: Streamlined dependency injection framework for Android.
  • Retrofit: Type-safe HTTP client for consuming the Github API.
  • Kotlin Compose: Modern and declarative UI toolkit for building beautiful and responsive interfaces.
  • Shimmer: Add beautiful loading animations to enhance the user experience.
  • SOLID Principles: Adheres to SOLID principles for a robust and maintainable codebase.
  • MVVM (Model-View-ViewModel): Clean architecture pattern for separating concerns and improving testability.

🏗️ Architecture

The app is designed following the MVVM (Model-View-ViewModel) architectural pattern:

  • Model: Data handling logic, including API interactions, data parsing, and database operations.
  • View: UI components responsible for displaying data and capturing user input.
  • ViewModel: Acts as an intermediary between the Model and View, preparing and managing data for the UI.

🛠️ Building and Running

  1. Clone the repository:
    git clone https://github.com/darsh-7/Github_Repos_App.git
  2. Open the project in Android Studio.
  3. Build and run the app on an emulator or physical device.

This project was created as a learning experience to explore and implement modern Android development practices. Feel free to fork, modify, and experiment with the code!