Companion article: Exploring Paging Library from Jetpack
This project contains a sample of using the Paging Library Architecture Component by way of a simple Notes app--no domain knowledge needed to understand the purpose of this app.
- Paging Library
- Room Persistence Library
- Navigation Architecture Component
- Lifecycle Architecture component
- Dagger Android 2.17 or Koin
- RxJava
The app follows Clean Architecture Principles to make it cleaner, more readable and maintainable.
- Separate layers: Data, Domain, Presentation and UI
- MVVM architecture for clean separation between UI and Presentation and below
- Repository pattern
- Mapping model between data and domain (
NoteEntity
andNote
)
- master -- common setup with no paging used
- room-livedata -- paging using
LiveData
and defaultDataSource
- room-rxjava -- paging using
RxJava
and defaultDataSource
- room-livedata-custom-datasource -- paging using
LiveData
and customItemKeyedDataSource
- room-livedata-custom-datasource-koin -- paging using
LiveData
and customItemKeyedDataSource
with Koin
Copyright 2018 James Shvarts
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.