Skip to content

Commit 07c4bc4

Browse files
authored
Merge pull request #38 from realAleksha/release/1.4.0
release (1.4.0)
2 parents c5aa772 + bafc96d commit 07c4bc4

File tree

156 files changed

+1646
-1375
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

156 files changed

+1646
-1375
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,12 +157,12 @@ The generated project will include a similar table in its README.MD file, but wi
157157
| Base Setup | Material 3 | [Link](docs/Base%20Setup/Material%203/overview.md) | - | [Link](docs/Base%20Setup/Material%203/usage.md) |
158158
| Base Setup | Koin | [Link](docs/Base%20Setup/Koin/overview.md) | - | - |
159159
| Base Setup | Gradle (Kotlin DSL) | [Link](docs/Base%20Setup/Gradle%20%28Kotlin%20DSL%29/overview.md) | - | - |
160+
| Data Flows | Ktor HTTP Client | [Link](docs/Data%20Flows/Ktor%20HTTP%20Client/overview.md) | - | [Link](docs/Data%20Flows/Ktor%20HTTP%20Client/usage.md) |
160161
| Data Flows | Korlibs Crypto Library | [Link](docs/Data%20Flows/Korlibs%20Crypto%20Library/overview.md) | - | [Link](docs/Data%20Flows/Korlibs%20Crypto%20Library/usage.md) |
161162
| Data Flows | Basic Cache API | [Link](docs/Data%20Flows/Basic%20Cache%20API/overview.md) | - | [Link](docs/Data%20Flows/Basic%20Cache%20API/usage.md) |
162163
| Data Flows | Basic Config API | [Link](docs/Data%20Flows/Basic%20Config%20API/overview.md) | - | [Link](docs/Data%20Flows/Basic%20Config%20API/usage.md) |
163164
| Data Flows | SQLDelight | [Link](docs/Data%20Flows/SQLDelight/overview.md) | - | [Link](docs/Data%20Flows/SQLDelight/usage.md) |
164165
| Data Flows | SQLite (Jetpack Room) | [Link](docs/Data%20Flows/SQLite%20%28Jetpack%20Room%29/overview.md) | - | [Link](docs/Data%20Flows/SQLite%20%28Jetpack%20Room%29/usage.md) |
165-
| Data Flows | Ktor HTTP Client | [Link](docs/Data%20Flows/Ktor%20HTTP%20Client/overview.md) | - | [Link](docs/Data%20Flows/Ktor%20HTTP%20Client/usage.md) |
166166
| Data Flows | Multiplatform Paging Library | [Link](docs/Data%20Flows/Multiplatform%20Paging%20Library/overview.md) | - | [Link](docs/Data%20Flows/Multiplatform%20Paging%20Library/usage.md) |
167167
| Data Flows | Basic Analytics API | [Link](docs/Data%20Flows/Basic%20Analytics%20API/overview.md) | - | [Link](docs/Data%20Flows/Basic%20Analytics%20API/usage.md) |
168168
| Data Flows | Gemini AI | [Link](docs/Data%20Flows/Gemini%20AI/overview.md) | - | [Link](docs/Data%20Flows/Gemini%20AI/usage.md) |
@@ -179,11 +179,11 @@ The generated project will include a similar table in its README.MD file, but wi
179179
| User Flows | Toggle Theme Button | [Link](docs/User%20Flows/Toggle%20Theme%20Button/overview.md) | - | [Link](docs/User%20Flows/Toggle%20Theme%20Button/usage.md) |
180180
| User Flows | Auth Flow | [Link](docs/User%20Flows/Auth%20Flow/overview.md) | - | [Link](docs/User%20Flows/Auth%20Flow/usage.md) |
181181
| User Flows | Passcode Flow | [Link](docs/User%20Flows/Passcode%20Flow/overview.md) | - | [Link](docs/User%20Flows/Passcode%20Flow/usage.md) |
182-
| User Flows | Placeholder UI | [Link](docs/User%20Flows/Placeholder%20UI/overview.md) | - | [Link](docs/User%20Flows/Placeholder%20UI/usage.md) |
183182
| User Flows | FileKit | [Link](docs/User%20Flows/FileKit/overview.md) | - | [Link](docs/User%20Flows/FileKit/usage.md) |
184183
| Dev Tools | kotlin-logging | [Link](docs/Dev%20Tools/kotlin-logging/overview.md) | - | [Link](docs/Dev%20Tools/kotlin-logging/usage.md) |
185184
| Dev Tools | Kermit | [Link](docs/Dev%20Tools/Kermit/overview.md) | - | [Link](docs/Dev%20Tools/Kermit/usage.md) |
186185
| Dev Tools | Napier | [Link](docs/Dev%20Tools/Napier/overview.md) | - | [Link](docs/Dev%20Tools/Napier/usage.md) |
186+
| Dev Tools | Compose Hot Reload | [Link](docs/Dev%20Tools/Compose%20Hot%20Reload/overview.md) | - | [Link](docs/Dev%20Tools/Compose%20Hot%20Reload/usage.md) |
187187
| Guides | README.md | [Link](docs/Guides/README.md/overview.md) | - | - |
188188
| Guides | Feature Showcases | [Link](docs/Guides/Feature%20Showcases/overview.md) | - | - |
189189
| Guides | Feature Template | [Link](docs/Guides/Feature%20Template/overview.md) | - | [Link](docs/Guides/Feature%20Template/usage.md) |

