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
-
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.
- Clone the
repository:
git clone https://[email protected]/horaciocome1/cat-breed-explorer-android.git
- Open the project in your preferred IDE (requires Android Studio Giraffe | 2022.3.1 Patch 2)
- Install
CMake
andNDK
fromSDK Manager -> SDK Tools
- Ask for
libnative-lib.cpp
- Copy received
libnative-lib.cpp
toapp/src/main/cpp
- Build and run the app on your Android device/emulator.
- 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.
- 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
Contributions are welcome! Please follow these steps if you want to contribute to the project.
- Fork the repository.
- Create a new branch:
git checkout -b feature/new-feature
- Make your changes and commit them:
git commit -m 'Add new feature'
- Push to the branch:
git push origin feature/new-feature
- Submit a pull request.
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.
CatBreedExplorer - Explore the world of cat breeds with this delightful app! 🐾
For more information, contact Horácio Comé.