Jelajahi Sumber

@fun: ProjectScreen

bai 3 tahun lalu
induk
melakukan
40d4ae9fe0

+ 9 - 4
app/build.gradle.kts

@@ -118,10 +118,15 @@ dependencies {
     implementation(Deps.Androidx.Compose)
     implementation(Deps.Lifecycle.Compose)
     implementation(Deps.Navigation.Compose)
-    implementation("com.google.accompanist:accompanist-insets:0.20.3")
-    implementation("com.google.accompanist:accompanist-insets-ui:0.20.3")
-    implementation("com.google.accompanist:accompanist-systemuicontroller:0.20.3")
-    implementation("io.coil-kt:coil-compose:1.4.0")
+
+    // Accompanist
+    implementation(Deps.Accompanist.Insets)
+    implementation(Deps.Accompanist.InsetsUI)
+    implementation(Deps.Accompanist.FlowLayout)
+    implementation(Deps.Accompanist.SystemUiController)
+
+    // Coil
+    implementation(Deps.Coil.Compose)
 
     // test
     testImplementation(Deps.Test.Junit)

+ 2 - 3
app/src/main/java/com/ys/bdtp/adm/App.kt

@@ -10,7 +10,7 @@ import com.google.accompanist.insets.ProvideWindowInsets
 import com.google.accompanist.systemuicontroller.rememberSystemUiController
 import com.ys.bdtp.adm.app.theme.AdmTheme
 import com.ys.bdtp.adm.di.di
-import com.ys.bdtp.adm.mvvm.ui.screen.home.HomeScreen
+import com.ys.bdtp.adm.mvvm.ui.screen.project.ProjectScreen
 import org.kodein.di.compose.onDIContext
 import org.kodein.di.compose.withDI
 
@@ -35,8 +35,7 @@ fun App() = withDI(di(LocalContext.current)) {
                             darkIcons = useDarkIcons,
                         )
                     }
-                    // LoginScreen()
-                    HomeScreen()
+                    ProjectScreen()
                 }
             }
         }

+ 34 - 0
app/src/main/java/com/ys/bdtp/adm/mvvm/ui/compose/Content.kt

@@ -0,0 +1,34 @@
+package com.ys.bdtp.adm.mvvm.ui.compose
+
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.fillMaxHeight
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.padding
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.unit.dp
+import com.google.accompanist.insets.LocalWindowInsets
+import com.google.accompanist.insets.rememberInsetsPaddingValues
+
+@Composable
+fun Content(
+    modifier: Modifier = Modifier.fillMaxWidth().fillMaxHeight()
+        .background(Color.White)
+        .padding(
+            rememberInsetsPaddingValues(
+                LocalWindowInsets.current.navigationBars,
+                additionalStart = 32.dp,
+                additionalEnd = 32.dp, additionalTop = 32.dp,
+                additionalBottom = 12.dp
+            )
+        ),
+    content: @Composable () -> Unit
+) {
+    Column(
+        modifier = modifier
+    ) {
+        content()
+    }
+}

+ 88 - 0
app/src/main/java/com/ys/bdtp/adm/mvvm/ui/compose/Top.kt

