{"id":510,"date":"2022-07-19T21:13:00","date_gmt":"2023-12-10T22:36:33","guid":{"rendered":"https:\/\/www.silicloud.com\/ja\/blog\/index.php\/2023\/11\/30\/kotlin%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%9fandroid%e3%81%ae%e9%80%b2%e6%8d%97%e3%83%90%e3%83%bc%e3%80%82\/"},"modified":"2025-08-01T00:08:53","modified_gmt":"2025-07-31T15:08:53","slug":"kotlin%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%9fandroid%e3%81%ae%e9%80%b2%e6%8d%97%e3%83%90%e3%83%bc%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/ja\/blog\/kotlin%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%9fandroid%e3%81%ae%e9%80%b2%e6%8d%97%e3%83%90%e3%83%bc%e3%80%82\/","title":{"rendered":"Kotlin\u3092\u4f7f\u7528\u3057\u305fAndroid\u306e\u9032\u6357\u30d0\u30fc\u3002"},"content":{"rendered":"<p>\u3053\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3067\u306f\u3001Kotlin\u3092\u4f7f\u7528\u3057\u3066Android\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067ProgressBar\u3092\u8b70\u8ad6\u3057\u3001\u5b9f\u88c5\u3057\u307e\u3059\u3002<\/p>\n<h2>\u30d7\u30ed\u30b0\u30ec\u30b9\u30d0\u30fc\u3068\u306f\u4f55\u3067\u3059\u304b\uff1f (Puroguresu b\u0101 towa nanedesu ka?)<\/h2>\n<p>\u30d7\u30ed\u30b0\u30ec\u30b9\u30d0\u30fcUI\u8981\u7d20\u306f\u3001\u30a2\u30d7\u30ea\u753b\u9762\u4e0a\u3067\u9032\u6357\u72b6\u6cc1\u3092\u8868\u793a\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002\u30d7\u30ed\u30b0\u30ec\u30b9\u30d0\u30fc\u3092\u4f7f\u7528\u3057\u3066\u3001\u30a2\u30d7\u30ea\u753b\u9762\u4e0a\u306b\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\/\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u306e\u9032\u6357\u72b6\u6cc1\u3092\u8868\u793a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<h2>\u30d7\u30ed\u30b0\u30ec\u30b9\u30d0\u30fc\u306e\u7a2e\u985e<\/h2>\n<p>\u30d7\u30ed\u30b0\u30ec\u30b9\u30d0\u30fc\u306b\u306f\u4e8c\u3064\u306e\u30bf\u30a4\u30d7\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u30c7\u30bf\u30fc\u30df\u30cd\u30fc\u30c8\u30d7\u30ed\u30b0\u30ec\u30b9\u30d0\u30fc &#8211; \u9032\u6357\u72b6\u6cc1\u3092\u8ffd\u8de1\u3057\u8868\u793a\u3059\u308b\u969b\u306b\u4f7f\u7528\u3057\u307e\u3059\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\u30a4\u30f3\u30c7\u30bf\u30fc\u30df\u30cd\u30fc\u30c8\u30d7\u30ed\u30b0\u30ec\u30b9\u30d0\u30fc &#8211; \u3053\u308c\u306f\u505c\u6b62\u3059\u308b\u307e\u3067\u7121\u9650\u306b\u9032\u884c\u3057\u307e\u3059\u3002<\/ol>\n<p>ProgressDialog\u306b\u306f\u3001AlertDialog\u5185\u306bProgressBar\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002ProgressDialog\u306f\u73fe\u5728\u975e\u63a8\u5968\u3068\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u306a\u305c\u306a\u3089\u3001\u753b\u9762\u3092\u30d6\u30ed\u30c3\u30af\u3057\u306a\u304c\u3089\u30c0\u30a4\u30a2\u30ed\u30b0\u3067\u9577\u3044\u9032\u6357\u3092\u8868\u793a\u3059\u308b\u306e\u306f\u826f\u3044\u8003\u3048\u3067\u306f\u306a\u3044\u304b\u3089\u3067\u3059\u3002<\/p>\n<h2>\u30d7\u30ed\u30b0\u30ec\u30b9\u30d0\u30fc\u306e\u5c5e\u6027<\/h2>\n<p>ProgressBar\u306e\u91cd\u8981\u306a\u5c5e\u6027\u306e\u3044\u304f\u3064\u304b\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n<ul class=\"post-ul\">\n<li>android:indeterminate &#8211; used to specify the boolean value indicating the type of the ProgressBar<\/li>\n<li>android:max &#8211; The upper limit of the progress<\/li>\n<li>android:min &#8211; The lower limit of the progress<\/li>\n<li>android:progress &#8211; The steps by which the progress would be incremented.<\/li>\n<li>android:minWidth and minHeight &#8211; Used to define the dimensions of the ProgressBar<\/li>\n<li>android:progressBarTint &#8211; The tint color of the progress completed of the ProgressBar<\/li>\n<li>android:progressBarBackgroundTint &#8211; The tint color of the progress completed of the ProgressBar<\/li>\n<li>style &#8211; Used to set the style of the ProgressBar. By default it is circular. We can set the style as @style\/Widget.AppCompat.ProgressBar.Horizontal for the Horizontal ProgressBar<\/li>\n<li>android:progressDrawable &#8211; Is used to set a drawable for the progress.<\/li>\n<li>android:secondaryProgress &#8211; Indicates the secondary progress value. This is used when we want to show the sub-downloads\/subtasks progress.<\/li>\n<\/ul>\n<p>\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u8272\u5f69\u8a2d\u5b9a\u306f\u3001styles.xml\u3067\u5b9a\u7fa9\u3055\u308c\u305fcolorAccent\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<h2>\u30d7\u30ed\u30b0\u30ec\u30b9\u30d0\u30fc\u306eXML\u30ec\u30a4\u30a2\u30a6\u30c8<\/h2>\n<p>\u6b21\u306e\u3088\u3046\u306a\u57fa\u672c\u7684\u306a\u5186\u5f62\u306e\u4e0d\u78ba\u5b9a\u30d7\u30ed\u30b0\u30ec\u30b9\u30d0\u30fc\u306eXML\u30ec\u30a4\u30a2\u30a6\u30c8\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>&lt;ProgressBar\r\n        android:layout_width=\"wrap_content\"\r\n        android:layout_height=\"wrap_content\"\r\n        android:minHeight=\"50dp\"\r\n        android:minWidth=\"50dp\" \/&gt;\r\n<\/code><\/pre>\n<p>\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001Kotlin\u3092\u4f7f\u7528\u3057\u3066Android\u30a2\u30d7\u30ea\u306b\u3055\u307e\u3056\u307e\u306a\u30bf\u30a4\u30d7\u306e\u30d7\u30ed\u30b0\u30ec\u30b9\u30d0\u30fc\u3092\u5b9f\u88c5\u3057\u307e\u3059\u3002<\/p>\n<h2>Android\u306eProgressBar\u3092\u4f7f\u7528\u3057\u305fKotlin\u30a2\u30d7\u30ea\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u69cb\u9020<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/65648faadaa94e2bdf7bda52\/16-0.png\" alt=\"android progressbar kotlin project structure\" \/><\/div>\n<h3>1. XML \u30ec\u30a4\u30a2\u30a6\u30c8\u306e\u30b3\u30fc\u30c9<\/h3>\n<p>\u4ee5\u4e0b\u306factivity_main.xml\u30ec\u30a4\u30a2\u30a6\u30c8\u306e\u30b3\u30fc\u30c9\u3067\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\r\n&lt;LinearLayout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\r\n    xmlns:app=\"http:\/\/schemas.android.com\/apk\/res-auto\"\r\n    xmlns:tools=\"http:\/\/schemas.android.com\/tools\"\r\n    android:layout_width=\"match_parent\"\r\n    android:layout_height=\"match_parent\"\r\n    android:gravity=\"center\"\r\n    android:orientation=\"vertical\"\r\n    tools:context=\".MainActivity\"&gt;\r\n\r\n\r\n    &lt;ProgressBar\r\n        android:layout_width=\"wrap_content\"\r\n        android:layout_height=\"wrap_content\"\r\n        android:minHeight=\"50dp\"\r\n        android:minWidth=\"50dp\" \/&gt;\r\n\r\n\r\n    &lt;ProgressBar\r\n        style=\"?android:attr\/progressBarStyleHorizontal\"\r\n        android:layout_width=\"wrap_content\"\r\n        android:layout_height=\"wrap_content\"\r\n        android:indeterminate=\"true\"\r\n        android:minHeight=\"50dp\"\r\n        android:minWidth=\"200dp\" \/&gt;\r\n\r\n\r\n    &lt;TextView\r\n        android:id=\"@+id\/textViewHorizontalProgress\"\r\n        android:layout_width=\"wrap_content\"\r\n        android:layout_height=\"wrap_content\"\r\n        android:text=\"0\" \/&gt;\r\n\r\n\r\n    &lt;ProgressBar\r\n        android:id=\"@+id\/progressBarHorizontal\"\r\n        style=\"?android:attr\/progressBarStyleHorizontal\"\r\n        android:layout_width=\"wrap_content\"\r\n        android:layout_height=\"wrap_content\"\r\n        android:indeterminate=\"false\"\r\n        android:max=\"100\"\r\n        android:minHeight=\"50dp\"\r\n        android:minWidth=\"200dp\"\r\n        android:progress=\"1\"\r\n        android:progressBackgroundTint=\"@android:color\/darker_gray\"\r\n        android:progressTint=\"@color\/colorPrimary\" \/&gt;\r\n\r\n\r\n    &lt;Button\r\n        android:id=\"@+id\/btnProgressBarHorizontal\"\r\n        android:layout_width=\"wrap_content\"\r\n        android:layout_height=\"wrap_content\"\r\n        android:onClick=\"horizontalDeterminate\"\r\n        android:text=\"DETERMINATE HORIZONTAL PROGRESS BAR\" \/&gt;\r\n\r\n\r\n    &lt;RelativeLayout\r\n        android:layout_width=\"wrap_content\"\r\n        android:layout_height=\"wrap_content\"&gt;\r\n\r\n        &lt;ProgressBar\r\n            android:id=\"@+id\/progressBarSecondary\"\r\n            style=\"@style\/Widget.AppCompat.ProgressBar.Horizontal\"\r\n            android:layout_width=\"wrap_content\"\r\n            android:layout_height=\"wrap_content\"\r\n            android:layout_centerInParent=\"true\"\r\n            android:minHeight=\"150dp\"\r\n            android:padding=\"8dp\"\r\n            android:minWidth=\"150dp\"\r\n            android:progressDrawable=\"@drawable\/progress_states\" \/&gt;\r\n\r\n        &lt;TextView\r\n            android:id=\"@+id\/textViewPrimary\"\r\n            android:layout_width=\"wrap_content\"\r\n            android:layout_height=\"wrap_content\"\r\n            android:layout_centerInParent=\"true\"\r\n            android:textColor=\"#000\" \/&gt;\r\n\r\n        &lt;TextView\r\n            android:id=\"@+id\/textViewSecondary\"\r\n            android:layout_width=\"wrap_content\"\r\n            android:layout_height=\"wrap_content\"\r\n            android:layout_marginTop=\"25dp\"\r\n            android:layout_below=\"@+id\/progressBarSecondary\"\r\n            android:textColor=\"@color\/colorPrimaryDark\" \/&gt;\r\n\r\n\r\n    &lt;\/RelativeLayout&gt;\r\n\r\n    &lt;Button\r\n        android:id=\"@+id\/btnProgressBarSecondary\"\r\n        android:layout_width=\"wrap_content\"\r\n        android:layout_height=\"wrap_content\"\r\n        android:text=\"DETERMINATE SECONDARY PROGRESS BAR\" \/&gt;\r\n\r\n\r\n&lt;\/LinearLayout&gt;\r\n<\/code><\/pre>\n<p>\u6700\u5f8c\u306e\u9032\u6357\u30d0\u30fc\u3067\u306f\u3001\u6c34\u5e73\u306e\u30d7\u30ed\u30b0\u30ec\u30b9\u30d0\u30fc\u306b\u9032\u6357\u63cf\u753b\u3092\u8a2d\u5b9a\u3057\u307e\u3057\u305f\u3002\u63cf\u753b\u30d5\u30a1\u30a4\u30eb\u306fprogress_states.xml\u3067\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\r\n&lt;layer-list xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"&gt;\r\n    &lt;item android:id=\"@android:id\/background\"&gt;\r\n        &lt;shape android:shape=\"oval\"&gt;\r\n            &lt;stroke\r\n                android:width=\"4dp\"\r\n                android:color=\"@color\/colorPrimary\" \/&gt;\r\n            &lt;solid android:color=\"@android:color\/white\" \/&gt;\r\n        &lt;\/shape&gt;\r\n    &lt;\/item&gt;\r\n    &lt;item android:id=\"@android:id\/secondaryProgress\"&gt;\r\n        &lt;clip\r\n            android:clipOrientation=\"vertical\"\r\n            android:gravity=\"bottom\"&gt;\r\n            &lt;shape android:shape=\"oval\"&gt;\r\n                &lt;stroke\r\n                    android:width=\"4dp\"\r\n                    android:color=\"@android:color\/black\" \/&gt;\r\n                &lt;solid android:color=\"@android:color\/white\" \/&gt;\r\n            &lt;\/shape&gt;\r\n        &lt;\/clip&gt;\r\n    &lt;\/item&gt;\r\n    &lt;item android:id=\"@android:id\/progress\"&gt;\r\n        &lt;clip\r\n            android:clipOrientation=\"vertical\"\r\n            android:gravity=\"bottom\"&gt;\r\n            &lt;shape android:shape=\"oval\"&gt;\r\n                &lt;stroke\r\n                    android:width=\"4dp\"\r\n                    android:color=\"@color\/colorAccent\" \/&gt;\r\n                &lt;solid android:color=\"#F288F8\" \/&gt;\r\n            &lt;\/shape&gt;\r\n        &lt;\/clip&gt;\r\n    &lt;\/item&gt;\r\n&lt;\/layer-list&gt;\r\n<\/code><\/pre>\n<p>\u3053\u306e\u63cf\u753b\u3067\u306f\u3001\u63cf\u753b\u306e\u7570\u306a\u308b\u72b6\u614b\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002\u3059\u3079\u3066\u304c\u5186\u5f62\u3067\u3001\u5404\u30ec\u30a4\u30e4\u30fc\u306f\u30a2\u30a4\u30c9\u30eb\u3001\u30bb\u30ab\u30f3\u30c0\u30ea\u9032\u6357\u3001\u30d7\u30e9\u30a4\u30de\u30ea\u9032\u6357\u306e\u305f\u3081\u306e\u7570\u306a\u308b\u72b6\u614b\u306b\u8868\u793a\u3055\u308c\u307e\u3059\u3002<\/p>\n<h3>2. Kotlin\u306e\u30e1\u30a4\u30f3\u30a2\u30af\u30c6\u30a3\u30d3\u30c6\u30a3\u30fc\u30b3\u30fc\u30c9<\/h3>\n<p>MainActivity.kt\u3068\u3044\u3046Kotlin\u306e\u30af\u30e9\u30b9\u306e\u30b3\u30fc\u30c9\u3092\u898b\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n<pre class=\"post-pre\"><code>package net.androidly.androidlyprogressbar\r\n\r\nimport android.support.v7.app.AppCompatActivity\r\nimport android.os.Bundle\r\nimport android.os.Handler\r\nimport android.view.View\r\nimport kotlinx.android.synthetic.main.activity_main.*\r\n\r\nclass MainActivity : AppCompatActivity() {\r\n\r\n\r\n    var isStarted = false\r\n    var progressStatus = 0\r\n    var handler: Handler? = null\r\n    var secondaryHandler: Handler? = Handler()\r\n    var primaryProgressStatus = 0\r\n    var secondaryProgressStatus = 0\r\n\r\n    override fun onCreate(savedInstanceState: Bundle?) {\r\n        super.onCreate(savedInstanceState)\r\n        setContentView(R.layout.activity_main)\r\n\r\n\r\n        handler = Handler(Handler.Callback {\r\n            if (isStarted) {\r\n                progressStatus++\r\n            }\r\n            progressBarHorizontal.progress = progressStatus\r\n            textViewHorizontalProgress.text = \"${progressStatus}\/${progressBarHorizontal.max}\"\r\n            handler?.sendEmptyMessageDelayed(0, 100)\r\n\r\n            true\r\n        })\r\n\r\n        handler?.sendEmptyMessage(0)\r\n\r\n\r\n        btnProgressBarSecondary.setOnClickListener {\r\n            primaryProgressStatus = 0\r\n            secondaryProgressStatus = 0\r\n\r\n            Thread(Runnable {\r\n                while (primaryProgressStatus &lt; 100) {\r\n                    primaryProgressStatus += 1\r\n\r\n                    try {\r\n                        Thread.sleep(1000)\r\n                    } catch (e: InterruptedException) {\r\n                        e.printStackTrace()\r\n                    }\r\n\r\n                    startSecondaryProgress()\r\n                    secondaryProgressStatus = 0\r\n\r\n                    secondaryHandler?.post {\r\n                        progressBarSecondary.progress = primaryProgressStatus\r\n                        textViewPrimary.text = \"Complete $primaryProgressStatus% of 100\"\r\n\r\n                        if (primaryProgressStatus == 100) {\r\n                            textViewPrimary.text = \"All tasks completed\"\r\n                        }\r\n                    }\r\n                }\r\n            }).start()\r\n        }\r\n\r\n    }\r\n\r\n    fun startSecondaryProgress() {\r\n        Thread(Runnable {\r\n            while (secondaryProgressStatus &lt; 100) {\r\n                secondaryProgressStatus += 1\r\n\r\n                try {\r\n                    Thread.sleep(10)\r\n                } catch (e: InterruptedException) {\r\n                    e.printStackTrace()\r\n                }\r\n\r\n                secondaryHandler?.post {\r\n                    progressBarSecondary.setSecondaryProgress(secondaryProgressStatus)\r\n                    textViewSecondary.setText(\"Current task progress\\n$secondaryProgressStatus% of 100\")\r\n\r\n                    if (secondaryProgressStatus == 100) {\r\n                        textViewSecondary.setText(\"Single task complete.\")\r\n                    }\r\n                }\r\n            }\r\n        }).start()\r\n    }\r\n\r\n    fun horizontalDeterminate(view: View) {\r\n        isStarted = !isStarted\r\n    }\r\n\r\n}\r\n<\/code><\/pre>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/65648faadaa94e2bdf7bda52\/26-0.gif\" alt=\"android progress bar kotlin app output\" \/><\/div>\n<p>\u4ee5\u4e0b\u306e\u30ea\u30f3\u30af\u304b\u3089\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059: AndroidlyProgressBar\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u3053\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3067\u306f\u3001Kotlin\u3092\u4f7f\u7528\u3057\u3066Android\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067ProgressBar\u3092\u8b70\u8ad6\u3057\u3001\u5b9f\u88c5\u3057\u307e\u3059\u3002 \u30d7\u30ed\u30b0\u30ec\u30b9\u30d0\u30fc\u3068\u306f\u4f55\u3067\u3059\u304b\uff1f (Puroguresu b\u0101 towa nanedesu ka?) [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[26,61],"class_list":["post-510","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-26","tag-61"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Kotlin\u3092\u4f7f\u7528\u3057\u305fAndroid\u306e\u9032\u6357\u30d0\u30fc\u3002 - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Kotlin\u3092\u4f7f\u7528\u3057\u305fAndroid\u306e\u9032\u6357\u30d0\u30fc\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/ja\/blog\/kotlin\u3092\u4f7f\u7528\u3057\u305fandroid\u306e\u9032\u6357\u30d0\u30fc\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kotlin\u3092\u4f7f\u7528\u3057\u305fAndroid\u306e\u9032\u6357\u30d0\u30fc\u3002\" \/>\n<meta property=\"og:description\" content=\"Kotlin\u3092\u4f7f\u7528\u3057\u305fAndroid\u306e\u9032\u6357\u30d0\u30fc\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/ja\/blog\/kotlin\u3092\u4f7f\u7528\u3057\u305fandroid\u306e\u9032\u6357\u30d0\u30fc\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-12-10T22:36:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-31T15:08:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/65648faadaa94e2bdf7bda52\/16-0.png\" \/>\n<meta name=\"author\" content=\"\u6d77\u6597, \u8475\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6d77\u6597, \u8475\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"19\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/kotlin%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%9fandroid%e3%81%ae%e9%80%b2%e6%8d%97%e3%83%90%e3%83%bc%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/ja\/blog\/kotlin%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%9fandroid%e3%81%ae%e9%80%b2%e6%8d%97%e3%83%90%e3%83%bc%e3%80%82\/\",\"name\":\"Kotlin\u3092\u4f7f\u7528\u3057\u305fAndroid\u306e\u9032\u6357\u30d0\u30fc\u3002 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/#website\"},\"datePublished\":\"2023-12-10T22:36:33+00:00\",\"dateModified\":\"2025-07-31T15:08:53+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/20cfc053626f4d45c0fa7a4e7964b5b6\"},\"description\":\"Kotlin\u3092\u4f7f\u7528\u3057\u305fAndroid\u306e\u9032\u6357\u30d0\u30fc\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/kotlin%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%9fandroid%e3%81%ae%e9%80%b2%e6%8d%97%e3%83%90%e3%83%bc%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/ja\/blog\/kotlin%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%9fandroid%e3%81%ae%e9%80%b2%e6%8d%97%e3%83%90%e3%83%bc%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/kotlin%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%9fandroid%e3%81%ae%e9%80%b2%e6%8d%97%e3%83%90%e3%83%bc%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/ja\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kotlin\u3092\u4f7f\u7528\u3057\u305fAndroid\u306e\u9032\u6357\u30d0\u30fc\u3002\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/ja\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"ja\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/20cfc053626f4d45c0fa7a4e7964b5b6\",\"name\":\"\u6d77\u6597, \u8475\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/25aec9a18954b6bfb7e4f7219c2923d62c6f0c9f4d5c0171228fe41751c0ab7a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/25aec9a18954b6bfb7e4f7219c2923d62c6f0c9f4d5c0171228fe41751c0ab7a?s=96&d=mm&r=g\",\"caption\":\"\u6d77\u6597, \u8475\"},\"url\":\"https:\/\/www.silicloud.com\/ja\/blog\/author\/kaitoaoi\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/kotlin%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%9fandroid%e3%81%ae%e9%80%b2%e6%8d%97%e3%83%90%e3%83%bc%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Kotlin\u3092\u4f7f\u7528\u3057\u305fAndroid\u306e\u9032\u6357\u30d0\u30fc\u3002 - Blog - Silicon Cloud","description":"Kotlin\u3092\u4f7f\u7528\u3057\u305fAndroid\u306e\u9032\u6357\u30d0\u30fc\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/ja\/blog\/kotlin\u3092\u4f7f\u7528\u3057\u305fandroid\u306e\u9032\u6357\u30d0\u30fc\u3002\/","og_locale":"ja_JP","og_type":"article","og_title":"Kotlin\u3092\u4f7f\u7528\u3057\u305fAndroid\u306e\u9032\u6357\u30d0\u30fc\u3002","og_description":"Kotlin\u3092\u4f7f\u7528\u3057\u305fAndroid\u306e\u9032\u6357\u30d0\u30fc\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002","og_url":"https:\/\/www.silicloud.com\/ja\/blog\/kotlin\u3092\u4f7f\u7528\u3057\u305fandroid\u306e\u9032\u6357\u30d0\u30fc\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-12-10T22:36:33+00:00","article_modified_time":"2025-07-31T15:08:53+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/65648faadaa94e2bdf7bda52\/16-0.png"}],"author":"\u6d77\u6597, \u8475","twitter_card":"summary_large_image","twitter_misc":{"\u57f7\u7b46\u8005":"\u6d77\u6597, \u8475","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"19\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/ja\/blog\/kotlin%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%9fandroid%e3%81%ae%e9%80%b2%e6%8d%97%e3%83%90%e3%83%bc%e3%80%82\/","url":"https:\/\/www.silicloud.com\/ja\/blog\/kotlin%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%9fandroid%e3%81%ae%e9%80%b2%e6%8d%97%e3%83%90%e3%83%bc%e3%80%82\/","name":"Kotlin\u3092\u4f7f\u7528\u3057\u305fAndroid\u306e\u9032\u6357\u30d0\u30fc\u3002 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/ja\/blog\/#website"},"datePublished":"2023-12-10T22:36:33+00:00","dateModified":"2025-07-31T15:08:53+00:00","author":{"@id":"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/20cfc053626f4d45c0fa7a4e7964b5b6"},"description":"Kotlin\u3092\u4f7f\u7528\u3057\u305fAndroid\u306e\u9032\u6357\u30d0\u30fc\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/ja\/blog\/kotlin%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%9fandroid%e3%81%ae%e9%80%b2%e6%8d%97%e3%83%90%e3%83%bc%e3%80%82\/#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/ja\/blog\/kotlin%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%9fandroid%e3%81%ae%e9%80%b2%e6%8d%97%e3%83%90%e3%83%bc%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/ja\/blog\/kotlin%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%9fandroid%e3%81%ae%e9%80%b2%e6%8d%97%e3%83%90%e3%83%bc%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/ja\/blog\/"},{"@type":"ListItem","position":2,"name":"Kotlin\u3092\u4f7f\u7528\u3057\u305fAndroid\u306e\u9032\u6357\u30d0\u30fc\u3002"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/ja\/blog\/#website","url":"https:\/\/www.silicloud.com\/ja\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"ja"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/20cfc053626f4d45c0fa7a4e7964b5b6","name":"\u6d77\u6597, \u8475","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/25aec9a18954b6bfb7e4f7219c2923d62c6f0c9f4d5c0171228fe41751c0ab7a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/25aec9a18954b6bfb7e4f7219c2923d62c6f0c9f4d5c0171228fe41751c0ab7a?s=96&d=mm&r=g","caption":"\u6d77\u6597, \u8475"},"url":"https:\/\/www.silicloud.com\/ja\/blog\/author\/kaitoaoi\/"},{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.silicloud.com\/ja\/blog\/kotlin%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%9fandroid%e3%81%ae%e9%80%b2%e6%8d%97%e3%83%90%e3%83%bc%e3%80%82\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/posts\/510","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/comments?post=510"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/posts\/510\/revisions"}],"predecessor-version":[{"id":41538,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/posts\/510\/revisions\/41538"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/media?parent=510"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/categories?post=510"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/tags?post=510"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}