CatBreedExplorer is a native Kotlin Multiplatform (Android and iOS) 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.
-
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.
Warning You need a Mac with macOS to write and run iOS-specific code on simulated or real devices. This is an Apple requirement.
To work with this template, you need the following:
- A machine running a recent version of macOS
- Xcode
- Android Studio
- The Kotlin Multiplatform Mobile plugin
- The CocoaPods dependency manager
Before you start, use the KDoctor tool to ensure that your development environment is configured correctly:
-
Install KDoctor with Homebrew:
brew install kdoctor
-
Run KDoctor in your terminal:
kdoctor
If everything is set up correctly, you'll see valid output:
Environment diagnose (to see all details, use -v option): [✓] Operation System [✓] Java [✓] Android Studio [✓] Xcode [✓] Cocoapods Conclusion: ✓ Your system is ready for Kotlin Multiplatform Mobile development!
Otherwise, KDoctor will highlight which parts of your setup still need to be configured and will suggest a way to fix them.
- 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
- SQLDelight - Generates typesafe Kotlin APIs from SQL
- Kamel - Kotlin asynchronous media loading and caching library for Compose
- Decompose - Kotlin Multiplatform library for breaking down your code into lifecycle-aware business logic components (aka BLoC)
- Timber - a logger with a small, extensible API which provides utility on top of Android's normal
Log
class - App Startup - provides a straightforward, performant way to initialize components at application startup
- Immutable Collections Library for Kotlin - Immutable collection interfaces and implementation prototypes for Kotlin
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é.