Skip to content

A native Android app that explores cat breeds using TheCatAPI. Browse a comprehensive list of cat breeds, view their images, origins, and details. Mark your favorites and explore even without an internet connection. Built with love for cat enthusiasts!

License

Notifications You must be signed in to change notification settings

horaciocome1/cat-breed-explorer-android

Repository files navigation

Cat Breed Explorer

GitHub Workflow Status (with event) GitHub Workflow Status (with event) GitHub Workflow Status (with event) GitHub top language GitHub release (with filter) GitHub repo size GitHub code size in bytes GitHub commit activity (branch)

CatBreedExplorer is a native Android app that allows users to explore various cat breeds using TheCatAPI. The app provides a comprehensive list of cat breeds, including images, origins, and detailed information. Users can mark their favorite breeds, search for specific breeds, and even explore offline with locally stored data.

Multiplatform (Android; iOS) -> https://github.com/horaciocome1/cat-breed-explorer-multiplatform

Features

  • Breed List Screen:

    • Display a list of cat breeds with images, names, and origins.
    • Additional information can be viewed for each breed.
    • Search bar to filter breeds by name.
    • Navigate to the Detail screen by selecting a breed.
  • Detail Screen:

    • View detailed information for a selected breed, including image, name, origin, life span, temperament, and description.
    • Option to add/remove the breed from favorites.
  • Favorites Screen:

    • List of favorite cat breeds.
    • Search bar to filter favorite breeds by name.
    • Navigate to the Detail screen by selecting a breed.
  • Offline Functionality:

    • All data is cached locally, allowing the app to function offline.
    • Utilizes local storage to display information when there is no internet connection.

Installation

  1. Clone the repository: git clone https://horaciocome1-admin@bitbucket.org/horaciocome1/cat-breed-explorer-android.git
  2. Open the project in your preferred IDE (requires Android Studio Giraffe | 2022.3.1 Patch 2)
  3. Install CMake and NDK from SDK Manager -> SDK Tools
  4. Ask for libnative-lib.cpp
  5. Copy received libnative-lib.cpp to app/src/main/cpp
  6. Build and run the app on your Android device/emulator.

Usage

  • Browse the list of cat breeds on the Breed List screen.
  • Select a breed to view detailed information on the Detail screen.
  • Add or remove breeds from favorites using the button provided.
  • Explore your favorite breeds with the favorites filter on toolbar.
  • Use the search bar to filter breeds by name on both the Breed List and Favorites screens.

Technologies Used

  • Native Android development (Kotlin)
  • TheCatAPI - for cat breed data
  • Ktor - a framework to easily build connected applications – web applications, HTTP services, mobile and browser applications
  • Kotlin Serialization - provides sets of libraries for all supported platforms – JVM, JavaScript, Native – and for various serialization formats – JSON, CBOR, protocol buffers, and others
  • Kotlin Coroutines - a rich library for coroutines developed by JetBrains
  • Jetpack Compose - recommended modern toolkit for building native UI
  • Material 3 - latest version of Google’s open-source design system
  • Jetpack Room - provides an abstraction layer over SQLite to allow for more robust database access while harnessing the full power of SQLite
  • Jetpack DataStore - a data storage solution that allows you to store key-value pairs or typed objects with protocol buffers
  • Dagger Hilt - provides a standard way to incorporate Dagger dependency injection into an Android application
  • KSP - provides a simplified compiler plugin API that leverages the power of Kotlin while keeping the learning curve at a minimum
  • MockK - mocking library for Kotlin
  • Timber - a logger with a small, extensible API which provides utility on top of Android's normal Log class
  • Compose destinations - processes annotations and generates code that uses Official Jetpack Compose Navigation under the hood
  • Coil - image loading library for Android backed by Kotlin Coroutines
  • CMake - compile and debug native code for your app

Contribution

Contributions are welcome! Please follow these steps if you want to contribute to the project.

  1. Fork the repository.
  2. Create a new branch: git checkout -b feature/new-feature
  3. Make your changes and commit them: git commit -m 'Add new feature'
  4. Push to the branch: git push origin feature/new-feature
  5. Submit a pull request.

License

This project is licensed under the Apache License, Version 2.0 License - see the http://www.apache.org/licenses/LICENSE-2.0 doc for details.

External assets


CatBreedExplorer - Explore the world of cat breeds with this delightful app! 🐾

For more information, contact Horácio Comé.

About

A native Android app that explores cat breeds using TheCatAPI. Browse a comprehensive list of cat breeds, view their images, origins, and details. Mark your favorites and explore even without an internet connection. Built with love for cat enthusiasts!

Resources

License

Stars

Watchers

Forks

Packages

No packages published