{"id":36931,"date":"2024-11-01T09:53:25","date_gmt":"2024-11-01T09:53:25","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=36931"},"modified":"2024-11-01T11:42:58","modified_gmt":"2024-11-01T11:42:58","slug":"kotlin-android-app-development-course-looking-at-basic-views","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/36931\/","title":{"rendered":"kotlin android app development course, looking at basic views"},"content":{"rendered":"<p><body><\/p>\n<p>In Android app development, a &#8220;View&#8221; is the most basic component of the User Interface (UI). In this course, we will take a closer look at the basic views of Android apps using Kotlin. We will learn about the types and characteristics of views, as well as how to utilize them through actual example code.<\/p>\n<h2>1. Understanding Views<\/h2>\n<p>A view is an element that allows users to interact with the app. It serves the role of displaying information (text, images, etc.) to the user or collecting user input. There are various views provided in Android, all of which inherit from the View class.<\/p>\n<p>Commonly used views include:<\/p>\n<ul>\n<li><strong>TextView<\/strong>: A view that displays text on the screen.<\/li>\n<li><strong>EditText<\/strong>: A view that allows users to enter text.<\/li>\n<li><strong>Button<\/strong>: A button that can be clicked by the user.<\/li>\n<li><strong>ImageView<\/strong>: A view that displays images.<\/li>\n<li><strong>CheckBox<\/strong>: A checkbox that can be selected.<\/li>\n<li><strong>RadioButton<\/strong>: A radio button that allows selecting one option among multiple choices.<\/li>\n<li><strong>ListView<\/strong>: A view that displays multiple items in a list format.<\/li>\n<\/ul>\n<h2>2. Basic View Example<\/h2>\n<p>Now, let&#8217;s create a simple Android app using basic views. In this example, we will implement an app that receives user input through TextView, EditText, and Button, displaying the entered text in TextView upon button click.<\/p>\n<h3>2.1. Project Setup<\/h3>\n<p>Create a new project in Android Studio. Please follow the settings below:<\/p>\n<ul>\n<li>Select Project: Empty Activity<\/li>\n<li>Select Language: Kotlin<\/li>\n<li>Select Minimum API level: API 21: Android 5.0 (Lollipop)<\/li>\n<\/ul>\n<h3>2.2. Layout Configuration<\/h3>\n<p>Once the project is created, open the <code>res\/layout\/activity_main.xml<\/code> file and update it as follows:<\/p>\n<pre><code>\n&lt;LinearLayout\n    xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\"\n    android:orientation=\"vertical\"\n    android:padding=\"16dp\"&gt;\n\n    &lt;TextView\n        android:id=\"@+id\/textView\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"wrap_content\"\n        android:text=\"The entered text will be displayed here.\"\n        android:textSize=\"24sp\"\/&gt;\n\n    &lt;EditText\n        android:id=\"@+id\/editText\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"wrap_content\"\n        android:hint=\"Enter text here\"\/&gt;\n\n    &lt;Button\n        android:id=\"@+id\/button\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"wrap_content\"\n        android:text=\"Display Text\"\/&gt;\n\n&lt;\/LinearLayout&gt;\n<\/code><\/pre>\n<h3>2.3. Implementing MainActivity Class<\/h3>\n<p>Now, navigate to the <code>MainActivity.kt<\/code> file and add logic to change the text upon button click:<\/p>\n<pre><code>\npackage com.example.myapp\n\nimport androidx.appcompat.app.AppCompatActivity\nimport android.os.Bundle\nimport android.widget.Button\nimport android.widget.EditText\nimport android.widget.TextView\n\nclass MainActivity : AppCompatActivity() {\n\n    private lateinit var textView: TextView\n    private lateinit var editText: EditText\n    private lateinit var button: Button\n\n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n        setContentView(R.layout.activity_main)\n\n        textView = findViewById(R.id.textView)\n        editText = findViewById(R.id.editText)\n        button = findViewById(R.id.button)\n\n        button.setOnClickListener {\n            textView.text = editText.text\n        }\n    }\n}\n<\/code><\/pre>\n<h3>2.4. Running the App<\/h3>\n<p>Now, when the app is run, the text entered by the user in EditText will be displayed in TextView upon clicking the button.<\/p>\n<h2>3. Properties and Uses of Various Views<\/h2>\n<p>In addition to the basic views discussed above, we will look at various other views, their properties, and how to handle events.<\/p>\n<h3>3.1. TextView<\/h3>\n<p>TextView has various properties. The most commonly used properties are:<\/p>\n<ul>\n<li><code>text<\/code>: Sets the text.<\/li>\n<li><code>textSize<\/code>: Sets the size of the text.<\/li>\n<li><code>textColor<\/code>: Sets the color of the text.<\/li>\n<li><code>gravity<\/code>: Sets the alignment of the text.<\/li>\n<\/ul>\n<pre><code>\n&lt;TextView\n    android:id=\"@+id\/textView\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"wrap_content\"\n    android:text=\"Hello!\"\n    android:textSize=\"18sp\"\n    android:textColor=\"#FF6347\"\n    android:gravity=\"center\"\/&gt;\n<\/code><\/pre>\n<h3>3.2. EditText<\/h3>\n<p>EditText is a view that can receive user input and can be configured with additional properties such as input format.<\/p>\n<p>Commonly used properties:<\/p>\n<ul>\n<li><code>hint<\/code>: Provides a hint in the input field.<\/li>\n<li><code>inputType<\/code>: Sets the format of input (e.g., text, number, email, etc.).<\/li>\n<\/ul>\n<pre><code>\n&lt;EditText\n    android:id=\"@+id\/editText\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"wrap_content\"\n    android:hint=\"Enter email\"\n    android:inputType=\"textEmailAddress\"\/&gt;\n<\/code><\/pre>\n<h3>3.3. Button<\/h3>\n<p>A Button is a view that can handle events, allowing for various background colors, text colors, etc.<\/p>\n<p>Additionally, buttons in Android can handle click events to perform various actions. To do this, the <code>setOnClickListener<\/code> method is used.<\/p>\n<h3>3.4. CheckBox and RadioButton<\/h3>\n<p>A CheckBox allows multiple options to be selected, while a RadioButton allows only one option to be selected from multiple choices.<\/p>\n<p>For example, you can use CheckBox and RadioButton like this:<\/p>\n<pre><code>\n&lt;CheckBox\n    android:id=\"@+id\/checkBox\"\n    android:layout_width=\"wrap_content\"\n    android:layout_height=\"wrap_content\"\n    android:text=\"Option 1\"\/&gt;\n\n&lt;RadioGroup\n    android:layout_width=\"wrap_content\"\n    android:layout_height=\"wrap_content\"&gt;\n    \n    &lt;RadioButton\n        android:id=\"@+id\/radioButton1\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:text=\"Option A\"\/&gt;\n\n    &lt;RadioButton\n        android:id=\"@+id\/radioButton2\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:text=\"Option B\"\/&gt;\n\n&lt;\/RadioGroup&gt;\n<\/code><\/pre>\n<h2>4. Event Handling<\/h2>\n<p>All views have methods that can handle various events. The basic events that can be handled include:<\/p>\n<ul>\n<li><code>OnClickListener<\/code>: Handles click events.<\/li>\n<li><code>OnLongClickListener<\/code>: Handles long click events.<\/li>\n<li><code>TextWatcher<\/code>: Detects changes in text.<\/li>\n<\/ul>\n<h3>4.1. Button Click Event<\/h3>\n<p>To define an action when the button is clicked, you can use the <code>setOnClickListener<\/code> method. In the <code>MainActivity.kts<\/code> file, you can handle the button click event as follows:<\/p>\n<pre><code>\nbutton.setOnClickListener {\n    \/\/ Code to execute when the button is clicked\n    Toast.makeText(this, \"Button was clicked.\", Toast.LENGTH_SHORT).show()\n}\n<\/code><\/pre>\n<h3>4.2. Using TextWatcher<\/h3>\n<p>You can use <code>TextWatcher<\/code> to detect changes whenever the user types text in EditText. Here is an example of how to implement it:<\/p>\n<pre><code>\neditText.addTextChangedListener(object : TextWatcher {\n    override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}\n\n    override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {\n        \/\/ Code to handle when the text changes\n    }\n\n    override fun afterTextChanged(s: Editable?) {}\n})\n<\/code><\/pre>\n<h2>5. Types of Layouts<\/h2>\n<p>In Android, there are various layouts in which views can be arranged. The following layouts are frequently used:<\/p>\n<h3>5.1. LinearLayout<\/h3>\n<p>LinearLayout is a layout that allows views to be arranged vertically or horizontally. The <code>orientation<\/code> property can be used to set the direction.<\/p>\n<pre><code>\n&lt;LinearLayout\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\"\n    android:orientation=\"vertical\"&gt;\n    ...\n&lt;\/LinearLayout&gt;\n<\/code><\/pre>\n<h3>5.2. RelativeLayout<\/h3>\n<p>RelativeLayout is a layout that allows you to set the relative position between views. You can position a view based on the position of another view.<\/p>\n<pre><code>\n&lt;RelativeLayout\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:layout_alignParentTop=\"true\"\n        android:text=\"Positioned at the top\"\/&gt;\n\n    &lt;Button\n        android:id=\"@+id\/button\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:layout_below=\"@id\/textView\"\n        android:text=\"Positioned below the button\"\/&gt;\n\n&lt;\/RelativeLayout&gt;\n<\/code><\/pre>\n<h3>5.3. ConstraintLayout<\/h3>\n<p>ConstraintLayout is a layout that helps in easily constructing complex layouts. It allows you to set constraints between views for flexible placement.<\/p>\n<pre><code>\n&lt;androidx.constraintlayout.widget.ConstraintLayout\n    xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\n    xmlns:app=\"http:\/\/schemas.android.com\/apk\/res-auto\"\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=\"0dp\"\n        android:layout_height=\"wrap_content\"\n        android:text=\"Hello!\"\n        app:layout_constraintTop_toTopOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\/&gt;\n\n    &lt;Button\n        android:id=\"@+id\/button\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:text=\"Click\"\n        app:layout_constraintTop_toBottomOf=\"@id\/textView\"\n        app:layout_constraintStart_toStartOf=\"parent\"\/&gt;\n\n&lt;\/androidx.constraintlayout.widget.ConstraintLayout&gt;\n<\/code><\/pre>\n<h2>6. Advanced Views and Custom Views<\/h2>\n<p>In addition to the built-in views, you can create custom views in Android to meet specific functionality or design requirements of your app.<\/p>\n<h3>6.1. Creating a Custom View<\/h3>\n<p>The following example explains how to create a custom view. First, create a new Kotlin class that inherits from the View class:<\/p>\n<pre><code>\nimport android.content.Context\nimport android.graphics.Canvas\nimport android.graphics.Color\nimport android.graphics.Paint\nimport android.util.AttributeSet\nimport android.view.View\n\nclass CustomView(context: Context, attrs: AttributeSet) : View(context, attrs) {\n\n    private val paint = Paint()\n\n    override fun onDraw(canvas: Canvas) {\n        super.onDraw(canvas)\n        paint.color = Color.BLUE\n        canvas.drawRect(0f, 0f, width.toFloat(), height.toFloat(), paint)\n    }\n}\n<\/code><\/pre>\n<p>Once you create the class above, you can use the custom view in the XML layout file:<\/p>\n<pre><code>\n&lt;com.example.myapp.CustomView\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"200dp\"\/&gt;\n<\/code><\/pre>\n<h2>7. Conclusion and Deployment<\/h2>\n<p>We have now learned about basic views and their utilization. I hope you have gained an understanding of the foundational elements needed to create a real app. In the next lesson, we will cover more complex views and implementations of lists and graphs using various adapters.<\/p>\n<p>Of course, once your app is complete, you need to prepare for deployment through Google Play. Before distribution, it is essential to thoroughly test the app and improve it based on user feedback.<\/p>\n<p>I hope this article has been helpful, and I encourage you to continue your interest and efforts in Android app development using Kotlin.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Android app development, a &#8220;View&#8221; is the most basic component of the User Interface (UI). In this course, we will take a closer look at the basic views of Android apps using Kotlin. We will learn about the types and characteristics of views, as well as how to utilize them through actual example code. &hellip; <a href=\"https:\/\/atmokpo.com\/w\/36931\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;kotlin android app development course, looking at basic views&#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-36931","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, looking at basic views - \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\/36931\/\" \/>\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, looking at basic views - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"In Android app development, a &#8220;View&#8221; is the most basic component of the User Interface (UI). In this course, we will take a closer look at the basic views of Android apps using Kotlin. We will learn about the types and characteristics of views, as well as how to utilize them through actual example code. &hellip; \ub354 \ubcf4\uae30 &quot;kotlin android app development course, looking at basic views&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/36931\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:53:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:42:58+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=\"7\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/36931\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36931\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"kotlin android app development course, looking at basic views\",\"datePublished\":\"2024-11-01T09:53:25+00:00\",\"dateModified\":\"2024-11-01T11:42:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36931\/\"},\"wordCount\":832,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Kotlin Android app development\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/36931\/\",\"url\":\"https:\/\/atmokpo.com\/w\/36931\/\",\"name\":\"kotlin android app development course, looking at basic views - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:53:25+00:00\",\"dateModified\":\"2024-11-01T11:42:58+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36931\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/36931\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/36931\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"kotlin android app development course, looking at basic views\"}]},{\"@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, looking at basic views - \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\/36931\/","og_locale":"ko_KR","og_type":"article","og_title":"kotlin android app development course, looking at basic views - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"In Android app development, a &#8220;View&#8221; is the most basic component of the User Interface (UI). In this course, we will take a closer look at the basic views of Android apps using Kotlin. We will learn about the types and characteristics of views, as well as how to utilize them through actual example code. &hellip; \ub354 \ubcf4\uae30 \"kotlin android app development course, looking at basic views\"","og_url":"https:\/\/atmokpo.com\/w\/36931\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:53:25+00:00","article_modified_time":"2024-11-01T11:42:58+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":"7\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/36931\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/36931\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"kotlin android app development course, looking at basic views","datePublished":"2024-11-01T09:53:25+00:00","dateModified":"2024-11-01T11:42:58+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/36931\/"},"wordCount":832,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Kotlin Android app development"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/36931\/","url":"https:\/\/atmokpo.com\/w\/36931\/","name":"kotlin android app development course, looking at basic views - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:53:25+00:00","dateModified":"2024-11-01T11:42:58+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/36931\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/36931\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/36931\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"kotlin android app development course, looking at basic views"}]},{"@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\/36931","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=36931"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36931\/revisions"}],"predecessor-version":[{"id":36932,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36931\/revisions\/36932"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=36931"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=36931"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=36931"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}