https://github.com/nicosnicolaou16/sampleroomdatabase
This is a sample project that uses Room database to display dummy data in a RecyclerView with Data Binding.
https://github.com/nicosnicolaou16/sampleroomdatabase
android android-application coroutines-android databinding-android kotlin kotlin-ktx live-data mvvm mvvm-android mvvm-architecture navigation room room-database
Last synced: 3 months ago
JSON representation
This is a sample project that uses Room database to display dummy data in a RecyclerView with Data Binding.
- Host: GitHub
- URL: https://github.com/nicosnicolaou16/sampleroomdatabase
- Owner: NicosNicolaou16
- Created: 2020-09-06T13:50:20.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2025-04-04T20:58:36.000Z (3 months ago)
- Last Synced: 2025-04-04T21:39:22.226Z (3 months ago)
- Topics: android, android-application, coroutines-android, databinding-android, kotlin, kotlin-ktx, live-data, mvvm, mvvm-android, mvvm-architecture, navigation, room, room-database
- Language: Kotlin
- Homepage:
- Size: 207 KB
- Stars: 7
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Sample Room Database
This is a sample project that uses Room database to display dummy data in a RecyclerView with Data
Binding.# The Project Contain the following technologies
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.
[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.
[Data Binding](https://developer.android.com/topic/libraries/data-binding) in Android lets you link
UI components to data directly in the XML layout. It automatically updates the UI when the data
changes, reducing the need for manual coding and making the app easier to maintain.
[View Binding](https://developer.android.com/topic/libraries/view-binding) in Android is a feature
that automatically generates a binding class for each layout, providing direct access to the views
without using `findViewById()`. It ensures safer, type-checked code by reducing the risk of errors
like `NullPointerException`, making the code simpler and more maintainable.
[Navigation](https://developer.android.com/guide/navigation) in Android manages how users move
between screens. The Navigation Component simplifies this by using a navigation graph to define and
handle navigation paths, back stack management, and data passing between screens.
[Live Data](https://developer.android.com/topic/libraries/architecture/livedata) in Android is a
lifecycle-aware data holder that allows UI components to observe data changes. It automatically
updates the UI when data changes, ensuring updates occur only when the component is in an active
lifecycle state, preventing memory leaks and crashes.
[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.
[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.
[R8](https://developer.android.com/build/shrink-code) enabled, is a code shrinker and obfuscator for
Android that optimizes and reduces the size of APKs by removing unused code and resources, while
also obfuscating the remaining code to improve security.# Versioning
Target SDK version: 35
Minimum SDK version: 28
Kotlin version: 2.1.20
Gradle version: 8.9.1