{"id":11378,"date":"2025-07-28T11:11:55","date_gmt":"2025-07-28T02:11:55","guid":{"rendered":"https:\/\/www.moonmile.net\/blog\/?p=11378"},"modified":"2025-07-28T11:11:55","modified_gmt":"2025-07-28T02:11:55","slug":"claude-sonnet-%e3%81%a7-android-%e3%82%a2%e3%83%97%e3%83%aa%e3%81%ab-compose-ui-%e3%81%ae%e3%83%9a%e3%83%bc%e3%82%b8%e3%82%92%e8%bf%bd%e5%8a%a0%e3%81%99%e3%82%8b%e3%80%82","status":"publish","type":"post","link":"http:\/\/www.moonmile.net\/blog\/archives\/11378","title":{"rendered":"Claude Sonnet \u3067 Android \u30a2\u30d7\u30ea\u306b Compose UI \u306e\u30da\u30fc\u30b8\u3092\u8ffd\u52a0\u3059\u308b\u3002"},"content":{"rendered":"\n<p>\u4e0b\u6e96\u5099\u3068\u3057\u3066\u3001Github Pro \u306e\u8ab2\u91d1\u304c\u5fc5\u8981\u3067\u3059\u3002\u670810\u30c9\u30eb\u306a\u306e\u3067\u3001\u672c\u5bb6 Claude Code \u3088\u308a\u3082\u5b89\u3081\uff08\u670820\u30c9\u30eb\u3060\u3063\u305f\u304b\uff1f\uff09\u3067\u3044\u3051\u307e\u3059\u3002<\/p>\n\n\n\n<p>GitHub \u306e\u30d7\u30e9\u30f3 &#8211; GitHub Docs <a href=\"https:\/\/docs.github.com\/ja\/get-started\/learning-about-github\/githubs-plans\">https:\/\/docs.github.com\/ja\/get-started\/learning-about-github\/githubs-plans<\/a><\/p>\n\n\n\n<p>Android Studio \u304b\u3089\u76f4\u63a5 Claude Sonnet \u306f\u4f7f\u3048\u306a\u3044\uff08\u3068\u601d\u3046\uff09\u306e\u3067\u3001vscode \u4e0a\u3067\u30b3\u30fc\u30c9\u306e\u5909\u66f4\u3092\u884c\u3044\u307e\u3059\u3002Github Pro \u3092\u5165\u308c\u3066\u304a\u304f\u3068\u3001Copilot \u306e\u30a2\u30a4\u30b3\u30f3\u304c\u4f7f\u3048\u308b\u306e\u3067\u3001\u3044\u3064\u3082\u306e\u30c1\u30e3\u30c3\u30c8\uff08Ask\uff09\u304b\u3089\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\uff08Agent\uff09\u306b\u5207\u308a\u66ff\u3048\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-107.png\"><img loading=\"lazy\" decoding=\"async\" width=\"734\" height=\"325\" src=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-107.png\" alt=\"\" class=\"wp-image-11379\" srcset=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-107.png 734w, http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-107-300x133.png 300w\" sizes=\"auto, (max-width: 734px) 100vw, 734px\" \/><\/a><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ask \u306e\u5834\u5408\u306f\u3001\u30c1\u30e3\u30c3\u30c8\u4e0a\u3067\u30b3\u30fc\u30c9\u306e\u63d0\u6848\u3092\u3057\u3066\u304f\u308c\u307e\u3059<\/li>\n\n\n\n<li>Agent \u306e\u5834\u5408\u306f\u3001\u8981\u671b\u3084\u8cea\u554f\u3092 Copilot \u81ea\u8eab\u304c\u30d5\u30a1\u30a4\u30eb\u3092\u4fee\u6b63\u3057\u3066\u304f\u308c\u307e\u3059<\/li>\n<\/ul>\n\n\n\n<p>Agent \u306e\u307b\u3046\u304c\u30d5\u30a1\u30a4\u30eb\u3092\u76f4\u63a5\u64cd\u4f5c\u3057\u3066\u304f\u308c\u308b\u306e\u3067\u624b\u9593\u306f\u5c11\u306a\u3044\u3067\u3059\u3002\u304c\u3001\u3042\u3089\u306c\u3068\u3053\u308d\u3092\u5909\u3048\u308b\u3053\u3068\u304c\u3042\u308b\u306e\u3067\u3001\u305d\u3046\u3044\u3046\u3068\u304d\u306f Ask \u30e2\u30fc\u30c9\u306b\u5207\u308a\u66ff\u3048\u308b\u304b\u3001git \u3067\u30d6\u30e9\u30f3\u30c1\u3092\u4f5c\u3063\u3066\u304a\u3044\u3066\u5143\u306e\u30d5\u30a1\u30a4\u30eb\u306b\u623b\u3057\u307e\u3059\u3002\u5143\u306e\u30d5\u30a1\u30a4\u30eb\u306b\u623b\u3057\u305f\u3068\u304d\u306f<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\u5143\u306e\u30d5\u30a1\u30a4\u30eb\u306b\u623b\u3057\u307e\u3057\u305f<\/pre>\n\n\n\n<p>\u3068 Copilot \u306b\u77e5\u3089\u305b\u3066\u3042\u3052\u308b\u3068\u8a71\u304c\u30b9\u30e0\u30fc\u30ba\u306b\u306a\u308a\u307e\u3059\u3002Claude Sonnet \u304c\u3042\u308c\u3053\u308c\u3068\u8abf\u3079\u59cb\u3081\u308b\u306e\u3067\u3002<\/p>\n\n\n\n<p>\u30b3\u30fc\u30c9\u751f\u6210\u306e\u30b9\u30d4\u30fc\u30c9\u306f\u76f4\u63a5 Claude Code \u306b\u8ab2\u91d1\u3057\u305f\u307b\u3046\u304c\u65e9\u3044\u306e\u3067\u3059\u304c\u3001Claude Code \u3060\u3068\u7d50\u69cb\u306a\u304a\u91d1\u304c\u639b\u304b\u308b\uff08Max\u3060\u3068\u7279\u306b\uff09\u306e\u3068\u3001API \u3092\u4f7f\u3046\u3068\u304d\u306e\u5236\u9650\u304c\u53b3\u3057\u3044\u3067\u3059\u3002\u4ed5\u4e8b\u7684\u306b 2,3 \u6642\u9593\u4f7f\u3063\u3066\u3057\u307e\u3046\u3068\u5236\u9650\u306b\u9054\u3057\u3066\u3057\u307e\u3044\u307e\u3059\u3002\u306a\u305c\u304b\u308f\u304b\u308a\u307e\u305b\u3093\u304c\u3001Copilot + Claude Sonnet \u306e\u7d44\u307f\u5408\u308f\u305b\u3060\u3068\u3001\u3053\u306e API \u547c\u3073\u51fa\u3057\u304c\u7121\u5236\u9650\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002\u306a\u306e\u3067\u3001\u3042\u307e\u308a\u751f\u6210\u30b9\u30d4\u30fc\u30c9\u3092\u6c17\u306b\u305b\u305a\u306b\u3060\u3089\u3060\u3089\u3084\u308b\u5834\u5408\u306f Sonnet \u306e\u307b\u3046\u304c\u304a\u5f97\u3067\u3059\u3002\u591a\u5206\u3001Claude Code \u306e\u307b\u3046\u304c\u8272\u3005\u3068\u4fbf\u5229\u306a\u30b3\u30de\u30f3\u30c9\u304c\u3042\u308b\u3093\u3067\u3057\u3087\u3046\u304c\u3001\u3044\u307e\u306e\u3068\u3053\u308d\u79c1\u306f Claude Sonnet \u3067\u5341\u5206\u306a\u611f\u3058\u3067\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u65b0\u3057\u3044 Compose \u30da\u30fc\u30b8\u3092\u8ffd\u52a0\u3059\u308b<\/h2>\n\n\n\n<p>Android \u306e Jetpack Compose \u306f\u3001React \u306e JSX \u5f62\u5f0f\u306e\u3088\u3046\u306b\u30b3\u30fc\u30c9\u5185\u3067 UI \u3092\u8a18\u8ff0\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u307e\u3042\u3001\u6a5f\u80fd\u7684\u306b\u306f\u305d\u308c\u3060\u3051\u3067\u306f\u306a\u3044\u306e\u3067\u3059\u304c\u3001\u3053\u306e\u300c\u30b3\u30fc\u30c9\u306b\u8a18\u8ff0\u3059\u308b\u300d\u3068\u3044\u3046\u30b9\u30bf\u30a4\u30eb\u304c\u3001AI \u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3068\u76f8\u6027\u304c\u3044\u3044\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u5f93\u6765\u306e Android UI \u306e\u5834\u5408\u306f Android Stdio \u3092\u7acb\u3061\u4e0a\u3052\u3066\u30c7\u30b6\u30a4\u30ca\u3092\u4f7f\u3063\u3066\u753b\u9762\u3092\u69cb\u6210\u3059\u308b\u3053\u3068\u304c\u591a\u304f\u3001\u305d\u306e\u8a2d\u5b9a\u306f *.xml \u30d5\u30a1\u30a4\u30eb\u306b\u8a18\u8ff0\u3055\u308c\u307e\u3059\u3002\u76f4\u63a5 *.xml \u30d5\u30a1\u30a4\u30eb\u3092\u7de8\u96c6\u3059\u308b\u3053\u3068\u3082\u3042\u308b\u306e\u3067\u3059\u304c\u3001\u7d50\u69cb\u9762\u5012\u3067\u3001\u3055\u3089\u306b\u8a00\u3048\u3070 AI \u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u3053\u308c\u3092\u3084\u3063\u3066\u8cb0\u3046\u3068\u5927\u5909\u306a\u3053\u3068\u306b\u306a\u308a\u307e\u3059\u3002\u3069\u3046\u3044\u3046\u5927\u5909\u306a\u3053\u3068\u306b\u306a\u308b\u304b\u3068\u3044\u3046\u3068\u3001\u305d\u308c\u306f\u5404\u81ea\u306b\u8a66\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002\u7aef\u7684\u306b\u8a00\u3048\u3070\u3001\u5b8c\u6210\u3057\u307e\u305b\u3093\u3001\u3063\u3066\u3060\u3051\u306a\u3093\u3067\u3059\u304c\u3002<\/p>\n\n\n\n<p>\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u793a\u3059\u30da\u30fc\u30b8\u3092\u4f5c\u3063\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-108.png\"><img loading=\"lazy\" decoding=\"async\" width=\"725\" height=\"257\" src=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-108.png\" alt=\"\" class=\"wp-image-11380\" srcset=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-108.png 725w, http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-108-300x106.png 300w\" sizes=\"auto, (max-width: 725px) 100vw, 725px\" \/><\/a><\/figure>\n\n\n\n<pre class=\"wp-block-preformatted\">\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u8868\u793a\u3059\u308b AboutActivity \u3092\u4f5c\u6210\u3057\u3066\u3002<\/pre>\n\n\n\n<p>\u3044\u308d\u3044\u308d\u9805\u76ee\u3092\u5165\u308c\u308b\u5fc5\u8981\u304c\u3042\u308b\u3068\u611f\u3058\u307e\u3059\u304c\u3001\u3044\u3044\u3048\u3001\u305d\u3093\u306a\u3053\u3068\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u6700\u521d\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3060\u3051\u3092\u4f5c\u308a\u305f\u3044\u306e\u3067\u3001\u4e00\u884c\u3060\u3051\u30d7\u30ed\u30f3\u30d7\u30c8\u3067\u6307\u793a\u3059\u308c\u3070 ok \u3067\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-109.png\"><img loading=\"lazy\" decoding=\"async\" width=\"744\" height=\"387\" src=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-109.png\" alt=\"\" class=\"wp-image-11381\" srcset=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-109.png 744w, http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-109-300x156.png 300w\" sizes=\"auto, (max-width: 744px) 100vw, 744px\" \/><\/a><\/figure>\n\n\n\n<p>\u5b8c\u5168\u306b\u4f59\u8a08\u306a\u304a\u4e16\u8a71\u7684\u306a\u611f\u3058\u3067\u4f5c\u3063\u3066\u304f\u308c\u307e\u3059\u304c\u3001\u3053\u308c\u3092\u4f7f\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u753b\u9762\u3092\u8868\u793a\u3059\u308b\u306b AndroidManifest.xml \u306b\u8ffd\u52a0\u3057\u3066\u304a\u304d\u307e\u3059\u3002\u3053\u308c\u306f\u6700\u521d\u306b\u6307\u793a\u3092\u3059\u308b\u3068\u8ffd\u52a0\u3057\u3066\u304f\u308c\u305f\u308a\u3001\u8ffd\u52a0\u3057\u3066\u304f\u308c\u306a\u304b\u3063\u305f\u308a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">AboutActivity \u3092 AndroidManifest.xml \u306b\u8ffd\u52a0\u3057\u3066\u3002<\/pre>\n\n\n\n<p>\u8a2d\u5b9a\u3057\u305f\u5f8c\u306b Android Studio \u3067\u30d3\u30eb\u30c9\u3092\u3057\u3066\u78ba\u8a8d\u3057\u3066\u304a\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-110.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-110-1024x576.png\" alt=\"\" class=\"wp-image-11382\" srcset=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-110-1024x576.png 1024w, http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-110-300x169.png 300w, http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-110-768x432.png 768w, http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-110-1536x864.png 1536w, http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-110.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>Compose UI \u3067\u4f5c\u6210\u3057\u305f\u3068\u304d\u306b\u3001\u30d7\u30ec\u30d3\u30e5\u30fc\u304c\u51fa\u306a\u3044\u306e\u304c\u6b8b\u5ff5\u306a\u3068\u3053\u308d\u306a\u306e\u3067\u3059\u304c\u3001\u3053\u308c\u306f\u653e\u7f6e\u3057\u307e\u3059\u3002\u624b\u66f8\u304d\u3067\u66f8\u304f\u3068\u30d7\u30ec\u30d3\u30e5\u30fc\u304c\u8868\u793a\u3055\u308c\u308b\u306e\u3067\u3001\u304a\u305d\u3089\u304f Claude Sonnet \u306e\u751f\u6210\u3059\u308b\u30b3\u30fc\u30c9\u306e\u305b\u3044\u3067\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>package jp.mamori_i.app.screen.ui\n\nimport android.content.pm.PackageManager\nimport android.os.Bundle\nimport androidx.activity.ComponentActivity\nimport androidx.activity.compose.setContent\nimport androidx.activity.enableEdgeToEdge\nimport androidx.compose.foundation.layout.*\nimport androidx.compose.foundation.rememberScrollState\nimport androidx.compose.foundation.verticalScroll\nimport androidx.compose.material.icons.Icons\nimport androidx.compose.material.icons.automirrored.filled.ArrowBack\nimport androidx.compose.material.icons.filled.Info\nimport androidx.compose.material3.*\nimport androidx.compose.runtime.*\nimport androidx.compose.ui.Alignment\nimport androidx.compose.ui.Modifier\nimport androidx.compose.ui.text.font.FontFamily\nimport androidx.compose.ui.text.font.FontWeight\nimport androidx.compose.ui.text.style.TextAlign\nimport androidx.compose.ui.tooling.preview.Preview\nimport androidx.compose.ui.unit.dp\nimport androidx.compose.ui.unit.sp\nimport jp.mamori_i.app.ui.theme.AppTheme\nimport java.text.SimpleDateFormat\nimport java.util.*\n\nclass AboutActivity : ComponentActivity() {\n    \n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n        \n        enableEdgeToEdge()\n        setContent {\n            AppTheme {\n                Surface(\n                    modifier = Modifier.fillMaxSize(),\n                    color = MaterialTheme.colorScheme.background\n                ) {\n                    AboutScreen(\n                        onNavigateBack = {\n                            finish()\n                        },\n                        context = this@AboutActivity\n                    )\n                }\n            }\n        }\n    }\n}\n\n@OptIn(ExperimentalMaterial3Api::class)\n@Composable\nfun AboutScreen(\n    onNavigateBack: () -&gt; Unit = {},\n    context: ComponentActivity? = null\n) {\n    \/\/ \u30d0\u30fc\u30b8\u30e7\u30f3\u60c5\u5831\u3092\u53d6\u5f97\n    val versionInfo = remember {\n        context?.let { ctx -&gt;\n            try {\n                val packageInfo = ctx.packageManager.getPackageInfo(ctx.packageName, 0)\n                mapOf(\n                    &quot;appName&quot; to (ctx.applicationInfo.loadLabel(ctx.packageManager).toString()),\n                    &quot;versionName&quot; to packageInfo.versionName,\n                    &quot;versionCode&quot; to packageInfo.longVersionCode.toString(),\n                    &quot;packageName&quot; to packageInfo.packageName,\n                    &quot;buildTime&quot; to SimpleDateFormat(&quot;yyyy-MM-dd HH:mm:ss&quot;, Locale.getDefault()).format(Date(packageInfo.lastUpdateTime))\n                )\n            } catch (e: PackageManager.NameNotFoundException) {\n                mapOf(\n                    &quot;appName&quot; to &quot;FolkBears&quot;,\n                    &quot;versionName&quot; to &quot;1.0.0&quot;,\n                    &quot;versionCode&quot; to &quot;1&quot;,\n                    &quot;packageName&quot; to &quot;jp.mamori_i.app&quot;,\n                    &quot;buildTime&quot; to &quot;Unknown&quot;\n                )\n            }\n        } ?: mapOf(\n            &quot;appName&quot; to &quot;FolkBears&quot;,\n            &quot;versionName&quot; to &quot;1.0.0&quot;,\n            &quot;versionCode&quot; to &quot;1&quot;,\n            &quot;packageName&quot; to &quot;jp.mamori_i.app&quot;,\n            &quot;buildTime&quot; to &quot;Unknown&quot;\n        )\n    }\n\n    Scaffold(\n        topBar = {\n            TopAppBar(\n                title = { Text(&quot;\u30a2\u30d7\u30ea\u306b\u3064\u3044\u3066&quot;) },\n                navigationIcon = {\n                    IconButton(onClick = onNavigateBack) {\n                        Icon(\n                            imageVector = Icons.AutoMirrored.Filled.ArrowBack,\n                            contentDescription = &quot;\u623b\u308b&quot;\n                        )\n                    }\n                }\n            )\n        }\n    ) { paddingValues -&gt;\n        Column(\n            modifier = Modifier\n                .fillMaxSize()\n                .padding(paddingValues)\n                .padding(16.dp)\n                .verticalScroll(rememberScrollState()),\n            verticalArrangement = Arrangement.spacedBy(16.dp),\n            horizontalAlignment = Alignment.CenterHorizontally\n        ) {\n            Spacer(modifier = Modifier.height(32.dp))\n            \n            \/\/ \u30a2\u30d7\u30ea\u30a2\u30a4\u30b3\u30f3\uff08\u4ee3\u66ff\u3068\u3057\u3066\u60c5\u5831\u30a2\u30a4\u30b3\u30f3\u3092\u4f7f\u7528\uff09\n            Card(\n                modifier = Modifier.size(80.dp),\n                colors = CardDefaults.cardColors(\n                    containerColor = MaterialTheme.colorScheme.primary\n                )\n            ) {\n                Box(\n                    modifier = Modifier.fillMaxSize(),\n                    contentAlignment = Alignment.Center\n                ) {\n                    Icon(\n                        imageVector = Icons.Default.Info,\n                        contentDescription = null,\n                        modifier = Modifier.size(40.dp),\n                        tint = MaterialTheme.colorScheme.onPrimary\n                    )\n                }\n            }\n            \n            Spacer(modifier = Modifier.height(16.dp))\n            \n            \/\/ \u30a2\u30d7\u30ea\u540d\n            Text(\n                text = versionInfo[&quot;appName&quot;] ?: &quot;FolkBears&quot;,\n                style = MaterialTheme.typography.headlineMedium,\n                fontWeight = FontWeight.Bold,\n                textAlign = TextAlign.Center\n            )\n            \n            \/\/ \u30d0\u30fc\u30b8\u30e7\u30f3\u60c5\u5831\n            Text(\n                text = &quot;\u30d0\u30fc\u30b8\u30e7\u30f3 ${versionInfo[&quot;versionName&quot;]} (${versionInfo[&quot;versionCode&quot;]})&quot;,\n                style = MaterialTheme.typography.titleMedium,\n                color = MaterialTheme.colorScheme.onSurfaceVariant,\n                textAlign = TextAlign.Center\n            )\n            \n            Spacer(modifier = Modifier.height(24.dp))\n            \n            \/\/ \u8a73\u7d30\u60c5\u5831\u30ab\u30fc\u30c9\n            Card(\n                modifier = Modifier.fillMaxWidth(),\n                elevation = CardDefaults.cardElevation(defaultElevation = 4.dp)\n            ) {\n                Column(\n                    modifier = Modifier.padding(16.dp),\n                    verticalArrangement = Arrangement.spacedBy(12.dp)\n                ) {\n                    Text(\n                        text = &quot;\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u60c5\u5831&quot;,\n                        style = MaterialTheme.typography.titleMedium,\n                        fontWeight = FontWeight.Bold,\n                        color = MaterialTheme.colorScheme.primary\n                    )\n                    \n                    InfoRow(&quot;\u30a2\u30d7\u30ea\u540d&quot;, versionInfo[&quot;appName&quot;] ?: &quot;Unknown&quot;)\n                    InfoRow(&quot;\u30d0\u30fc\u30b8\u30e7\u30f3&quot;, versionInfo[&quot;versionName&quot;] ?: &quot;Unknown&quot;)\n                    InfoRow(&quot;\u30d3\u30eb\u30c9\u756a\u53f7&quot;, versionInfo[&quot;versionCode&quot;] ?: &quot;Unknown&quot;)\n                    InfoRow(&quot;\u30d1\u30c3\u30b1\u30fc\u30b8\u540d&quot;, versionInfo[&quot;packageName&quot;] ?: &quot;Unknown&quot;)\n                    InfoRow(&quot;\u30d3\u30eb\u30c9\u65e5\u6642&quot;, versionInfo[&quot;buildTime&quot;] ?: &quot;Unknown&quot;)\n                }\n            }\n            \n            \/\/ \u30b7\u30b9\u30c6\u30e0\u60c5\u5831\u30ab\u30fc\u30c9\n            Card(\n                modifier = Modifier.fillMaxWidth(),\n                elevation = CardDefaults.cardElevation(defaultElevation = 4.dp)\n            ) {\n                Column(\n                    modifier = Modifier.padding(16.dp),\n                    verticalArrangement = Arrangement.spacedBy(12.dp)\n                ) {\n                    Text(\n                        text = &quot;\u30b7\u30b9\u30c6\u30e0\u60c5\u5831&quot;,\n                        style = MaterialTheme.typography.titleMedium,\n                        fontWeight = FontWeight.Bold,\n                        color = MaterialTheme.colorScheme.primary\n                    )\n                    \n                    InfoRow(&quot;Android \u30d0\u30fc\u30b8\u30e7\u30f3&quot;, android.os.Build.VERSION.RELEASE)\n                    InfoRow(&quot;API \u30ec\u30d9\u30eb&quot;, android.os.Build.VERSION.SDK_INT.toString())\n                    InfoRow(&quot;\u30c7\u30d0\u30a4\u30b9&quot;, &quot;${android.os.Build.MANUFACTURER} ${android.os.Build.MODEL}&quot;)\n                    InfoRow(&quot;CPU \u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3&quot;, System.getProperty(&quot;os.arch&quot;) ?: &quot;Unknown&quot;)\n                }\n            }\n            \n            \/\/ \u8457\u4f5c\u6a29\u60c5\u5831\u30ab\u30fc\u30c9\n            Card(\n                modifier = Modifier.fillMaxWidth(),\n                elevation = CardDefaults.cardElevation(defaultElevation = 4.dp)\n            ) {\n                Column(\n                    modifier = Modifier.padding(16.dp),\n                    verticalArrangement = Arrangement.spacedBy(12.dp)\n                ) {\n                    Text(\n                        text = &quot;\u8457\u4f5c\u6a29\u60c5\u5831&quot;,\n                        style = MaterialTheme.typography.titleMedium,\n                        fontWeight = FontWeight.Bold,\n                        color = MaterialTheme.colorScheme.primary\n                    )\n                    \n                    Text(\n                        text = &quot;\u00a9 2024 FolkBears Group\\nAll rights reserved.&quot;,\n                        style = MaterialTheme.typography.bodyMedium,\n                        textAlign = TextAlign.Center,\n                        modifier = Modifier.fillMaxWidth()\n                    )\n                    \n                    Text(\n                        text = &quot;\u3053\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306f\u63a5\u89e6\u78ba\u8a8d\u30b7\u30b9\u30c6\u30e0\u3068\u3057\u3066\u958b\u767a\u3055\u308c\u307e\u3057\u305f\u3002&quot;,\n                        style = MaterialTheme.typography.bodySmall,\n                        color = MaterialTheme.colorScheme.onSurfaceVariant,\n                        textAlign = TextAlign.Center,\n                        modifier = Modifier.fillMaxWidth()\n                    )\n                }\n            }\n            \n            Spacer(modifier = Modifier.height(32.dp))\n        }\n    }\n}\n\n@Composable\nfun InfoRow(label: String, value: String) {\n    Row(\n        modifier = Modifier.fillMaxWidth(),\n        horizontalArrangement = Arrangement.SpaceBetween\n    ) {\n        Text(\n            text = &quot;$label:&quot;,\n            style = MaterialTheme.typography.bodyMedium,\n            fontWeight = FontWeight.Medium,\n            modifier = Modifier.weight(1f)\n        )\n        Text(\n            text = value,\n            style = MaterialTheme.typography.bodyMedium,\n            fontFamily = FontFamily.Monospace,\n            color = MaterialTheme.colorScheme.primary,\n            modifier = Modifier.weight(1f),\n            textAlign = TextAlign.End\n        )\n    }\n}\n\n@Preview(showBackground = true)\n@Composable\nfun AboutScreenPreview() {\n    AppTheme {\n        AboutScreen()\n    }\n}\n<\/code><\/pre><\/div>\n\n\n\n<p>\u307e\u3042\u3001\u305d\u308c\u3067\u3082 AI \u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u4f7f\u3063\u3066\u30d0\u30a4\u30d6\u30b3\u30fc\u30c9\uff08Vibe Coding\uff09\u3059\u308b\u5206\u306b\u306f\u5341\u5206\u306a\u54c1\u8cea\u3092\u4fdd\u3063\u3066\u3044\u307e\u3059\u3002About \u30da\u30fc\u30b8\u306a\u3089\u3070\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u304c\u3069\u3046\u3068\u3044\u3046\u8a71\u3082\u306a\u3044\u3057\u7279\u6b8a\u306a\u30ed\u30b8\u30c3\u30af\u3092\u4f7f\u3063\u3066\u3044\u308b\u308f\u3051\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u5358\u306b\u30a2\u30d7\u30ea\u306e\u88fd\u54c1\u60c5\u5831\u3068\u304b\u3092\u4e26\u3079\u305f\u3044\u3060\u3051\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u5f93\u6765\u306e\u65b9\u5f0f\u3067\u8a00\u3048\u3070 Android Studio \u3084 Visual Studio \u304c\u51fa\u3057\u3066\u304f\u308c\u308b\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u4f7f\u3048\u3070\u3044\u3044\u306e\u3067\u3059\u304c\u3001 \u305d\u3053\u3059\u3089\u9762\u5012\u304f\u3055\u3044\u3057\u3001\u3053\u3046\u3084\u3063\u3066 AI \u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u304c\u4f5c\u308a\u3084\u3059\u3044\u3088\u3046\u306b\u753b\u9762\u8a2d\u8a08\u3084\u5909\u6570\u8a2d\u5b9a\u3092\u3057\u3066\u3057\u307e\u3063\u305f\u307b\u3046\u304c\u5f8c\u3005\u697d\u3067\u3057\u3087\u3046\u3002\u3046\u307e\u304f\u3044\u304b\u306a\u3051\u308c\u3070\u3001\u3082\u3046\u4e00\u5ea6\u3044\u3061\u304b\u3089 AI \u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306b\u4f5c\u3063\u3066\u8cb0\u3048\u3070\u3088\u3044\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u30a8\u30df\u30e5\u30ec\u30fc\u30bf\u3067\u5b9f\u884c\u3059\u308b\u3068\u3053\u3093\u306a\u611f\u3058\u3067\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-111.png\"><img loading=\"lazy\" decoding=\"async\" width=\"458\" height=\"902\" src=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-111.png\" alt=\"\" class=\"wp-image-11383\" srcset=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-111.png 458w, http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-111-152x300.png 152w\" sizes=\"auto, (max-width: 458px) 100vw, 458px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u65e2\u5b58\u306e Activity \u3092\u7de8\u96c6\u3057\u3066\u3082\u3089\u3046<\/h2>\n\n\n\n<p>About \u753b\u9762\u304c\u3067\u304d\u305f\u306e\u3067\u3001\u3044\u304f\u3064\u304b\u7de8\u96c6\u3092\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<p>UI \u3092\u4f5c\u6210\u3057\u3066\u3044\u308b AboutScreen \u306e\u4e2d\u8eab\u3092\u624b\u4f5c\u696d\u3067\u5909\u66f4\u3057\u3066\u3082\u3088\u3044\u306e\u3067\u3059\u304c\u3001AI \u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u4f7f\u3063\u3066\u3082\u8ffd\u52a0\u3084\u524a\u9664\u304c\u3067\u304d\u307e\u3059\u3002\u624b\u4f5c\u696d\u3060\u3068\u30ec\u30a4\u30a2\u30a6\u30c8\u304c\u5d29\u308c\u305f\u308a\u3059\u308b\u306e\u3067\u3001\u60c5\u5831\u3092\u4e0e\u3048\u3066 AI \u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306b\u4fee\u6b63\u3057\u3066\u8cb0\u3063\u305f\u307b\u3046\u304c\u4f5c\u696d\u304c\u65e9\u304f\u6e08\u307f\u307e\u3059\u3002\u8907\u96d1\u306a\u30ed\u30b8\u30c3\u30af\u306e\u5834\u5408\u306f\u9762\u5012\u306a\u306e\u3067\u3059\u304c\u3001\u3061\u3087\u3063\u3068\u3057\u305f\u6587\u8a00\u3092\u8ffd\u52a0\u3059\u308b\u306e\u306f\u30d7\u30ed\u30f3\u30d7\u30c8\u3060\u3051\u3067\u7d50\u69cb\u3044\u3051\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\u30d0\u30fc\u30b8\u30e7\u30f3\u60c5\u5831\u306e\u524d\u306b<br><br>- \u30a2\u30d7\u30ea\u306e\u76ee\u7684\uff1a\u3053\u308c\u306f\u63a5\u89e6\u78ba\u8a8d\u30a2\u30d7\u30ea\u3092\u66f4\u306b\u9032\u5316\u3055\u305b\u3066\u3001\u5b9f\u9a13\u7684\u306b\u63a5\u89e6\u8a18\u9332\u3092\u30c8\u30ec\u30fc\u30b9\u3067\u304d\u308b\u3082\u306e\u3067\u3059\u3002<br>- \u30a2\u30d7\u30ea\u306e\u5916\u5831 \uff1a \u8907\u6570\u306e\u7aef\u672b\u3067 GATT\/iBeacon \u65b9\u5f0f\u3067\u9001\u53d7\u4fe1\u3059\u308b\u3053\u3068\u306b\u3088\u308a\u3001\u76f8\u4e92\u306e\u8ddd\u96e2\u3092\u8a18\u9332\u3057\u3066\u3044\u304d\u307e\u3059\u3002\u63a5\u89e6\u56de\u6570\u3084\u6642\u523b\u306a\u3069\u3092\u7814\u7a76\u30c7\u30fc\u30bf\u3068\u3057\u3066\u5f79\u7acb\u3066\u308b\u305f\u3081\u306b\u3001\u6307\u5b9a\u306e\u30b5\u30fc\u30d0\u30fc\u306b\u9001\u4fe1\u3057\u307e\u3059\u3002<br><br>\u306e\u6587\u8a00\u3092\u8ffd\u52a0\u3057\u3066\u3002<\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-112.png\"><img loading=\"lazy\" decoding=\"async\" width=\"731\" height=\"515\" src=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-112.png\" alt=\"\" class=\"wp-image-11384\" srcset=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-112.png 731w, http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-112-300x211.png 300w\" sizes=\"auto, (max-width: 731px) 100vw, 731px\" \/><\/a><\/figure>\n\n\n\n<p>\u30b3\u30fc\u30c9\u3092\u3056\u3063\u3068\u773a\u3081\u3066\u3001\u3046\u307e\u304f\u3044\u304b\u306a\u3044\u3088\u3046\u3067\u3042\u308c\u3070 git \u3067\u5143\u306b\u623b\u305b\u3070 ok \u3067\u3059\u3002\u3042\u308b\u3044\u306f\u3001\u30b3\u30fc\u30c9\u306e\u5909\u66f4\u304c\u3057\u3081\u3055\u308c\u305f\u3068\u304d\u306b\u300c\u53d6\u308a\u6d88\u3057\u300d\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-113.png\"><img loading=\"lazy\" decoding=\"async\" width=\"458\" height=\"902\" src=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-113.png\" alt=\"\" class=\"wp-image-11386\" srcset=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-113.png 458w, http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/07\/image-113-152x300.png 152w\" sizes=\"auto, (max-width: 458px) 100vw, 458px\" \/><\/a><\/figure>\n\n\n\n<p>\u3053\u306e\u3042\u305f\u308a\u306e\u4fee\u6b63\u30b5\u30a4\u30af\u30eb\u3092 Claude Code \u306e\u8a2d\u8a08\u66f8\uff08claude.md\uff09\u306b\u6700\u521d\u306b\u7df4\u308a\u8fbc\u3093\u3067\u3044\u304f\u306e\u304b\u3001\u305d\u308c\u3068\u3082\u5f8c\u304b\u3089\u30d7\u30ed\u30f3\u30d7\u30c8\u3092\u4f7f\u3063\u3066\u4fee\u6b63\u3057\u3066\u3044\u304f\u306e\u304b\u3068\u8b70\u8ad6\u306e\u5206\u304b\u308c\u308b\u3068\u3053\u308d\u3067\u3057\u3087\u3046\u304c\u3001\u79c1\u3068\u3057\u3066\u306f\u5f8c\u8005\u3067\u3042\u308b\u300c\u30da\u30a2\u30d7\u30ed\u300d\u65b9\u5f0f\u306e\u307b\u3046\u304c\u7d76\u5bfe\u306b\u697d\u3067\u3059\u3002\u6700\u521d\u306e\u8a2d\u8a08\u66f8\u306e\u5834\u5408\u306f\u3001\u307e\u3042\u3001\u74b0\u5883\u3065\u304f\u308a\u3068\u304b\u3072\u306a\u5f62\u306e\u4f5c\u6210\u306b\u4f7f\u3046\u3068\u3088\u3044\u3067\u3057\u3087\u3046\u3002\u591c\u9593\u30d0\u30c3\u30c1\u7684\u306b\u52d5\u304b\u305b\u3070\u4eba\u624b\u304c\u3044\u308c\u306a\u304f\u306a\u308b\u306e\u3067\u7d50\u69cb\u3044\u3044\u3068\u601d\u3044\u307e\u3059\u3002\u304c\u3001\u305d\u306e\u5834\u5408\u306f\u3001Claude Code \u306b\u30d0\u30c3\u30c1\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u3063\u3066\u8cb0\u3063\u305f\u307b\u3046\u304c\u3044\u3044\u3093\u3058\u3083\u306a\u3044\u3067\u3057\u3087\u3046\u304b&#8230;\u3068\u306f\u601d\u3044\u307e\u3059\u304c\u3001\u958b\u767a\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30b9\u30bf\u30a4\u30eb\u306b\u3088\u3063\u3066\u305d\u308c\u305e\u308c\u3002\u8981\u306f\u3001\u958b\u767a\u8005\uff08\uff1d\u81ea\u5206\uff09\u304c\u75b2\u5f0a\u3057\u306a\u3044\u65b9\u6cd5\u3092\u9078\u3093\u3067\u304f\u3060\u3055\u3044\u3002\u3042\u3068\u3001\u3084\u3063\u3066\u307f\u3066\u697d\u3057\u3044\u307b\u3046\u304c\u3044\u3044\u3067\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e0b\u6e96\u5099\u3068\u3057\u3066\u3001Github Pro \u306e\u8ab2\u91d1\u304c\u5fc5\u8981\u3067\u3059\u3002\u670810\u30c9\u30eb\u306a\u306e\u3067\u3001\u672c\u5bb6 Claude Code \u3088\u308a\u3082\u5b89\u3081\uff08\u670820\u30c9\u30eb\u3060\u3063\u305f\u304b\uff1f\uff09\u3067\u3044\u3051\u307e\u3059\u3002 GitHub \u306e\u30d7\u30e9\u30f3 &#8211; GitHub Docs htt &hellip; <a href=\"http:\/\/www.moonmile.net\/blog\/archives\/11378\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3],"tags":[],"class_list":["post-11378","post","type-post","status-publish","format-standard","hentry","category-dev"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/11378","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/comments?post=11378"}],"version-history":[{"count":2,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/11378\/revisions"}],"predecessor-version":[{"id":11387,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/11378\/revisions\/11387"}],"wp:attachment":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/media?parent=11378"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/categories?post=11378"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/tags?post=11378"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}