Skip to content

Android app to search GitHub repos via GraphQL and view details like stars, forks, issues, and releases. Built with Jetpack Compose and MVVM.

Notifications You must be signed in to change notification settings

llleodeleon/GitExplorer

Repository files navigation

GitExplorer

DeepWiki

GitExplorer is a modern Android application designed to explore GitHub repositories. It provides a seamless search experience and detailed insights into repositories, leveraging the power of GitHub's GraphQL API.

Project Overview

The app allows users to search for any public GitHub repository and view essential details such as its description, owner, and more. Built with a focus on clean architecture and modern Android development practices, GitExplorer offers a responsive and intuitive user interface.

Showcase

Search Screen Repository Details Empty State

Tech Stack

  • Language: Kotlin
  • UI Framework: Jetpack Compose with Material 3 for a modern, adaptive design.
  • Data Source: Apollo GraphQL for type-safe and efficient communication with the GitHub GraphQL API.
  • Architecture: MVVM (Model-View-ViewModel) for a clear separation of concerns and maintainable code.
  • Image Loading: Coil for fast and lightweight image loading.
  • Functional Programming: Arrow for robust error handling and functional patterns.
  • Concurrency: Kotlin Coroutines for asynchronous programming.
  • Dependency Management: Gradle Version Catalog for centralized and consistent dependency versions.
  • Extras:

Getting Started

Prerequisites

  • Android Studio Ladybug or newer.
  • A GitHub Personal Access Token (classic) with public_repo scope.

Configuration

To run the project, you need to provide your GitHub API key.

  1. Create a local.properties file in the root directory (if it doesn't exist).
  2. Add your GitHub API key:
    GITHUB_API_KEY=your_github_personal_access_token_here

Installation

  1. Clone the repository.
  2. Open the project in Android Studio.
  3. Sync the project with Gradle files.
  4. Run the app module on an emulator or a physical device.

Testing

The project includes unit tests to ensure the reliability of the business logic and ViewModel states.

  • Unit Tests: Run via ./gradlew test
  • Instrumentation Tests: Run via ./gradlew connectedAndroidTest

Developed with ❤️ by Leo Deleon

About

Android app to search GitHub repos via GraphQL and view details like stars, forks, issues, and releases. Built with Jetpack Compose and MVVM.

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages