{"id":37005,"date":"2024-11-01T09:54:00","date_gmt":"2024-11-01T09:54:00","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=37005"},"modified":"2024-11-01T11:42:38","modified_gmt":"2024-11-01T11:42:38","slug":"kotlin-android-app-development-course-activity-control","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/37005\/","title":{"rendered":"KOTLIN ANDROID APP DEVELOPMENT COURSE, ACTIVITY CONTROL"},"content":{"rendered":"<p><body><\/p>\n<article>\n<header>\n<p>This course provides an in-depth explanation and practical examples on how to control activities when developing Android apps using Kotlin.<\/p>\n<\/header>\n<section>\n<h2>1. What is an Activity?<\/h2>\n<p>An activity is a basic component that constitutes the UI of an Android app. Each activity represents a single screen that interacts with the user, and multiple activities are used to implement the app&#8217;s functionality.<\/p>\n<p>For example, a login screen, main screen, settings screen, etc., can each be composed of independent activities. Each activity has a lifecycle, which plays an important role in managing state changes in the app.<\/p>\n<\/section>\n<section>\n<h2>2. Activity Lifecycle<\/h2>\n<p>The lifecycle of an activity consists of the following main methods:<\/p>\n<ul>\n<li><strong>onCreate()<\/strong>: Called when the activity is created. It is used to initialize the UI and set up necessary data and resources.<\/li>\n<li><strong>onStart()<\/strong>: Called when the activity starts to become visible to the user.<\/li>\n<li><strong>onResume()<\/strong>: Called when the activity comes to the foreground. This is where interaction with the user can begin.<\/li>\n<li><strong>onPause()<\/strong>: Called when the current activity is paused before another activity is started. This is where necessary data saving tasks are performed.<\/li>\n<li><strong>onStop()<\/strong>: Called when the activity is no longer visible.<\/li>\n<li><strong>onDestroy()<\/strong>: Called when the activity is finished. This is where resource release tasks can be performed.<\/li>\n<\/ul>\n<p>By appropriately utilizing these lifecycle methods, you can effectively manage the state of the app.<\/p>\n<\/section>\n<section>\n<h2>3. Creating a Basic Activity<\/h2>\n<p>Now, let&#8217;s create a simple Android app. We will look at how to create a basic activity using Kotlin.<\/p>\n<h3>3.1 Creating a Project<\/h3>\n<p>Open Android Studio and create a new project. Choose <strong>Kotlin<\/strong> as the programming language and select the basic template of <strong>Empty Activity<\/strong>. We&#8217;ll set the project name as <strong>HelloWorld<\/strong>.<\/p>\n<h3>3.2 Writing Activity Code<\/h3>\n<pre><code class=\"language-kotlin\">\n                package com.example.helloworld\n\n                import android.os.Bundle\n                import androidx.appcompat.app.AppCompatActivity\n\n                class MainActivity : AppCompatActivity() {\n                    override fun onCreate(savedInstanceState: Bundle?) {\n                        super.onCreate(savedInstanceState)\n                        setContentView(R.layout.activity_main)\n                    }\n\n                    override fun onStart() {\n                        super.onStart()\n                        \/\/ Actions to perform when the activity starts\n                    }\n\n                    override fun onResume() {\n                        super.onResume()\n                        \/\/ Actions to perform when the activity is in the foreground\n                    }\n\n                    override fun onPause() {\n                        super.onPause()\n                        \/\/ Actions to perform when the activity is paused\n                    }\n\n                    override fun onStop() {\n                        super.onStop()\n                        \/\/ Actions to perform when the activity is no longer visible\n                    }\n\n                    override fun onDestroy() {\n                        super.onDestroy()\n                        \/\/ Actions to perform when the activity is destroyed\n                    }\n                }\n            <\/code><\/pre>\n<p>In the above code, we created a <strong>MainActivity<\/strong> class and overridden various lifecycle methods to define actions to be performed at each state.<\/p>\n<h3>3.3 Setting XML Layout<\/h3>\n<p>Now let&#8217;s modify the <strong>activity_main.xml<\/strong> file to define the UI.<\/p>\n<pre><code class=\"language-xml\">\n                &lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n                &lt;RelativeLayout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\n                    android:layout_width=\"match_parent\"\n                    android:layout_height=\"match_parent\"&gt;\n\n                    &lt;TextView\n                        android:id=\"@+id\/textView\"\n                        android:layout_width=\"wrap_content\"\n                        android:layout_height=\"wrap_content\"\n                        android:text=\"Hello World!\"\n                        android:layout_centerInParent=\"true\" \/&gt;\n\n                &lt;\/RelativeLayout&gt;\n            <\/code><\/pre>\n<p>In the above XML code, we used a <strong>TextView<\/strong> to display the text &#8220;Hello World!&#8221; at the center of the screen.<\/p>\n<\/section>\n<section>\n<h2>4. Navigating Between Activities<\/h2>\n<p>In Android apps, it is common to use multiple activities to construct the user interface. In this section, we will look at how to navigate between activities.<\/p>\n<h3>4.1 Creating a New Activity<\/h3>\n<p>We will add a new activity. Let&#8217;s create an activity named <strong>SecondActivity<\/strong> and set its contents as follows:<\/p>\n<pre><code class=\"language-kotlin\">\n                package com.example.helloworld\n\n                import android.os.Bundle\n                import androidx.appcompat.app.AppCompatActivity\n\n                class SecondActivity : AppCompatActivity() {\n                    override fun onCreate(savedInstanceState: Bundle?) {\n                        super.onCreate(savedInstanceState)\n                        setContentView(R.layout.activity_second)\n                    }\n                }\n            <\/code><\/pre>\n<h3>4.2 Setting XML Layout<\/h3>\n<p>We will also modify the corresponding XML layout file <strong>activity_second.xml<\/strong>.<\/p>\n<pre><code class=\"language-xml\">\n                &lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n                &lt;RelativeLayout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\n                    android:layout_width=\"match_parent\"\n                    android:layout_height=\"match_parent\"&gt;\n\n                    &lt;TextView\n                        android:layout_width=\"wrap_content\"\n                        android:layout_height=\"wrap_content\"\n                        android:text=\"This is the Second Activity\"\n                        android:layout_centerInParent=\"true\" \/&gt;\n\n                &lt;\/RelativeLayout&gt;\n            <\/code><\/pre>\n<h3>4.3 Adding Code for Activity Transition<\/h3>\n<p>Now let&#8217;s add code to <strong>MainActivity<\/strong> that allows navigation to <strong>SecondActivity<\/strong>. We will create a button and set it to switch to the new activity when clicked.<\/p>\n<pre><code class=\"language-xml\">\n                &lt;Button\n                    android:id=\"@+id\/button\"\n                    android:layout_width=\"wrap_content\"\n                    android:layout_height=\"wrap_content\"\n                    android:text=\"Go to Second Activity\"\n                    android:layout_below=\"@id\/textView\"\n                    android:layout_centerHorizontal=\"true\"\/&gt;   \n            <\/code><\/pre>\n<pre><code class=\"language-kotlin\">\n                \/\/ Add to the onCreate method of MainActivity\n                val button: Button = findViewById(R.id.button)\n                button.setOnClickListener {\n                    val intent = Intent(this, SecondActivity::class.java)\n                    startActivity(intent)\n                }\n            <\/code><\/pre>\n<p>When the button is clicked, it will transition to <strong>SecondActivity<\/strong>.<\/p>\n<\/section>\n<section>\n<h2>5. Passing Results Between Activities<\/h2>\n<p>Passing data between activities is also one of the important functions. Here, we will explain how to return results.<\/p>\n<h3>5.1 Setting Up the Activity to Return Results<\/h3>\n<p>First, we will modify <strong>SecondActivity<\/strong> to return a result.<\/p>\n<pre><code class=\"language-kotlin\">\n                \/\/ SecondActivity code\n                button.setOnClickListener {\n                    val resultIntent = Intent()\n                    resultIntent.putExtra(\"result\", \"Result from Second Activity\")\n                    setResult(RESULT_OK, resultIntent)\n                    finish()\n                }\n            <\/code><\/pre>\n<h3>5.2 Setting Up the Activity to Receive Results<\/h3>\n<p>Now, let&#8217;s modify <strong>MainActivity<\/strong> to receive results.<\/p>\n<pre><code class=\"language-kotlin\">\n                \/\/ Add to MainActivity code\n                val startForResult = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -&gt;\n                    if (result.resultCode == Activity.RESULT_OK) {\n                        val data: Intent? = result.data\n                        val resultText = data?.getStringExtra(\"result\")\n                        \/\/ Set result to TextView\n                    }\n                }\n\n                button.setOnClickListener {\n                    val intent = Intent(this, SecondActivity::class.java)\n                    startForResult.launch(intent)\n                }\n            <\/code><\/pre>\n<p>Now <strong>MainActivity<\/strong> can receive results from <strong>SecondActivity<\/strong> and reflect it in the UI.<\/p>\n<\/section>\n<section>\n<h2>6. Setting Activity Flags<\/h2>\n<p>In Android, you can set flags in the intent when starting an activity to control its behavior.<\/p>\n<p>Some of the most commonly used flags are:<\/p>\n<ul>\n<li><strong>FLAG_ACTIVITY_NEW_TASK<\/strong>: Starts the activity in a new task.<\/li>\n<li><strong>FLAG_ACTIVITY_CLEAR_TOP<\/strong>: Removes existing activities in the stack and starts the activity on top of them.<\/li>\n<\/ul>\n<h3>6.1 Example of Flags<\/h3>\n<pre><code class=\"language-kotlin\">\n                val intent = Intent(this, SecondActivity::class.java)\n                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)\n                startActivity(intent)\n            <\/code><\/pre>\n<p>In the above code, using <strong>FLAG_ACTIVITY_CLEAR_TOP<\/strong> will remove existing activities in the stack when starting <strong>SecondActivity<\/strong>.<\/p>\n<\/section>\n<section>\n<h2>7. Applying Activity Themes and Styles<\/h2>\n<p>You can apply various themes and styles to activities to adjust the UI. Here, we will explain how to create and apply a custom theme.<\/p>\n<h3>7.1 Setting the Theme<\/h3>\n<p>Open the res\/values\/styles.xml file and add a new theme.<\/p>\n<pre><code class=\"language-xml\">\n                &lt;style name=\"CustomTheme\" parent=\"Theme.AppCompat.Light.NoActionBar\"&gt;\n                    &lt;item name=\"colorPrimary\"&gt;#FF5722&lt;\/item&gt;\n                    &lt;item name=\"colorPrimaryDark\"&gt;#E64A19&lt;\/item&gt;\n                    &lt;item name=\"colorAccent\"&gt;#FFC107&lt;\/item&gt;\n                &lt;\/style&gt;\n            <\/code><\/pre>\n<h3>7.2 Applying the Theme<\/h3>\n<p>Apply the new theme to <strong>MainActivity<\/strong> in the AndroidManifest.xml file.<\/p>\n<pre><code class=\"language-xml\">\n                &lt;activity\n                    android:name=\".MainActivity\"\n                    android:theme=\"@style\/CustomTheme\"&gt;\n                &lt;\/activity&gt;\n            <\/code><\/pre>\n<p>In the above code, we set <strong>CustomTheme<\/strong> to be applied to the activity.<\/p>\n<\/section>\n<section>\n<h2>8. Ending an Activity<\/h2>\n<p>There are several ways to end an activity. By default, you can call the <strong>finish()<\/strong> method to terminate the current activity.<\/p>\n<p>It is also important to note that it is automatically handled when the user presses the back button to close an activity.<\/p>\n<pre><code class=\"language-kotlin\">\n                button.setOnClickListener {\n                    finish()\n                }\n            <\/code><\/pre>\n<p>In the above code, clicking the button will terminate the current activity.<\/p>\n<\/section>\n<footer>\n<h2>Conclusion<\/h2>\n<p>In this course, we covered how to control activities in Android apps using Kotlin. We explored various topics, including the lifecycle of an activity, creation and transition, result passing, and theme setting.<\/p>\n<p>Now you have a basic understanding of activity control using Kotlin, and you are equipped with foundational knowledge necessary for developing more complex apps in the future.<\/p>\n<p>I hope this course helps you on your journey in Android app development.<\/p>\n<\/footer>\n<\/article>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This course provides an in-depth explanation and practical examples on how to control activities when developing Android apps using Kotlin. 1. What is an Activity? An activity is a basic component that constitutes the UI of an Android app. Each activity represents a single screen that interacts with the user, and multiple activities are used &hellip; <a href=\"https:\/\/atmokpo.com\/w\/37005\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;KOTLIN ANDROID APP DEVELOPMENT COURSE, ACTIVITY CONTROL&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[143],"tags":[],"class_list":["post-37005","post","type-post","status-publish","format-standard","hentry","category-kotlin-android-app-development"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>KOTLIN ANDROID APP DEVELOPMENT COURSE, ACTIVITY CONTROL - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/atmokpo.com\/w\/37005\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"KOTLIN ANDROID APP DEVELOPMENT COURSE, ACTIVITY CONTROL - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"This course provides an in-depth explanation and practical examples on how to control activities when developing Android apps using Kotlin. 1. What is an Activity? An activity is a basic component that constitutes the UI of an Android app. Each activity represents a single screen that interacts with the user, and multiple activities are used &hellip; \ub354 \ubcf4\uae30 &quot;KOTLIN ANDROID APP DEVELOPMENT COURSE, ACTIVITY CONTROL&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/37005\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:54:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:42:38+00:00\" \/>\n<meta name=\"author\" content=\"root\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:site\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"root\" \/>\n\t<meta name=\"twitter:label2\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data2\" content=\"6\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/37005\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37005\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"KOTLIN ANDROID APP DEVELOPMENT COURSE, ACTIVITY CONTROL\",\"datePublished\":\"2024-11-01T09:54:00+00:00\",\"dateModified\":\"2024-11-01T11:42:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37005\/\"},\"wordCount\":807,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Kotlin Android app development\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/37005\/\",\"url\":\"https:\/\/atmokpo.com\/w\/37005\/\",\"name\":\"KOTLIN ANDROID APP DEVELOPMENT COURSE, ACTIVITY CONTROL - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:54:00+00:00\",\"dateModified\":\"2024-11-01T11:42:38+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37005\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/37005\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/37005\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"KOTLIN ANDROID APP DEVELOPMENT COURSE, ACTIVITY CONTROL\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/atmokpo.com\/w\/#website\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/atmokpo.com\/w\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"contentUrl\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"width\":400,\"height\":400,\"caption\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\"},\"image\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/bebubo4\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\",\"name\":\"root\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"caption\":\"root\"},\"sameAs\":[\"http:\/\/atmokpo.com\/w\"],\"url\":\"https:\/\/atmokpo.com\/w\/author\/root\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"KOTLIN ANDROID APP DEVELOPMENT COURSE, ACTIVITY CONTROL - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","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:\/\/atmokpo.com\/w\/37005\/","og_locale":"ko_KR","og_type":"article","og_title":"KOTLIN ANDROID APP DEVELOPMENT COURSE, ACTIVITY CONTROL - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"This course provides an in-depth explanation and practical examples on how to control activities when developing Android apps using Kotlin. 1. What is an Activity? An activity is a basic component that constitutes the UI of an Android app. Each activity represents a single screen that interacts with the user, and multiple activities are used &hellip; \ub354 \ubcf4\uae30 \"KOTLIN ANDROID APP DEVELOPMENT COURSE, ACTIVITY CONTROL\"","og_url":"https:\/\/atmokpo.com\/w\/37005\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:54:00+00:00","article_modified_time":"2024-11-01T11:42:38+00:00","author":"root","twitter_card":"summary_large_image","twitter_creator":"@bebubo4","twitter_site":"@bebubo4","twitter_misc":{"\uae00\uc4f4\uc774":"root","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"6\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/37005\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/37005\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"KOTLIN ANDROID APP DEVELOPMENT COURSE, ACTIVITY CONTROL","datePublished":"2024-11-01T09:54:00+00:00","dateModified":"2024-11-01T11:42:38+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/37005\/"},"wordCount":807,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Kotlin Android app development"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/37005\/","url":"https:\/\/atmokpo.com\/w\/37005\/","name":"KOTLIN ANDROID APP DEVELOPMENT COURSE, ACTIVITY CONTROL - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:54:00+00:00","dateModified":"2024-11-01T11:42:38+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/37005\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/37005\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/37005\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"KOTLIN ANDROID APP DEVELOPMENT COURSE, ACTIVITY CONTROL"}]},{"@type":"WebSite","@id":"https:\/\/atmokpo.com\/w\/#website","url":"https:\/\/atmokpo.com\/w\/","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","description":"","publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/atmokpo.com\/w\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/atmokpo.com\/w\/#organization","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","url":"https:\/\/atmokpo.com\/w\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/","url":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","contentUrl":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","width":400,"height":400,"caption":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8"},"image":{"@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/bebubo4"]},{"@type":"Person","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7","name":"root","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","caption":"root"},"sameAs":["http:\/\/atmokpo.com\/w"],"url":"https:\/\/atmokpo.com\/w\/author\/root\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/37005","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/comments?post=37005"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/37005\/revisions"}],"predecessor-version":[{"id":37006,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/37005\/revisions\/37006"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=37005"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=37005"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=37005"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}