{"id":37079,"date":"2024-11-01T09:54:41","date_gmt":"2024-11-01T09:54:41","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=37079"},"modified":"2024-11-01T11:42:19","modified_gmt":"2024-11-01T11:42:19","slug":"kotlin-android-app-development-course-arranged-in-a-table-format-gridlayout","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/37079\/","title":{"rendered":"kotlin android app development course, arranged in a table format &#8211; GridLayout"},"content":{"rendered":"<p><body><\/p>\n<article>\n<header>\n<\/header>\n<section>\n<h2>1. Introduction to GridLayout<\/h2>\n<p>GridLayout is a layout in Android that allows you to arrange UI components in a grid. It can be divided into required rows and columns using classes, and it offers various size and placement options. It is useful for constructing complex UIs and is particularly suited for visually representing sorted data.<\/p>\n<p>Using GridLayout, you can easily specify the size and position of each view to design app UIs in various formats. This layout allows buttons, text views, images, and more to be arranged in a grid format.<\/p>\n<\/section>\n<section>\n<h2>2. Setting Up and Using GridLayout<\/h2>\n<h3>2.1 Basic Setup<\/h3>\n<p>To use GridLayout, add the following to your XML layout file:<\/p>\n<pre><code>&lt;GridLayout\n    xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"wrap_content\"\n    android:rowCount=\"2\"\n    android:columnCount=\"3\"&gt;\n\n    &lt;TextView\n        android:layout_width=\"0dp\"\n        android:layout_height=\"wrap_content\"\n        android:layout_row=\"0\"\n        android:layout_column=\"0\"\n        android:text=\"1\"\n        android:layout_columnWeight=\"1\"\/&gt;\n\n    &lt;TextView\n        android:layout_width=\"0dp\"\n        android:layout_height=\"wrap_content\"\n        android:layout_row=\"0\"\n        android:layout_column=\"1\"\n        android:text=\"2\"\n        android:layout_columnWeight=\"1\"\/&gt;\n\n    &lt;TextView\n        android:layout_width=\"0dp\"\n        android:layout_height=\"wrap_content\"\n        android:layout_row=\"0\"\n        android:layout_column=\"2\"\n        android:text=\"3\"\n        android:layout_columnWeight=\"1\"\/&gt;\n\n    &lt;TextView\n        android:layout_width=\"0dp\"\n        android:layout_height=\"wrap_content\"\n        android:layout_row=\"1\"\n        android:layout_column=\"0\"\n        android:text=\"4\"\n        android:layout_columnWeight=\"1\"\/&gt;\n\n    &lt;TextView\n        android:layout_width=\"0dp\"\n        android:layout_height=\"wrap_content\"\n        android:layout_row=\"1\"\n        android:layout_column=\"1\"\n        android:text=\"5\"\n        android:layout_columnWeight=\"1\"\/&gt;\n\n    &lt;TextView\n        android:layout_width=\"0dp\"\n        android:layout_height=\"wrap_content\"\n        android:layout_row=\"1\"\n        android:layout_column=\"2\"\n        android:text=\"6\"\n        android:layout_columnWeight=\"1\"\/&gt;\n\n&lt;\/GridLayout&gt;<\/code><\/pre>\n<p>The code above sets up a GridLayout with 2 rows and 3 columns. Each TextView is constructed to be of the same size. The <code>layout_columnWeight<\/code> attribute can be used to adjust the proportion of each column.<\/p>\n<\/section>\n<section>\n<h2>3. Properties of GridLayout<\/h2>\n<p>GridLayout has several properties, some of which include:<\/p>\n<ul>\n<li><code>rowCount<\/code>: Sets the number of rows in the GridLayout.<\/li>\n<li><code>columnCount<\/code>: Sets the number of columns in the GridLayout.<\/li>\n<li><code>layout_row<\/code>: Sets the row index for each view.<\/li>\n<li><code>layout_column<\/code>: Sets the column index for each view.<\/li>\n<li><code>layout_rowWeight<\/code>: Sets the weight for the row&#8217;s proportional size.<\/li>\n<li><code>layout_columnWeight<\/code>: Sets the weight for the column&#8217;s proportional size.<\/li>\n<\/ul>\n<\/section>\n<section>\n<h2>4. Code Examples<\/h2>\n<h3>4.1 Simple Calculator App<\/h3>\n<p>Let&#8217;s create a simple calculator UI using GridLayout. Below is the complete XML code example:<\/p>\n<pre><code>&lt;RelativeLayout\n    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;GridLayout\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"wrap_content\"\n        android:layout_centerInParent=\"true\"\n        android:rowCount=\"5\"\n        android:columnCount=\"4\"&gt;\n\n        &lt;EditText\n            android:id=\"@+id\/inputField\"\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_columnSpan=\"4\"\n            android:layout_row=\"0\"\n            android:padding=\"16dp\"\n            android:hint=\"Enter Calculation\"\/&gt;\n\n        &lt;Button\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_row=\"1\"\n            android:layout_column=\"0\"\n            android:text=\"1\"\n            android:layout_columnWeight=\"1\"\/&gt;\n\n        &lt;Button\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_row=\"1\"\n            android:layout_column=\"1\"\n            android:text=\"2\"\n            android:layout_columnWeight=\"1\"\/&gt;\n\n        &lt;Button\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_row=\"1\"\n            android:layout_column=\"2\"\n            android:text=\"3\"\n            android:layout_columnWeight=\"1\"\/&gt;\n\n        &lt;Button\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_row=\"1\"\n            android:layout_column=\"3\"\n            android:text=\"+\"\n            android:layout_columnWeight=\"1\"\/&gt;\n\n        &lt;Button\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_row=\"2\"\n            android:layout_column=\"0\"\n            android:text=\"4\"\n            android:layout_columnWeight=\"1\"\/&gt;\n\n        &lt;Button\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_row=\"2\"\n            android:layout_column=\"1\"\n            android:text=\"5\"\n            android:layout_columnWeight=\"1\"\/&gt;\n\n        &lt;Button\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_row=\"2\"\n            android:layout_column=\"2\"\n            android:text=\"6\"\n            android:layout_columnWeight=\"1\"\/&gt;\n\n        &lt;Button\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_row=\"2\"\n            android:layout_column=\"3\"\n            android:text=\"-\"\n            android:layout_columnWeight=\"1\"\/&gt;\n\n        &lt;Button\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_row=\"3\"\n            android:layout_column=\"0\"\n            android:text=\"7\"\n            android:layout_columnWeight=\"1\"\/&gt;\n\n        &lt;Button\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_row=\"3\"\n            android:layout_column=\"1\"\n            android:text=\"8\"\n            android:layout_columnWeight=\"1\"\/&gt;\n\n        &lt;Button\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_row=\"3\"\n            android:layout_column=\"2\"\n            android:text=\"9\"\n            android:layout_columnWeight=\"1\"\/&gt;\n\n        &lt;Button\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_row=\"3\"\n            android:layout_column=\"3\"\n            android:text=\"*\"\n            android:layout_columnWeight=\"1\"\/&gt;\n\n        &lt;Button\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_row=\"4\"\n            android:layout_column=\"0\"\n            android:text=\"C\"\n            android:layout_columnWeight=\"1\"\/&gt;\n\n        &lt;Button\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_row=\"4\"\n            android:layout_column=\"1\"\n            android:text=\"0\"\n            android:layout_columnWeight=\"1\"\/&gt;\n\n        &lt;Button\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_row=\"4\"\n            android:layout_column=\"2\"\n            android:text=\"=\"\n            android:layout_columnWeight=\"1\"\/&gt;\n\n        &lt;Button\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_row=\"4\"\n            android:layout_column=\"3\"\n            android:text=\"\/\"\n            android:layout_columnWeight=\"1\"\/&gt;\n\n    &lt;\/GridLayout&gt;\n\n&lt;\/RelativeLayout&gt;<\/code><\/pre>\n<p>The example above implements a basic calculator UI using GridLayout. Each button has a width of 0dp, and they are divided proportionally using <code>layout_columnWeight<\/code>.<\/p>\n<h3>4.2 Connecting with Activity<\/h3>\n<p>Now, let&#8217;s connect the UI with Kotlin code. The code for the MainActivity.kt file is as follows:<\/p>\n<pre><code>import android.os.Bundle\nimport android.view.View\nimport android.widget.Button\nimport android.widget.EditText\nimport androidx.appcompat.app.AppCompatActivity\n\nclass MainActivity : AppCompatActivity() {\n\n    private lateinit var inputField: EditText\n\n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n        setContentView(R.layout.activity_main)\n\n        inputField = findViewById(R.id.inputField)\n\n        val buttons = listOf(\n            R.id.btn1, R.id.btn2, R.id.btn3, R.id.btnPlus,\n            R.id.btn4, R.id.btn5, R.id.btn6, R.id.btnMinus,\n            R.id.btn7, R.id.btn8, R.id.btn9, R.id.btnMultiply,\n            R.id.btnC, R.id.btn0, R.id.btnEqual, R.id.btnDivide\n        )\n\n        buttons.forEach { buttonId -&gt;\n            findViewById<Button>(buttonId).setOnClickListener(buttonClickListener)\n        }\n    }\n\n    private val buttonClickListener = View.OnClickListener { view -&gt;\n        val button = view as Button\n        val text = button.text.toString()\n\n        when (text) {\n            \"C\" -&gt; inputField.text.clear()\n            \"=\" -&gt; calculateResult()\n            else -&gt; inputField.append(text)\n        }\n    }\n\n    private fun calculateResult() {\n        \/\/ Implement simple calculation logic\n        \/\/ The actual calculation logic needs to be implemented appropriately\n        \/\/ For demonstration purposes, just outputting the format\n        val result = inputField.text.toString()\n        inputField.setText(result) \/\/ Display the result in the input field\n    }\n}<\/code><\/pre>\n<p>The above code adds click listeners to each button to handle user input. When a number button is clicked, that number is added to the input field; the &#8220;C&#8221; button clears the input field, and the &#8220;=&#8221; button executes the calculation logic for the result.<\/p>\n<\/section>\n<section>\n<h2>5. Advantages of Using GridLayout<\/h2>\n<p>Using GridLayout offers the following advantages:<\/p>\n<ul>\n<li>Flexible layout: You can finely adjust the size and position of each view.<\/li>\n<li>Proportion adjustment: You can create proportionally-based dynamic UIs using <code>layout_columnWeight<\/code> and <code>layout_rowWeight<\/code> attributes.<\/li>\n<li>Universal application: It provides patterns that can easily be used in many user interface designs.<\/li>\n<\/ul>\n<\/section>\n<section>\n<h2>6. Disadvantages of GridLayout<\/h2>\n<p>However, GridLayout also has some disadvantages:<\/p>\n<ul>\n<li>Complexity: The complexity can increase when arranging multiple views.<\/li>\n<li>Performance: It can affect performance when arranging many views.<\/li>\n<\/ul>\n<\/section>\n<section>\n<h2>7. Summary<\/h2>\n<p>In this tutorial, we explored how to design a UI using GridLayout. We understood the advantages and disadvantages of GridLayout and practiced with a simple calculator app. GridLayout is a useful layout that allows the construction of UIs in a grid format, applicable in various apps.<\/p>\n<\/section>\n<footer>\n<p>Did you find this article useful? If you have any further questions or requests, please leave a comment!<\/p>\n<\/footer>\n<\/article>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Introduction to GridLayout GridLayout is a layout in Android that allows you to arrange UI components in a grid. It can be divided into required rows and columns using classes, and it offers various size and placement options. It is useful for constructing complex UIs and is particularly suited for visually representing sorted data. &hellip; <a href=\"https:\/\/atmokpo.com\/w\/37079\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;kotlin android app development course, arranged in a table format &#8211; GridLayout&#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-37079","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, arranged in a table format - GridLayout - \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\/37079\/\" \/>\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, arranged in a table format - GridLayout - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"1. Introduction to GridLayout GridLayout is a layout in Android that allows you to arrange UI components in a grid. It can be divided into required rows and columns using classes, and it offers various size and placement options. It is useful for constructing complex UIs and is particularly suited for visually representing sorted data. &hellip; \ub354 \ubcf4\uae30 &quot;kotlin android app development course, arranged in a table format &#8211; GridLayout&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/37079\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:54:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:42:19+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\/37079\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37079\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"kotlin android app development course, arranged in a table format &#8211; GridLayout\",\"datePublished\":\"2024-11-01T09:54:41+00:00\",\"dateModified\":\"2024-11-01T11:42:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37079\/\"},\"wordCount\":463,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Kotlin Android app development\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/37079\/\",\"url\":\"https:\/\/atmokpo.com\/w\/37079\/\",\"name\":\"kotlin android app development course, arranged in a table format - GridLayout - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:54:41+00:00\",\"dateModified\":\"2024-11-01T11:42:19+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/37079\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/37079\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/37079\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"kotlin android app development course, arranged in a table format &#8211; GridLayout\"}]},{\"@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, arranged in a table format - GridLayout - \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\/37079\/","og_locale":"ko_KR","og_type":"article","og_title":"kotlin android app development course, arranged in a table format - GridLayout - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"1. Introduction to GridLayout GridLayout is a layout in Android that allows you to arrange UI components in a grid. It can be divided into required rows and columns using classes, and it offers various size and placement options. It is useful for constructing complex UIs and is particularly suited for visually representing sorted data. &hellip; \ub354 \ubcf4\uae30 \"kotlin android app development course, arranged in a table format &#8211; GridLayout\"","og_url":"https:\/\/atmokpo.com\/w\/37079\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:54:41+00:00","article_modified_time":"2024-11-01T11:42:19+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\/37079\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/37079\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"kotlin android app development course, arranged in a table format &#8211; GridLayout","datePublished":"2024-11-01T09:54:41+00:00","dateModified":"2024-11-01T11:42:19+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/37079\/"},"wordCount":463,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Kotlin Android app development"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/37079\/","url":"https:\/\/atmokpo.com\/w\/37079\/","name":"kotlin android app development course, arranged in a table format - GridLayout - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:54:41+00:00","dateModified":"2024-11-01T11:42:19+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/37079\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/37079\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/37079\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"kotlin android app development course, arranged in a table format &#8211; GridLayout"}]},{"@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\/37079","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=37079"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/37079\/revisions"}],"predecessor-version":[{"id":37080,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/37079\/revisions\/37080"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=37079"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=37079"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=37079"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}