@@ -0,0 +1,88 @@
+package com.ys.bdtp.adm.mvvm.ui.compose
+
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.*
+import androidx.compose.material.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.text.font.FontWeight
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import com.google.accompanist.insets.LocalWindowInsets
+import com.google.accompanist.insets.rememberInsetsPaddingValues
+
+@Composable
+fun Top(
+    modifier: Modifier = Modifier.fillMaxWidth()
+        .wrapContentHeight()
+        .background(Color.White)
+        .padding(
+            rememberInsetsPaddingValues(
+                LocalWindowInsets.current.statusBars
+            )
+        ),
+    left: (@Composable () -> Unit)? = null,
+    middle: (@Composable () -> Unit)? = null,
+    right: (@Composable () -> Unit)? = null
+) {
+    Box(
+        modifier = modifier
+    ) {
+        Row(
+            modifier = Modifier
+                .height(56.dp)
+                .fillMaxWidth(),
+            horizontalArrangement = Arrangement.SpaceBetween,
+            verticalAlignment = Alignment.CenterVertically
+        ) {
+            // left
+            left?.invoke()
+
+            // middle
+            middle?.invoke()
+
+            // right
+            right?.invoke()
+
+        }
+    }
+}
+
+@Preview(widthDp = 1280, heightDp = 800)
+@Composable
+fun PreviewTop() {
+    Top(
+        left = { TopLeft() },
+        right = {
+            TopRight(
+                role = { "管家" },
+                click = { println("heiheihei") }
+            )
+        }
+    )
+}
+
+@Preview(widthDp = 1280, heightDp = 800)
+@Composable
+fun PreviewTop1() {
+    Top(
+        left = {
+            Row(
+                verticalAlignment = Alignment.CenterVertically,
+                horizontalArrangement = Arrangement.End
+            ) {
+                Spacer(modifier = Modifier.width(32.dp))
+                Text(text = "禹数数字化交付工具", fontSize = 16.sp, fontWeight = FontWeight.Bold, color = Color(0xFF1F2329))
+            }
+        },
+        right = {
+            TopRight(
+                role = { "管家" },
+                click = { println("heiheihei") }
+            )
+        }
+    )
+}

+ 65 - 0
app/src/main/java/com/ys/bdtp/adm/mvvm/ui/compose/TopLeft.kt

@@ -0,0 +1,65 @@
+package com.ys.bdtp.adm.mvvm.ui.compose
+
+import androidx.compose.foundation.Image
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.*
+import androidx.compose.material.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.text.font.FontWeight.Companion.Bold
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import com.ys.bdtp.adm.R
+
+@Composable
+fun TopLeft() {
+    Row(
+        verticalAlignment = Alignment.CenterVertically,
+        horizontalArrangement = Arrangement.Start
+    ) {
+
+        Spacer(modifier = Modifier.width(32.dp))
+
+        Image(
+            painter = painterResource(R.drawable.arrow_back),
+            contentDescription = "",
+            modifier = Modifier.size(32.dp)
+        )
+
+        Spacer(
+            modifier = Modifier.width(16.dp)
+        )
+
+        Spacer(
+            modifier = Modifier
+                .width(1.dp)
+                .height(24.dp)
+                .background(Color(0xFFD8D8D8))
+        )
+
+        Spacer(
+            modifier = Modifier.width(16.dp)
+        )
+
+        Text(text = "京东", fontSize = 16.sp, fontWeight = Bold, color = Color(0xFF1F2329))
+
+        Spacer(modifier = Modifier.width(16.dp))
+
+        Image(
+            painter = painterResource(R.drawable.arrow_down),
+            contentDescription = "",
+            modifier = Modifier.size(16.dp)
+        )
+    }
+}
+
+
+@Preview
+@Composable
+fun PreviewTopLeft() {
+    TopLeft()
+}

+ 17 - 0
app/src/main/java/com/ys/bdtp/adm/mvvm/ui/compose/TopMiddle.kt

@@ -0,0 +1,17 @@
+package com.ys.bdtp.adm.mvvm.ui.compose
+
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Row
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+
+@Composable
+fun TopMiddle() {
+    Row(
+        verticalAlignment = Alignment.CenterVertically,
+        horizontalArrangement = Arrangement.Start
+    ) {
+
+    }
+
+}

+ 97 - 0
app/src/main/java/com/ys/bdtp/adm/mvvm/ui/compose/TopRight.kt

