Pixo is a small demo application based on Modern Android application tech-stacks and mix MVVM & MVI Architecture.
This project is for focusing especially on the Jetpack Libraries like Hilt for dependency injection and Paging 3.
Also fetching data from the network via repository pattern.
- Minimum SDK level 21
- Kotlin based, Coroutines + Flow for asynchronous.
- Animations (Shared element transitions - Fade in/out)
- JetPack
- LiveData - notify domain layer data to views.
- Lifecycle - dispose of observing data when lifecycle state changes.
- ViewModel - UI related data holder, lifecycle aware.
- Hilt (alpha) for dependency injection.
- Paging 3 - load and display pages of data from a larger dataset.
- Navigation - (save args) for navigation between fragments.
- Databinding - (bind adapters) to bind UI components in layouts to data sources.
- KTX - Provide concise, idiomatic Kotlin to Jetpack, Android platform, and other APIs.
- Architecture
- MVI Architecture (Model - View - Intent)
- MVVM Architecture (View - Model - Model - View)
- Android Unidirectional Data Flow - Kotlin Flow
- Repository pattern
- Retrofit2 & OkHttp3 - construct the REST APIs and paging network data.
- Gson - A JSON library for Kotlin and Java.
- Glide - loading images.
- Timber - logging.
- Material-Components - Material design components like ripple animation, cardView.
Pixo is based on MVI & MVVM architecture and a repository pattern.
Pixo using the Pixabay API for constructing RESTful API.
Pixabay API provides a RESTful API interface to highly detailed objects built from thousands of lines of data related to Images.
Used Ui/UX designs from Dribbble by Raviteja Bandila
Support it by joining stargazers for this repository. ⭐
And follow me for my next creations! 🤩
Designed and developed by 2021 Muhammad Farhan
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.