Skip to content

AliAzaz/PixabayGalleryApp

Repository files navigation

PixabayGalleryApp

API License: MIT

✨ Image gallery app that consumed Pixabay API ✨

Pic-1   Pic-2   Pic-3
Pic-4   Pic-5

Features

  • Search photos by querying it
  • Populate the latest photos
  • Gallery support pagination
  • Dark/Light Mode
  • GitHub Actions for automation

Architecture

  • Using Modern Android Development practices.
  • Implemented MVVM-Clean Architecture using Usecase, Repository pattern for data, and Hilt for injection.
  • MockK tests are available for several classes.

Security

I have implemented CMake security to secure an API key. Please take a look at my article to learn how to implement it.

Therefore, you can paste the key here in cpp/lib.cpp file and add it in .gitignore file so, it will be secure, or paste the key in the gradle.properties file to fetch it through BuildConfig.

GitHub Actions

There are three GitHub actions available in this project, let me explain each of them:

  • unit_test_workflow.yml, this workflow triggers when any pull request is generated and it runs all available Unit Tests.
  • dispatch_git_artifact_workflow.yml, this workflow triggers when any merging happens at the master branch and it will generate apk and upload it to GitHub Artifacts.
  • manual_dispatch_app_workflow.yml, this is a manual workflow means the user has to start it manually, as it will take these inputs, from which Branch you want to Generate apk and Application type (debug or release) and it will generate apk and upload it to GitHub Artifacts.

How it built

  • Kotlin
  • Flow
  • Retrofit
  • Coroutine
  • MVVM --- M [Repository Pattern] V [Live Data & Data Binding] VM [ViewModel]
  • DI -> Hilt & Dagger2 implementation in branch dagger2-implementation
  • Binding Adapters
  • Material Components
  • MockK Test

CONNECT👍

Connect with me through my socials:

Stackoverflow, Medium, Twitter, and LinkedIn