@@ -0,0 +1,97 @@
+package com.ys.bdtp.adm.mvvm.ui.compose
+
+import androidx.compose.foundation.Image
+import androidx.compose.foundation.background
+import androidx.compose.foundation.clickable
+import androidx.compose.foundation.layout.*
+import androidx.compose.material.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.text.font.FontWeight.Companion.Bold
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import com.ys.bdtp.adm.R
+
+
+@Composable
+fun TopRight(
+    role: () -> String,
+    click: () -> Unit
+) {
+    Row(
+        modifier = Modifier.height(56.dp),
+        verticalAlignment = Alignment.CenterVertically,
+        horizontalArrangement = Arrangement.End
+    ) {
+        Box(
+            modifier = Modifier.size(56.dp).padding(12.dp)
+        ) {
+            Image(
+                painter = painterResource(R.drawable.bell),
+                contentDescription = "",
+                modifier = Modifier.fillMaxSize()
+            )
+
+            Box(
+                modifier = Modifier.size(16.dp).align(Alignment.TopEnd)
+            ) {
+                Image(
+                    painter = painterResource(R.drawable.red_circle),
+                    contentDescription = "",
+                    modifier = Modifier.align(Alignment.Center)
+                )
+                Text(
+                    text = "2",
+                    fontSize = 10.sp,
+                    color = Color.White,
+                    modifier = Modifier.align(Alignment.Center)
+                )
+            }
+        }
+
+        Spacer(modifier = Modifier.width(4.dp))
+        Spacer(
+            modifier = Modifier.width(1.dp).height(24.dp).background(Color(0xFFD8D8D8))
+        )
+        Spacer(modifier = Modifier.width(16.dp))
+        Text(text = role(), fontSize = 16.sp, fontWeight = Bold, color = Color(0xFF1F2329), maxLines = 1)
+        Spacer(modifier = Modifier.width(4.dp))
+
+        Row(
+            modifier = Modifier
+                .height(56.dp)
+                .clickable {
+                    click()
+                }
+                .padding(12.dp),
+            verticalAlignment = Alignment.CenterVertically
+        ) {
+            Image(
+                painter = painterResource(R.drawable.avatar),
+                contentDescription = "",
+                Modifier.size(32.dp)
+            )
+            Spacer(modifier = Modifier.width(8.dp))
+            Image(
+                painter = painterResource(R.drawable.arrow_down),
+                contentDescription = "",
+                modifier = Modifier.size(16.dp)
+            )
+        }
+        Spacer(modifier = Modifier.width(20.dp))
+    }
+}
+
+
+@Preview
+@Composable
+fun PreviewTopRight() {
+    TopRight(
+        role = { "管家" },
+        click = { println("heiheihei") }
+    )
+}

+ 20 - 61
app/src/main/java/com/ys/bdtp/adm/mvvm/ui/screen/home/HomeScreen.kt

@@ -1,84 +1,43 @@
 package com.ys.bdtp.adm.mvvm.ui.screen.home
 
-import androidx.compose.foundation.Image
+import androidx.compose.foundation.ExperimentalFoundationApi
 import androidx.compose.foundation.background
-import androidx.compose.foundation.layout.Arrangement
-import androidx.compose.foundation.layout.Box
-import androidx.compose.foundation.layout.Column
-import androidx.compose.foundation.layout.Row
-import androidx.compose.foundation.layout.Spacer
-import androidx.compose.foundation.layout.fillMaxSize
-import androidx.compose.foundation.layout.fillMaxWidth
-import androidx.compose.foundation.layout.height
-import androidx.compose.foundation.layout.padding
-import androidx.compose.foundation.layout.width
-import androidx.compose.foundation.layout.wrapContentHeight
-import androidx.compose.material.Text
+import androidx.compose.foundation.layout.*
 import androidx.compose.runtime.Composable
-import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.graphics.Color
-import androidx.compose.ui.res.painterResource
 import androidx.compose.ui.tooling.preview.Preview
 import androidx.compose.ui.unit.dp
-import androidx.compose.ui.unit.sp
-import com.google.accompanist.insets.LocalWindowInsets
-import com.google.accompanist.insets.rememberInsetsPaddingValues
-import com.ys.bdtp.adm.R
+import com.ys.bdtp.adm.mvvm.ui.compose.*
+import com.ys.bdtp.adm.mvvm.ui.screen.project.Project
 
