Skip to content

Commit 578328f

Browse files
committed
Update architecture
1 parent b605f1f commit 578328f

File tree

3 files changed

+20
-2
lines changed

3 files changed

+20
-2
lines changed

README.md

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
</p>
1717

1818
## Tech stack & Open-source libraries
19+
1920
- Minimum SDK level 21.
2021
- [Kotlin](https://kotlinlang.org/) based, utilizing [Coroutines](https://github.com/Kotlin/kotlinx.coroutines) + [Flow](https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/) for asynchronous operations.
2122
- Jetpack Libraries:
@@ -34,9 +35,11 @@
3435

3536
## Runing This Project on Your Side
3637

37-
1. First things first, download the following JSON file on your local PC: [Gist: JSON demo for Timeline UI](https://gist.github.com/skydoves/16267ebe987c6246d917814440f03aac).
38+
You can run this project on your side following the guidelines below:
3839

39-
</details>
40+
<details>
41+
42+
1. First things first, download the following JSON file on your local PC: [Gist: JSON demo for Timeline UI](https://gist.github.com/skydoves/16267ebe987c6246d917814440f03aac).
4043

4144
2. Following the [Firebase setup guidelines](https://firebase.google.com/docs/android/setup), download the **google-services.json** and place it into the `app` directory on this project.
4245

@@ -54,7 +57,22 @@ REALTIME_DATABASE_URL=https://server-driven-compose-default-rtdb.asia-southeast1
5457

5558
5. Build the project.
5659

60+
</details>
61+
62+
## Component Versioning
63+
64+
**Server Driven Compose** demonstrates a versioning system for each component and how to synchronize them with the application in real-time.
65+
66+
<img src="preview/gif1.gif"/>
67+
5768
## Architecture
69+
70+
**Server Driven Compose** fetches data from Firebase Realtime Database and makes it an observable flow in the data layer. The presentation layer then takes this data and assembles it into components, which are formatted to be consumed by UIs as composable functions.
71+
72+
![architecture](figure/arch.png)
73+
74+
### Design Patterns
75+
5876
**Server Driven Compose** adheres to the MVVM architecture and implements the Repository pattern, aligning with [Google's official architecture guidance](https://developer.android.com/topic/architecture).
5977

6078
The architecture of **Server Driven Compose** is structured into two distinct layers: the UI layer and the data layer. Each layer fulfills specific roles and responsibilities, outlined as follows:

figure/arch.png

69.4 KB
Loading

preview/gif1.gif

1020 KB
Loading

0 commit comments

Comments
 (0)