
公式ドキュメントの解読には骨が折れる。
詳細どんなものが含まれているのか。
Timber ですが、純正 Log でもいけるので置き換えてどうぞ。

公式ドキュメントの解読には骨が折れる。
詳細どんなものが含まれているのか。
Timber ですが、純正 Log でもいけるので置き換えてどうぞ。
指定したURLでWEBブラウザを開くならこう書けます。
@Composable
fun OpenLinkButton(
urlHandler: UriHandler = LocalUriHandler.current
) {
Button(
onClick = {
urlHandler.openUri("https://android.benigumo.com/")
}
) {
Text("Open Web link")
}
}

では、
指定した宛先メールアドレスでメールアプリを開く場合。
@Composable
fun OpenMailAppButton(
urlHandler: UriHandler = LocalUriHandler.current
) {
Button(
onClick = {
urlHandler.openUri("mailto:[email protected]")
}
) {
Text("Open Mail App")
}
}

旧来の Intent は Jetpack Compose では使わないことが多くなってきました!
表示されてるコンテンツまでにいくつかのコンポーネントを経由している。
中心は、NavGraph として利用されている NavHost。
ModalDrawer ごと切り替えてる。
Activity
+ NavHost
+ ModalDrawer
+ 【Screen】
+ Scaffold
+ SwipeRefresh
+ 【Content】
+ ModalDrawer
+ 【Screen】
+ Scaffold
+ SwipeRefresh
+ 【Content】
+ ModalDrawer
+ 【Screen】
+ Scaffold
+ SwipeRefresh
+ 【Content】
きっと、使いやすい理にかなった入れ子関係なのだろう。
Activity
↓
NavHost
↓ 1:*
ModalDrawer
↓
【Screen】
↓
Scaffold
↓
SwipeRefresh
↓
【Content】
参考にしたいですね。
実際、秒、ってことないけども。
まあまあ簡単で見た目も綺麗にできます。
Jetpack Compose Material3 の ListItem を使います。
@Composable
fun ListItem(
headlineContent: @Composable () -> Unit,
modifier: Modifier = Modifier,
overlineContent: (@Composable () -> Unit)? = null,
supportingContent: (@Composable () -> Unit)? = null,
leadingContent: (@Composable () -> Unit)? = null,
trailingContent: (@Composable () -> Unit)? = null,
colors: ListItemColors = ListItemDefaults.colors(),
tonalElevation: Dp = ListItemDefaults.Elevation,
shadowElevation: Dp = ListItemDefaults.Elevation
): Unit

👉 androidx.compose.material3 | Android Developers
Card を利用して、設定項目をグループ分けします。
👉 Card | Jetpack Compose | Android Developers
以下のようなレイアウト構成。
SettingScreen
LazyColumn
Card - Group
ListItem - Clickable
ListItem - Switch
ListItem - Checkbox
Card
ListItem - Clickable
ListItem - Switch
ListItem - Checkbox
...
こう書けました。
こんな感じです。

Material3 って、今では結構使えるんですね!
なんか面倒なだけな気がしてきた。
hilt-android = { group = "com.google.dagger", name = "hilt-android", version.ref = "hilt" }
hilt-compiler = { group = "com.google.dagger", name = "hilt-compiler", version.ref = "hilt" }
group, name より、
module 記述で良くないか。

hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hilt" }
hilt-compiler = { module = "com.google.dagger:hilt-compiler", version.ref = "hilt" }
まあ、無駄に几帳面に書いてました。
こんなにスッキリ。

👉 Pokedex/gradle/libs.versions.toml at main · skydoves/Pokedex