+@OptIn(ExperimentalFoundationApi::class)
 @Composable
 fun HomeScreen() {
     Column(modifier = Modifier.fillMaxSize()) {
-        HomeTopBar("京东科技大厦")
-    }
-}
-
-@Composable
-fun HomeTopBar(projectName: String) {
-    Box(
-        modifier = Modifier.fillMaxWidth().wrapContentHeight().background(Color.White).padding(
-            rememberInsetsPaddingValues(
-                LocalWindowInsets.current.statusBars
-            )
-        ),
-    ) {
-        Row(
-            modifier = Modifier.height(56.dp),
-            horizontalArrangement = Arrangement.SpaceBetween,
-            verticalAlignment = Alignment.CenterVertically
-        ) {
-            //Spacer(Modifier.statusBarsHeight())
-            Row(
-                verticalAlignment = Alignment.CenterVertically,
-                horizontalArrangement = Arrangement.Start
-
-            ) {
-                Spacer(modifier = Modifier.width(32.dp))
-                Image(
-                    painter = painterResource(R.drawable.logo),
-                    contentDescription = "",
-                    modifier = Modifier.height(36.dp),
-                )
-                Spacer(modifier = Modifier.width(16.dp))
-                Spacer(modifier = Modifier.height(24.dp).width(1.dp).background(Color(0xFFD8D8D8)))
-                Spacer(modifier = Modifier.width(16.dp))
-                Text(text = projectName, fontSize = 16.sp, color = Color(0xFF1F2329))
-                Spacer(modifier = Modifier.width(16.dp))
-                Image(
-                    painter = painterResource(R.drawable.arrow_down),
-                    contentDescription = ""
+        Top(
+            left = { TopLeft() },
+            right = {
+                TopRight(
+                    role = { "管家" },
+                    click = { println("heiheihei") }
                 )
             }
-        }
+        )
+
         Spacer(
             modifier = Modifier.fillMaxWidth().height(1.dp).background(Color(0xFFEFF0F1))
-                .align(Alignment.BottomCenter)
         )
+
+        Content {
+            Project()
+        }
     }
 }
 
-@Preview
+
+@Preview(widthDp = 1280, heightDp = 800)
 @Composable
 fun PreviewHomeTopBar() {
-    HomeTopBar("京东科技大厦")
+    HomeScreen()
 }

+ 50 - 0
app/src/main/java/com/ys/bdtp/adm/mvvm/ui/screen/project/Project.kt

@@ -0,0 +1,50 @@
+package com.ys.bdtp.adm.mvvm.ui.screen.project
+
+import androidx.compose.foundation.ExperimentalFoundationApi
+import androidx.compose.foundation.layout.*
+import androidx.compose.foundation.lazy.GridCells
+import androidx.compose.foundation.lazy.LazyVerticalGrid
+import androidx.compose.material.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.text.font.FontWeight
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+
+
+@OptIn(ExperimentalFoundationApi::class)
+@Composable
+fun Project() {
+    Column {
+        Text(text = "可进入的项目(10)", fontSize = 20.sp, fontWeight = FontWeight.Bold, color = Color(0xFF1F2329))
+        Spacer(modifier = Modifier.height(12.dp))
+        LazyVerticalGrid(
+            cells = GridCells.Fixed(2),
+        ) {
+            items(20) {
+                if (it % 2 == 0)
+                    Row(modifier = Modifier.padding(end = 10.dp, bottom = 20.dp)) {
+                        ProjectItem()
+                    }
+                else {
+                    Row(modifier = Modifier.padding(start = 10.dp, bottom = 20.dp)) {
+                        ProjectItem()
+                    }
+                }
+            }
+        }
+    }
+}
+
+@Preview(
+    widthDp = 1280,
+    heightDp = 800,
+    showBackground = true,
+    backgroundColor = 0xFFFFFFFF
+)
+@Composable
+fun PreviewProject() {
+    Project()
+}

+ 10 - 31
app/src/main/java/com/ys/bdtp/adm/mvvm/ui/screen/project/ProjectItem.kt

@@ -1,16 +1,8 @@
 package com.ys.bdtp.adm.mvvm.ui.screen.project
 
+import androidx.compose.foundation.BorderStroke
 import androidx.compose.foundation.Image
-import androidx.compose.foundation.background
-import androidx.compose.foundation.border
-import androidx.compose.foundation.layout.Arrangement
-import androidx.compose.foundation.layout.Column
-import androidx.compose.foundation.layout.Row
-import androidx.compose.foundation.layout.Spacer
-import androidx.compose.foundation.layout.fillMaxHeight
-import androidx.compose.foundation.layout.height
-import androidx.compose.foundation.layout.padding
-import androidx.compose.foundation.layout.width
+import androidx.compose.foundation.layout.*
 import androidx.compose.foundation.shape.RoundedCornerShape
 import androidx.compose.material.Card
 import androidx.compose.material.Text
@@ -26,22 +18,17 @@ import com.ys.bdtp.adm.R
 
 @Composable
 fun ProjectItem() {
-
     Card(
         modifier = Modifier
-            .width(570.dp)
-            .height(186.dp)
-            .border(
-                width = 0.5.dp,
-                color = Color(0xFFE5E5E5),
-                shape = RoundedCornerShape(0)
-            )
-            .background(Color.Transparent),
-        shape = RoundedCornerShape(0)
+            .fillMaxWidth()
+            .height(170.dp),
+        backgroundColor = Color.White,
+        shape = RoundedCornerShape(8),
+        border = BorderStroke(1.dp, Color(0xFFE5E5E5)),
+        elevation = 0.dp
     ) {
         Row(
-            modifier = Modifier
-                .padding(start = 28.dp, top = 28.dp, bottom = 28.dp),
+            modifier = Modifier.padding(20.dp),
             verticalAlignment = Alignment.CenterVertically
         ) {
 
@@ -51,7 +38,7 @@ fun ProjectItem() {
                 modifier = Modifier.width(130.dp).height(130.dp)
             )
 
-            Spacer(modifier = Modifier.width(28.dp))
+            Spacer(modifier = Modifier.width(35.dp))
 
             Column(
                 modifier = Modifier.fillMaxHeight(),
@@ -62,15 +49,7 @@ fun ProjectItem() {
                 Text(text = "项目角色:项目管理", color = Color(0xFF1F2429), fontSize = 16.sp)
             }
 
-            Spacer(modifier = Modifier.width(28.dp))
 
-            Column(
-                modifier = Modifier.fillMaxHeight(),
-                verticalArrangement = Arrangement.SpaceAround
-            ) {
-                Text(text = "项目开始时间:?", color = Color(0xFF1F2429), fontSize = 16.sp)
-                Text(text = "项目完成时间:?", color = Color(0xFF1F2429), fontSize = 16.sp)
-            }
         }
     }
 }

+ 21 - 75
app/src/main/java/com/ys/bdtp/adm/mvvm/ui/screen/project/ProjectScreen.kt

@@ -1,96 +1,42 @@
 package com.ys.bdtp.adm.mvvm.ui.screen.project
 
-import androidx.compose.foundation.ExperimentalFoundationApi
 import androidx.compose.foundation.background
-import androidx.compose.foundation.layout.Arrangement
-import androidx.compose.foundation.layout.Column
-import androidx.compose.foundation.layout.PaddingValues
-import androidx.compose.foundation.layout.Row
-import androidx.compose.foundation.layout.Spacer
-import androidx.compose.foundation.layout.fillMaxSize
-import androidx.compose.foundation.layout.fillMaxWidth
-import androidx.compose.foundation.layout.height
-import androidx.compose.foundation.layout.size
-import androidx.compose.foundation.layout.width
-import androidx.compose.foundation.lazy.GridCells
-import androidx.compose.foundation.lazy.LazyVerticalGrid
-import androidx.compose.material.Icon
-import androidx.compose.material.IconButton
-import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.filled.NotificationsNone
-import androidx.compose.material.icons.filled.PanoramaPhotosphere
-import androidx.compose.material.icons.filled.Person
+import androidx.compose.foundation.layout.*
 import androidx.compose.runtime.Composable
-import androidx.compose.runtime.getValue
-import androidx.compose.runtime.mutableStateOf
-import androidx.compose.runtime.remember
-import androidx.compose.runtime.setValue
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.graphics.Color
 import androidx.compose.ui.tooling.preview.Preview
-import androidx.compose.ui.unit.IntSize
 import androidx.compose.ui.unit.dp
+import com.ys.bdtp.adm.mvvm.ui.compose.*
 
-@OptIn(ExperimentalFoundationApi::class)
 @Composable
 fun ProjectScreen() {
-    var size by remember { mutableStateOf(IntSize.Zero) }
-
-    Column(
-        modifier = Modifier.fillMaxSize()
-            .background(Color.DarkGray)
-    ) {
-
-        TopBar()
-
-        LazyVerticalGrid(
-            cells = GridCells.Fixed(2),
-            modifier = Modifier.fillMaxSize(),
-            contentPadding = PaddingValues(32.dp)
-        ) {
-
-            items(5) {
-                ProjectItem()
+    Column(modifier = Modifier.fillMaxSize()) {
+        Top(
+            left = { TopLeft() },
+            right = {
+                TopRight(
+                    role = { "管家" },
+                    click = { println("heiheihei") }
+                )
             }
-        }
-    }
+        )
 
-}
-
-@Composable
-fun TopBar() {
-    Row(
-        modifier = Modifier
-            .fillMaxWidth()
-            .height(48.dp)
-            .background(Color(0xFFFFFFFF)),
-        horizontalArrangement = Arrangement.End
-    ) {
-        IconButton(onClick = {}) {
-            Icons.Default.PanoramaPhotosphere
-            Icon(
-                imageVector = Icons.Default.NotificationsNone,
-                contentDescription = "",
-                modifier = Modifier.size(24.dp),
-                tint = Color(0xFFC3C6CB)
-            )
-        }
+        Spacer(
+            modifier = Modifier.fillMaxWidth().height(1.dp).background(Color(0xFFEFF0F1))
+        )
 
-        IconButton(onClick = {}) {
-            Icons.Default.PanoramaPhotosphere
-            Icon(
-                imageVector = Icons.Default.Person,
-                contentDescription = "",
-                modifier = Modifier.size(24.dp),
-                tint = Color(0xFFC3C6CB)
-            )
+        Content {
+            Project()
         }
-
-        Spacer(modifier = Modifier.width(16.dp))
     }
 }
 
-@Preview
+
+@Preview(
+    widthDp = 1280,
+    heightDp = 800,
+)
 @Composable
 fun PreviewProjectScreen() {
     ProjectScreen()

TEMPAT SAMPAH
app/src/main/res/drawable-hdpi/avatar.png


TEMPAT SAMPAH
app/src/main/res/drawable-hdpi/bell.png


TEMPAT SAMPAH
app/src/main/res/drawable-hdpi/red_circle.png


TEMPAT SAMPAH
app/src/main/res/drawable-xhdpi/bell.png


+ 13 - 0
buildSrc/src/main/kotlin/Build.kt

@@ -142,6 +142,19 @@ object Deps {
         }
     }
 
+    object Accompanist {
+        private const val accompanist = "0.22.0-rc"
+        const val Insets = "com.google.accompanist:accompanist-insets:$accompanist"
+        const val InsetsUI = "com.google.accompanist:accompanist-insets-ui:$accompanist"
+        const val SystemUiController = "com.google.accompanist:accompanist-systemuicontroller:$accompanist"
+        const val FlowLayout = "com.google.accompanist:accompanist-flowlayout:$accompanist"
+    }
+
+    object Coil {
+        private const val coil = "1.4.0"
+        const val Compose = "io.coil-kt:coil-compose:$coil"
+    }
+
     object Test {
         const val Junit = "junit:junit:4.13.2"
     }