Share
Embed
Transcript
17 slides
-
Android iOS バックエンド 仕事 自己紹介 清水 亮介 X: @ LINEヤフー株式会社 ヤフーショッピングの
Androidアプリ開発 + 副業でAndroid / iOSアプリ開発 会社 ゲーム 料理 ギター 自転車 ディズニー 趣味 rioX432 -
画像ファイル Android:PNG, JPG, WEBP→Non Scalable、SVG→Scalable iOS:PNG, JPG, HEIF/HEIC, GIF→Non Scalable、PDF→Scalable
文字列 Android:strings.xml iOS:Localizable.strings 他にも、色・フォントなどのリソースも。 -
libs.versions.toml [versions] agp = "8.2.0" kotlin = "2.0.0" compose-plugin =
"1.6.11" [plugins] androidApplication = { id = "com.android.application", version.ref = "agp" } androidLibrary = { id = "com.android.library", version.ref = "agp" } jetbrainsCompose = { id = "org.jetbrains.compose", version.ref = "compose-plugin" } compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } -
build.gradle.kts (composeApp) sourceSets { androidMain.dependencies { implementation(compose.preview) implementation(libs.androidx.activity.compose) } commonMain.dependencies
{ implementation(compose.runtime) implementation(compose.foundation) implementation(compose.material) implementation(compose.ui) implementation(compose.components.resources) implementation(compose.components.uiToolingPreview) } } -
画像 Image( painterResource( Res.drawable.compose_multiplatform ), null ) 文字列 Text(stringResource(Res.string.click_me)) 色
colors.xmlが使えない。colorResource(Res.color.orange500) Color.ktで定義。 internal val Orange500 = Color(0xFFF9AA33) internal val Orange700 = Color(0xFFC78522) フォント Typography.ktで定義。 @Composable fun getFontFamily(): FontFamily { val rubikFamily = FontFamily( listOf( Font(Res.font.rubik_light), Font(Res.font.rubik_medium), Font(Res.font.rubik_regular), Font(Res.font.rubik_bold) ) ) return rubikFamily } -
Res.~でリソースを参照しようとすると、 @Previewが使用できない。 commonMain.dependencies { : implementation(compose.ui) implementation(compose.uiTooling) <-- Jetpack ComposeでのPreview implementation(compose.components.resources)
implementation(compose.components.uiToolingPreview) <-- KMPでのPreview (いつものようにPreviewで表示確認不可) } No matching variant of org.jetbrains.compose.ui:ui-tooling:1.6.11 was found. The consumer was configured to find a library for use during 'kotlin-metadata', preferably optimized for non-jvm, as well as attribute 'org.jetbrains.kotlin.native.target' with value 'ios_arm64', attribute 'org.jetbrains.kotlin.platform.type' with value 'native' but:- Variant 'debugApiElements-published' declares a library for use during compile-time: