pokedex-jc.mp4
This project is a comprehensive Pokemon application developed using Kotlin, Java, and Gradle. It provides a rich set of features for Pokemon enthusiasts to explore and interact with a complete database.
-
Kotlin: The primary language used for developing the application. Kotlin is a statically typed, modern language that runs on the JVM, which makes it a perfect choice for Android development.
-
Gradle: The build automation tool used for managing dependencies, compiling the project, and more. Gradle helps to automate and manage the build process, making it easier to handle large projects with complex dependencies.
-
Room: A persistence library that provides an abstraction layer over SQLite. It simplifies database operations and ensures that all queries are checked at compile time, reducing the likelihood of runtime SQL errors.
-
Coroutines: A Kotlin feature for handling concurrency in a more direct and intuitive way. Coroutines simplify asynchronous programming by making the code look more like a sequence of synchronous steps.
-
GraphQL: A query language for APIs and a runtime for executing those queries with your existing data. It provides a more efficient data fetching process compared to traditional REST APIs.
-
Ktor: A framework for building asynchronous servers and clients in connected systems. It's highly customizable and allows you to build applications with just what you need, without any additional overhead.
-
Coil: An image loading library for Android backed by Kotlin Coroutines. Coil is lightweight, fast and easy to use, making it an excellent choice for image loading in our application.
-
Paging 3: A library that helps you load and display small chunks of data at a time. It supports both local (Room) and remote (network) data sources, providing a seamless user experience, even as data updates.
-
Compose Navigation: A navigation component built specifically for Jetpack Compose. It provides a simple and idiomatic way to implement navigation in your Compose application.
-
Hilt: A dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project. Hilt is built on top of the popular DI library Dagger to benefit from the compile-time correctness, runtime performance, scalability, and Android Studio support that Dagger provides.
-
Material 3: The next evolution of Material Design, implemented in Jetpack Compose. Material 3 includes updated components, new color theming capabilities, and more, to help you quickly and easily build beautiful Android apps.
-
Search Pokemon: Users can search for their favorite Pokemon using this feature. The search functionality is optimized to deliver fast and accurate results with predictive completion.
-
Filter Pokemon: This feature allows users to filter Pokemon based on various criteria such as type, abilities, and more. It helps users to narrow down their search and find the exact Pokemon they're looking for.
-
Order Pokemon: Users can order Pokemon based on different attributes such as name, type, etc. This feature helps users to organize their search results in a way that suits their preferences.
-
Pokemon Details: Clicking on a Pokemon will take the user to a detailed page where they can find comprehensive information about the Pokemon. This includes stats, abilities, evolutions, and more.
To get a local copy up and running, follow these simple steps:
- Clone the repository to your local machine.
- Open the project in Android Studio Hedgehog | 2023.1.1 Patch 1 or any IDE that supports Android development.
- Run the application on an emulator or a physical device.
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.
Sylvain - @Goudurixx
Project Link: https://github.com/Goudurixx/pokedex-JC/tree/main