All Projects → benny-jon → searchi

benny-jon / searchi

Licence: Apache-2.0 License
Demo of PagedListAdapter, PageKeyedDataSource, LiveData, ViewModel in Kotlin

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to searchi

Pursuit-Core-Android
Pursuit Core Android
Stars: ✭ 45 (+246.15%)
Mutual labels:  picasso, dagger2, rxjava2, viewmodel, retrofit2, livedata
DaggerExoPlayer
This repository demonstrates ExoPlayer injection with Dagger2
Stars: ✭ 58 (+346.15%)
Mutual labels:  dagger2, rxjava2, viewmodel, retrofit2, paging-library
Retrokotlin
Simple Android app to show how unit testing with MockWebServer and Architecture Components (ViewModel + LiveData)
Stars: ✭ 55 (+323.08%)
Mutual labels:  dagger2, rxjava2, viewmodel, retrofit2, livedata
GithubApp-android-architecture
Let's learn a deep look at the Android architecture
Stars: ✭ 16 (+23.08%)
Mutual labels:  dagger2, rxjava2, viewmodel, retrofit2, livedata
MockAppMVVM
A sample app structure using the MVVM architecture using Retrofit, Dagger2, LiveData, RxJava, ViewModel and Room.
Stars: ✭ 14 (+7.69%)
Mutual labels:  dagger, rxjava2, viewmodel, retrofit2, livedata
News Sample App
A sample news app which demonstrates clean architecture and best practices for developing android app
Stars: ✭ 334 (+2469.23%)
Mutual labels:  dagger2, rxjava2, viewmodel, retrofit2, livedata
Mvvmarms
Android MVVM Architecture Components based on MVPArms and Android Architecture Components.
Stars: ✭ 425 (+3169.23%)
Mutual labels:  dagger2, rxjava2, viewmodel, retrofit2, livedata
Base Mvvm
App built to showcase basic Android View components like ViewPager, RecyclerView(homogeneous and heterogeneous items), NavigationDrawer, Animated Vector Drawables, Collapsing Toolbar Layout etc. housed in a MVVM architecture
Stars: ✭ 18 (+38.46%)
Mutual labels:  dagger2, rxjava2, viewmodel, retrofit2, livedata
Android-Mvi-Starter
Android MVI Starter application
Stars: ✭ 19 (+46.15%)
Mutual labels:  dagger2, rxjava2, viewmodel, retrofit2, livedata
Android Clean Architecture Mvvm Dagger Rx
Implemented by Clean Architecture, Dagger2, MVVM, LiveData, RX, Retrofit2, Room, Anko
Stars: ✭ 138 (+961.54%)
Mutual labels:  picasso, dagger2, retrofit2, livedata
Newsapp
A Sample News App written in Kotlin using Android Architecture Components, MVVM
Stars: ✭ 179 (+1276.92%)
Mutual labels:  picasso, rxjava2, retrofit2, livedata
Bigbang
Android base project used by Xmartlabs team
Stars: ✭ 47 (+261.54%)
Mutual labels:  dagger, dagger2, rxjava2, retrofit2
Kotlin Android Mvvm Starter
Android Kotlin Starter is a starter project which implements MVVM Pattern.
Stars: ✭ 276 (+2023.08%)
Mutual labels:  picasso, dagger2, rxjava2, retrofit2
Mvpframes
整合大量主流开源项目并且可高度配置化的 Android MVP 快速集成框架,支持 AndroidX
Stars: ✭ 100 (+669.23%)
Mutual labels:  dagger, dagger2, rxjava2, retrofit2
RestaurantsExplorer
Android application build with MVVM Pattern, using Zomato API to enable search cities arround the world and display the city restaurants on a map.
Stars: ✭ 32 (+146.15%)
Mutual labels:  dagger, rxjava2, viewmodel, livedata
Theatre
Pet project using Clean Architecture + MVVM + Reactive Extensions + Android Architecture Components. The data are fetched from LondonTheatreDirect API. 🎭
Stars: ✭ 577 (+4338.46%)
Mutual labels:  dagger, dagger2, rxjava2, viewmodel
Moviehub
Showcases popular movies, tv shows, and people from The Movie Database
Stars: ✭ 325 (+2400%)
Mutual labels:  picasso, dagger2, rxjava2, retrofit2
Hibiscus
Hibiscus, mobile microblogging application.
Stars: ✭ 14 (+7.69%)
Mutual labels:  dagger2, rxjava2, retrofit2, livedata
Sunset-hadith
Islamic app written with Kotlin, using KTOR + coroutines + flow + MVVM + Android Jetpack + Navigation component. Old version using RxJava + Retrofit + OKHttp
Stars: ✭ 26 (+100%)
Mutual labels:  rxjava2, viewmodel, retrofit2, livedata
AndroidCleanArchitecture
Android Project with clean android architecture contain Dagger, Retrofit, Retrofit, Android archtecture components, LiveData with MVVM architecture
Stars: ✭ 22 (+69.23%)
Mutual labels:  dagger2, rxjava2, retrofit2, livedata

Paging V3 Library Demo App in Kotlin

A simple demo app to test out the new Paging V3 Library released by Google as part of the Architectural Components. The app consist of a simple List of infinite amount images displayed in 3 columns, which are loaded base on a search query to the Flickr API.

Screenshot

Running Instrutions

Before running the app, please remember to add your Flick API KEY to the file FlickrApi inside the method getFlickApiKey (Link to File). To get a Flickr API Key follow the instructions of this link.

/**
 * Returns the API KEY used for authentication with the Flickr API.
 */
fun getFlickApiKey() : String {
    return "PASTE_YOUR_FLICKR_API_KEY_HERE"
}

Implementation Details

  • Written 100% in Kotlin.
  • Uses Dagger for dependency injection.
  • Uses Leak Canary to detect Memory Leaks.
  • Uses Picasso for image loading and caching.
  • Uses Retrofit for networking with Gson Converter.
  • Uses Pagination V3 from the Google's Jetpack Components in coordination with Retrofit's Coroutine support.
  • Uses LiveData of a PagingData.
  • Uses PagingSource and PagingDataAdapter.
  • Handles screen rotations by caching the PagingData in the ViewModel Coroutine Scope and onSaveInstanceState.

Architecture

References

License

 Copyright 2022 Benny Jon

 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.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].