docs/Base Setup/Material 3/usage.md

Lines changed: 35 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,40 +6,62 @@
66
- State management: `shared.presentation.theme.ThemeState`
77
- Integration config: `app.theme.ThemeConfig`
88

9-
This state instance is utilized by `app.theme.provide.presentation.ThemeProvider`, which is pre-defined at the app level to furnish themes for the entire application.
9+
This state instance is utilized by `app.theme.provide.presentation.ThemeProvider`, which is pre-defined at the app level
10+
to furnish themes for the entire application.
1011

1112
```kotlin
1213
@Composable
1314
fun App() = ViewModelProvider({ app() }) {
14-
ThemeProvider {
15-
AppScreen()
15+
ThemeProvider {
16+
AppScreen()
17+
}
1618
}
17-
}
1819
```
1920

2021
## Change Themes
2122

22-
By default, `ThemeState` is initialized with pre-defined dark and light themes in the `presentation` module. To edit these themes:
23+
By default, `ThemeState` is initialized with pre-defined dark and light themes in the `app.theme` package of `app`
24+
module.
25+
26+
```kotlin
27+
val theme = module {
28+
single<ThemeState> {
29+
DefaultThemeState(
30+
defaultConfig = ThemeConfig(
31+
defaultTheme = DsThemes.Light,
32+
lightTheme = DsThemes.Light,
33+
darkTheme = DsThemes.Dark,
34+
)
35+
)
36+
}
37+
}
38+
```
39+
40+
The themes itself are declared in `shared:presentation` module as part of the **design system**.
41+
42+
To edit these themes:
2343

