PexWallpapers is one of my current projects in Jetpack Compose.

Overview

visitors

Welcome to PexWallpapers!

Hi! PexWallpapers is one of my current projects in Jetpack Compose. The app use Pexels.com image library to showpictures/wallpapers in the app. You can browse different categories or just use Search to findsome beautiful wallpapers for your phone. If you add wallpapers to favourites than you can turn on Auto Wallpaper Setter in Settings, to have your phone wallpaper changed every specific periodof time.

Setup

To run app:

  1. git clone repo to Android studio

  2. Get your own Api Key from Pexels.com

  3. Add your own Api Key to gradle.properties in this format

    pex_api_access_key="234f9170000324234012343d044b1a3482ba588"

  4. And run in emulator or on physical device

Stack

  • MVVM architecture
  • Retrofit for pulling data from network
  • Room for persistence
  • Coroutines for threading
  • All Retrofit and Room logic handled in Repository
  • ViewModel handles logic between UI and Repository using Flows and Coroutines
  • Using Coil for fetching images from web
  • Hilt for dependency injection
  • Paging 3 for displaying long Wallpaper lists from web
  • Navigation Component for navigation in an app ofc
  • Data Binding
  • Lottie is used in a SwipeRefreshLayout
  • Shimmer effect for while loading Wallpapers
  • UI testing and Unit testing (in progress)
You might also like...
Jetpack-compose-animations-examples - Cool animations implemented with Jetpack compose
Jetpack-compose-animations-examples - Cool animations implemented with Jetpack compose

Jetpack-compose-animations-examples This repository consists of 4 animations: St

Compose-navigation - Set of utils to help with integrating Jetpack Compose and Jetpack's Navigation

Jetpack Compose Navigation Set of utils to help with integrating Jetpack Compose

Jetpack-compose-uis - A collection of some UIs using Jetpack Compose. built using Katalog

Jetpack Compose UIs This is a collection of some UIs using Jetpack Compose. It i

A simple authentication application using Jetpack compose to illustrate signin and sign up using Mvvm, Kotlin and jetpack compose
A simple authentication application using Jetpack compose to illustrate signin and sign up using Mvvm, Kotlin and jetpack compose

Authentication A simple authentication application using Jetpack compose to illustrate signin and sign up using Mvvm, Kotlin and jetpack compose Scree

An application that i developed with a aim of learning Jetpack compose and many other jetpack libraries
An application that i developed with a aim of learning Jetpack compose and many other jetpack libraries

An application that i developed with a aim of learning Jetpack compose and many other jetpack libraries, The application make use of jikan Api which displays a list of animations,there more details and even trailers of the animations.

A Kotlin library to use Jetpack Compose in Android and iOS. Allow to write UI for both in Kotin. Still experimental as many compose features are not yet available.
A Kotlin library to use Jetpack Compose in Android and iOS. Allow to write UI for both in Kotin. Still experimental as many compose features are not yet available.

Multiplatform Compose A Kotlin library to use Jetpack Compose in Android and iOS. Allow to write UI for both in Kotin. Still experimental as many comp

K5-compose is a sketchy port of p5.js for Jetpack Compose
K5-compose is a sketchy port of p5.js for Jetpack Compose

k5-compose k5-compose is a sketchy port of P5.js for Jetpack Compose Desktop. This library provides you a playground to play with your sketches so you

Jetpack Compose based project, used to stress-testing compose features / integrations and explore non-trivial functionality

Project containing Jetpack Compose samples For pagination & network images it uses CATAAS. Known issues Navigation-Compose Issue with fast tapping on

Pokedex Compose is an independent re-write of a demo application by the name of Pokedex, but written in jetpack compose.
Pokedex Compose is an independent re-write of a demo application by the name of Pokedex, but written in jetpack compose.

Pokedex Compose Pokedex Compose is an independent re-write of a similar project by the name of Pokedex. I am recreating the UI but I am doing it using

