An open API service indexing awesome lists of open source software.

https://github.com/nicosnicolaou16/carousel_compose

The open source project is implement the new Carousel with Material 3 with Jetpack Compose.
https://github.com/nicosnicolaou16/carousel_compose

android carousel compose coroutines-android hilt-dependency-injection-android jetpack-compose kotlin kotlin-android material material-3 material-3-design material-design material-ui pokedex pokemon room-database shared-element-transition

Last synced: 11 months ago
JSON representation

The open source project is implement the new Carousel with Material 3 with Jetpack Compose.

Awesome Lists containing this project

README

          

# Carousel Compose

The open-source project implements the new Carousel with Material 3 using Jetpack Compose and
provides two examples: `HorizontalUncontainedCarousel` and `HorizontalMultiBrowseCarousel`.

> [!IMPORTANT]
> Check my article :point_right: [Carousel Jetpack Compose with Material 3 - Medium](https://medium.com/@nicosnicolaou/carousel-jetpack-compose-with-material-3-ca048d35278c) :point_left:

# Examples



# The Project Contain the following technologies

[Carousel Material 3 Jetpack Compose](https://developer.android.com/reference/kotlin/androidx/compose/material3/carousel/package-summary)
refers to a horizontally scrollable list that allows users to swipe through content such as images
or cards. It is part of the Material Design system and integrates well with Compose’s declarative UI
approach.

The programming language is the [Kotlin](https://kotlinlang.org/docs/getting-started.html), it is a
modern, JVM-based programming language that is concise, safe, and interoperable with Java.

[Kotlin Coroutines](https://kotlinlang.org/docs/coroutines-overview.html) is used for asynchronous
tasks.

[Kotlin KTX](https://developer.android.com/kotlin/ktx) is a collection of Kotlin extensions that
offer more concise and expressive code for working with Android APIs and libraries.
The UI is build using [Jetpack Compose](https://developer.android.com/develop/ui/compose).

[Retrofit](https://square.github.io/retrofit/) is responsible for making requests and retrieving
data from the remote server. ([Repository](https://github.com/square/retrofit))

[Room Database](https://developer.android.com/training/data-storage/room) is responsible for saving
the retrieved data from the remote server, querying data from the local database, and supporting
offline functionality.

[KSP](https://developer.android.com/build/migrate-to-ksp) ("Kotlin Symbol Processing") is a tool for
efficient annotation processing in Kotlin, providing faster code generation and symbol manipulation
compared to KAPT. [Repository](https://github.com/google/ksp)

[Coil](https://coil-kt.github.io/coil/compose/) for Jetpack Compose is a library that it is
responsible for loading the images
asynchronous. ([Coil Documentation](https://coil-kt.github.io/coil/), [Repository](https://github.com/coil-kt/coil))

[Hilt Dependencies Injection](https://developer.android.com/training/dependency-injection/hilt-android)
is an Android library that simplifies dependency injection by using annotations to automatically
manage and provide dependencies across components, built on top of
Dagger. ([Documentation](https://dagger.dev/hilt/))

[MVVM](https://developer.android.com/topic/architecture#recommended-app-arch) with repository is an
architecture where the Repository manages data sources (e.g., network, database), the ViewModel
processes the data for the UI, and the View displays the UI, ensuring a clear separation of
concerns.

For Navigation between screens is use
the [New Navigation Type Safety](https://medium.com/androiddevelopers/navigation-compose-meet-type-safety-e081fb3cf2f8).

[UI State](https://developer.android.com/topic/architecture/ui-layer/events#handle-viewmodel-events)
to initial, loading, loaded and error.

# Versioning

Target SDK version: 35

Minimum SDK version: 28

Kotlin version: 2.1.21

Gradle version: 8.10.1

# Feeds/Urls/End Point (parsing some data from the response)

## (Links References for Ends Points)

https://pokeapi.co/

https://github.com/PokeAPI/sprites (GitHub)

# References

https://developer.android.com/reference/kotlin/androidx/compose/material3/carousel/package-summary