2444
1. Visit the [Material 3 Theme Builder](https://m3.material.io/theme-builder#/custom).
2545
2. Customize the desired color theme.
2646
3. Click on the **Export** button and confirm exporting as **Jetpack Compose (Theme.kt)**.
27-
4. Paste the exported files (**Theme.kt** and **Color.kt**) into the package `shared.presentation.theme.m3` of the `presentation` module and update their package declaration accordingly.
28-
5. In the `Themes.kt` file add the following snippet:
47+
4. Paste the exported files (**Theme.kt** and **Color.kt**) into the package `shared.presentation.ui.theme.m3` of the
48+
`shared:presentation` module and update their package declaration accordingly.
49+
5. In the `shared.presentation.ui.theme.DsThemes` file add the following snippet:
2950
```kotlin
30-
object Themes {
31-
val Light = Theme(
51+
object DsThemes {
52+
val Light = DsTheme(
3253
dark = false,
33-
id = "material_3_light",
54+
id = "light",
3455
colorScheme = lightScheme
3556
)
3657

37-
val Dark = Theme(
58+
val Dark = DsTheme(
3859
dark = true,
39-
id = "material_3_dark",
60+
id = "dark",
4061
colorScheme = darkScheme
4162
)
4263
}
4364
```
4465

45-
The themes can be declared directly in the app module. However, if you plan to use feature modules, it might be beneficial to declare the theme in the `presentation` module.
66+
The themes can be declared directly in the `app` module. However, if you plan to use feature modules, it might be
67+
beneficial to declare the theme in the `shared:presentation` module.

docs/Data Flows/Multiplatform Paging Library/usage.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class BasicPagingViewModel(pagingSource: PagingSource) : BaseViewModel() {
2525
@Composable
2626
fun BasicPagingScreen() {
2727
val viewModel: BasicPagingViewModel = provideViewModel()
28-
AppPagingList(
28+
DsPagingList(
2929
pager = viewModel.pager,
3030
itemContent = {
3131
ItemBlock(item = it)
@@ -35,6 +35,6 @@ fun BasicPagingScreen() {
3535

3636
@Composable
3737
private fun ItemBlock(item: String?) {
38-
AppText(text = item.orEmpty())
38+
DsText(text = item.orEmpty())
3939
}
4040
```
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# About
2+
3+
Make changes to your UI code in a Compose Multiplatform application and see the results in real time. No restarts required. Compose Hot Reload runs your application on the JetBrains Runtime and intelligently reloads your code whenever it is changed.
4+
5+
# Links
6+
7+
- [Official Site](https://github.com/JetBrains/compose-hot-reload)
8+
- [Integration Guide](https://github.com/JetBrains/compose-hot-reload?tab=readme-ov-file#getting-started)
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Usage
2+
3+
## Overview
4+
5+
The plugin is pre-configured in the `app` module.
6+
7+
To start your app in **Hot Reload** mode, simply run:
8+
9+
```
10+
./gradlew :app:runHot
11+
```

docs/User Flows/Adaptive Navigation/usage.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,22 +33,22 @@ class NavigationViewModel : BaseViewModel() {
3333
route = ARoute,
3434
onRoute = onRoute,
3535
label = "Page A",
36-
activeIcon = AppIcons.wineBar,
37-
inactiveIcon = AppIcons.wineBar,
36+
activeIcon = DsIcons.wineBar,
37+
inactiveIcon = DsIcons.wineBar,
3838
),
3939
createItem(
4040
route = BRoute,
4141
onRoute = onRoute,
4242
label = "Page B",
43-
activeIcon = AppIcons.localDrink,
44-
inactiveIcon = AppIcons.localDrink,
43+
activeIcon = DsIcons.localDrink,
44+
inactiveIcon = DsIcons.localDrink,
4545
),
4646
createItem(
4747
route = CRoute,
4848
onRoute = onRoute,
4949
label = "Page C",
50-
activeIcon = AppIcons.coffee,
51-
inactiveIcon = AppIcons.coffee,
50+
activeIcon = DsIcons.coffee,
51+
inactiveIcon = DsIcons.coffee,
5252
)
5353
)
5454
...

docs/User Flows/Bottom Navigation/usage.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,22 +33,22 @@ class NavigationViewModel : BaseViewModel() {
3333
route = ARoute,
3434
onRoute = onRoute,
3535
label = "Page A",
36-
activeIcon = AppIcons.wineBar,
37-
inactiveIcon = AppIcons.wineBar,
36+
activeIcon = DsIcons.wineBar,
37+
inactiveIcon = DsIcons.wineBar,
3838
),
3939
createItem(
4040
route = BRoute,
4141
onRoute = onRoute,
4242
label = "Page B",
43-
activeIcon = AppIcons.localDrink,
44-
inactiveIcon = AppIcons.localDrink,
43+
activeIcon = DsIcons.localDrink,
44+
inactiveIcon = DsIcons.localDrink,
4545
),
4646
createItem(
4747
route = CRoute,
4848
onRoute = onRoute,
4949
label = "Page C",
50-
activeIcon = AppIcons.coffee,
51-
inactiveIcon = AppIcons.coffee,
50+
activeIcon = DsIcons.coffee,
51+
inactiveIcon = DsIcons.coffee,
5252
)
5353
)
5454
...

docs/User Flows/Coil Image Library/usage.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ The usage guide is best described in the official component [documentation](http
66

77
The inclusion of this component adds the dependency on this component and provides some general examples of how it can be used.
88

9-
In addition, it also extends the behaviour of the design component `AppIcon` with an extra model. See the example below.
9+
In addition, it also extends the behavior of the design component `DsIcon` with an extra model. See the example below.
1010

1111
## Example
1212

1313
```kotlin
14-
AppIcon(
14+
DsIcon(
1515
model = UrlModel("https://picsum.photos/id/1/200/300")
1616
)
1717
```

docs/User Flows/Dismissible Navigation/usage.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,22 +33,22 @@ class NavigationViewModel : BaseViewModel() {
3333
route = ARoute,
3434
onRoute = onRoute,
3535
label = "Page A",
36-
activeIcon = AppIcons.wineBar,
37-
inactiveIcon = AppIcons.wineBar,
36+
activeIcon = DsIcons.wineBar,
37+
inactiveIcon = DsIcons.wineBar,
3838
),
3939
createItem(
4040
route = BRoute,
4141
onRoute = onRoute,
4242
label = "Page B",
43-
activeIcon = AppIcons.localDrink,
44-
inactiveIcon = AppIcons.localDrink,
43+
activeIcon = DsIcons.localDrink,
44+
inactiveIcon = DsIcons.localDrink,
4545
),
4646
createItem(
4747
route = CRoute,
4848
onRoute = onRoute,
4949
label = "Page C",
50-
activeIcon = AppIcons.coffee,
51-
inactiveIcon = AppIcons.coffee,
50+
activeIcon = DsIcons.coffee,
51+
inactiveIcon = DsIcons.coffee,
5252
)
5353
)
5454
...

docs/User Flows/FileKit/usage.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## Overview
44

5-
**Component**: `shared.presentation.ui.component.AppFilePicker`
5+
**Component**: `shared.presentation.ui.component.DsFilePicker`
66
**Showcases**: `app.showcases.presentation.userflow.component.filepicker`
77

88
The component provides a general facade to abstract the underlying framework, allowing for easier replacement or modification in the future.
@@ -11,25 +11,25 @@ The component provides a general facade to abstract the underlying framework, al
1111

1212
```kotlin
1313
@Composable
14-
fun AppFilePickerUsage() {
14+
fun DsFilePickerUsage() {
1515
val filePicker = getFileLauncher(onResult = { files ->
1616
// process the selected files
1717
})
18-
AppElevatedButton(text = "Select files", onClick = filePicker::launch)
18+
DsElevatedButton(text = "Select files", onClick = filePicker::launch)
1919

2020
val imagesPicker = getImageLauncher(onResult = { images ->
2121
// process the selected images
2222
})
23-
AppElevatedButton(text = "Select images", onClick = imagesPicker::launch)
23+
DsElevatedButton(text = "Select images", onClick = imagesPicker::launch)
2424

2525
val videoPicker = getVideoLauncher(onResult = { videos ->
2626
// process the selected videos
2727
})
28-
AppElevatedButton(text = "Select videos", onClick = videoPicker::launch)
28+
DsElevatedButton(text = "Select videos", onClick = videoPicker::launch)
2929

3030
val mediaPicker = getMediaLauncher(onResult = { media ->
3131
// process the selected media
3232
})
33-
AppElevatedButton(text = "Select media", onClick = mediaPicker::launch)
33+
DsElevatedButton(text = "Select media", onClick = mediaPicker::launch)
3434
}
3535
```

0 commit comments

Comments
 (0)