Comments
  • Hilt issue / Build Exception

    Hilt issue / Build Exception

    Exception is: org.gradle.api.ProjectConfigurationException: A problem occurred configuring project ':data'. at org.gradle.configuration.project.LifecycleProjectEvaluator.wrapException(LifecycleProjectEvaluator.java:75) at org.gradle.configuration.project.LifecycleProjectEvaluator.addConfigurationFailure(LifecycleProjectEvaluator.java:68) at org.gradle.configuration.project.LifecycleProjectEvaluator.access$400(LifecycleProjectEvaluator.java:51)

    The Hilt Android Gradle plugin is applied but no com.google.dagger:hilt-android dependency was found.` In Data module. Apparently its reported before ..tried to fix it but so far no luck. https://github.com/google/dagger/issues/2661

    opened by ishdemon 3
  • Build failed with an exception.

    Build failed with an exception.

    E:\Github\PexWallpapers\data\build\tmp\kapt3\stubs\debug\com\adwi\data\database\dao\DailyDao.java:17: 警告: The query returns some columns [wallpaperId] which are not used by com.adwi.data.database.domain.WallpaperEntity. You can use @ColumnInfo annotation on the fields to specify the mapping. You can annotate the method with @RewriteQueriesToDropUnusedColumns to direct Room to rewrite your query to avoid fetching unused columns. You can suppress this warning by annotating the method with @SuppressWarnings(RoomWarnings.CURSOR_MISMATCH). Columns returned by the query: wallpaperId, id, height, url, photographer, imageUrl, categoryName, isFavorite, imageUrlPortrait, imageUrlLandscape, imageUrlTiny, updatedAt. Fields in com.adwi.data.database.domain.WallpaperEntity: id, height, url, photographer, imageUrl, categoryName, isFavorite, imageUrlPortrait, imageUrlLandscape, imageUrlTiny, updatedAt. public abstract kotlinx.coroutines.flow.Flow<java.util.List<com.adwi.data.database.domain.WallpaperEntity>> getAllDailyWallpapers(); ^

    E:\Github\PexWallpapers\data\build\tmp\kapt3\stubs\debug\com\adwi\data\database\dao\WallpapersDao.java:61: 警告: The query returns some columns [wallpaperId] which are not used by com.adwi.data.database.domain.WallpaperEntity. You can use @ColumnInfo annotation on the fields to specify the mapping. You can annotate the method with @RewriteQueriesToDropUnusedColumns to direct Room to rewrite your query to avoid fetching unused columns. You can suppress this warning by annotating the method with @SuppressWarnings(RoomWarnings.CURSOR_MISMATCH). Columns returned by the query: wallpaperId, id, height, url, photographer, imageUrl, categoryName, isFavorite, imageUrlPortrait, imageUrlLandscape, imageUrlTiny, updatedAt. Fields in com.adwi.data.database.domain.WallpaperEntity: id, height, url, photographer, imageUrl, categoryName, isFavorite, imageUrlPortrait, imageUrlLandscape, imageUrlTiny, updatedAt. public abstract kotlinx.coroutines.flow.Flow<java.util.List<com.adwi.data.database.domain.WallpaperEntity>> getAllCuratedWallpapers();

                 E:\Github\PexWallpapers\data\build\tmp\kapt3\stubs\debug\com\adwi\data\database\dao\SearchDao.java:17: 警告: The query returns some columns [searchQuery, wallpaperId, queryPosition] which are not used by com.adwi.data.database.domain.WallpaperEntity. You can use @ColumnInfo annotation on the fields to specify the mapping. You can annotate the method with @RewriteQueriesToDropUnusedColumns to direct Room to rewrite your query to avoid fetching unused columns.  You can suppress this warning by annotating the method with @SuppressWarnings(RoomWarnings.CURSOR_MISMATCH). Columns returned by the query: searchQuery, wallpaperId, queryPosition, id, height, url, photographer, imageUrl, categoryName, isFavorite, imageUrlPortrait, imageUrlLandscape, imageUrlTiny, updatedAt. Fields in com.adwi.data.database.domain.WallpaperEntity: id, height, url, photographer, imageUrl, categoryName, isFavorite, imageUrlPortrait, imageUrlLandscape, imageUrlTiny, updatedAt.
    public abstract androidx.paging.PagingSource<java.lang.Integer, com.adwi.data.database.domain.WallpaperEntity> getSearchResultWallpaperPaged(@org.jetbrains.annotations.NotNull()
                                                                                                                   ^                                                                      ^
    
    opened by ChinaVolvocars 1
Owner
Adrian Witaszak
Android developer at Digital Designs
Adrian Witaszak
Formula 1 app to show current Standings from a REST API.Built using jetpack compose and kotlin.

Formula1 Formula 1 app to show Standings fetching data from REST API ?? Screenshots Tech Stack. Kotlin - Kotlin is a programming language that can run

Ezra Kanake 5 Oct 28, 2022
Zoom Modifiers, zoomable image and layouts with limit pan bounds, fling and moving back to valid bounds and callbacks that return current transformation or visible image section

Zoom Modifiers, zoomable image and layouts with limit pan bounds, fling and moving back to valid bounds and callbacks that return current transformation or visible image section

Smart Tool Factory 20 Dec 13, 2022
🚀📱💖Animated LazyColumn/Row changes scale/color with animation and have a current selected item like a Pager. An elegant alternative for selecting from a list

Compose AnimatedList Animated infinite and finite LazyRow and LazyColumn with scale and color animations on scroll change based on how far they are to

Smart Tool Factory 47 Nov 16, 2022
This repos one of the ways hows how to use Jetpack Compose Navigation along with Dagger 2

Dagger 2 and Jetpack Compose Integration This repository is about a way how to use Dagger 2 for projects which using Jetpack Compose. Here is an artic

Alexey Glukharev 10 Nov 16, 2022
Jetpack Compose android app that you can send push notification among devices using KTOR and One Signal

Jetpack Compose android app that you can send push notification among devices using KTOR and One Signal, Clean Architecture, Dependency Injection...

Raheem 2 Nov 15, 2022
Jetpack Compose Boids | Flocking Insect 🐜. bird or Fish simulation using Jetpack Compose Desktop 🚀, using Canvas API 🎨

?? ?? ?? Compose flocking Ants(boids) ?? ?? ?? Jetpack compose Boids | Flocking Insect. bird or Fish simulation using Jetpack Compose Desktop ?? , usi

Chetan Gupta 38 Sep 25, 2022
A collection of animations, compositions, UIs using Jetpack Compose. You can say Jetpack Compose cookbook or play-ground if you want!

Why Not Compose! A collection of animations, compositions, UIs using Jetpack Compose. You can say Jetpack Compose cookbook or play-ground if you want!

Md. Mahmudul Hasan Shohag 186 Jan 1, 2023
Learn Jetpack Compose for Android by Examples. Learn how to use Jetpack Compose for Android App Development. Android’s modern toolkit for building native UI.

Learn Jetpack Compose for Android by Examples. Learn how to use Jetpack Compose for Android App Development. Android’s modern toolkit for building native UI.

MindOrks 382 Jan 5, 2023
This is a sample app(For beginners - App #2) built using Jetpack Compose. It demonstrates the concept of State Hoisting in Jetpack Compose.

JetBMICalculator This is a sample app(For beginners - App #2) built using Jetpack Compose. It demonstrates the concept of State Hoisting in Jetpack Co

BHAVNA THACKER 3 Dec 31, 2022
Jetpack-Compose-Demo - Instagram Profile UI using Jetpack Compose

Jetpack-Compose-Demo Instagram Profile UI using Jetpack Compose

omar 1 Aug 11, 2022