{"id":241979,"date":"2022-03-31T16:47:41","date_gmt":"2022-03-31T15:47:41","guid":{"rendered":"https:\/\/blog.jetbrains.com\/kotlin\/2022\/03\/appcode-kmm-update\/"},"modified":"2022-04-27T08:40:57","modified_gmt":"2022-04-27T07:40:57","slug":"appcode-kmm-update","status":"publish","type":"kotlin","link":"https:\/\/blog.jetbrains.com\/ko\/kotlin\/2022\/03\/appcode-kmm-update\/","title":{"rendered":"AppCode\uc6a9 Kotlin Multiplatform Mobile \ud50c\ub7ec\uadf8\uc778\uc5d0\uc11c \ubaa8\ub4e0 \uc885\ub958\uc758 \uba40\ud2f0\ud50c\ub7ab\ud3fc \ud504\ub85c\uc81d\ud2b8 \uc9c0\uc6d0 \ubc0f Android \ud1b5\ud569"},"content":{"rendered":"<p>AppCode\uc6a9 Kotlin Multiplatform Mobile \ud50c\ub7ec\uadf8\uc778\uc774 \ub300\uaddc\ubaa8 \uc5c5\ub370\uc774\ud2b8\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc5ec\ub7ec\ubd84\uc5d0\uac8c \uc54c\ub824 \ub4dc\ub9b4 \uc88b\uc740 \uc18c\uc2dd\uc774 \uc788\uc2b5\ub2c8\ub2e4!<\/p>\n<h2 id=\"support_for_all_kinds_of_multiplatform_projects\">\ubaa8\ub4e0 \uc885\ub958\uc758 \uba40\ud2f0\ud50c\ub7ab\ud3fc \ud504\ub85c\uc81d\ud2b8 \uc9c0\uc6d0<\/h2>\n<p>\uc624\ub7ab\ub3d9\uc548 \uc774 \ud50c\ub7ec\uadf8\uc778\uc5d0\uc11c\ub294 \ud2b9\uc218 iOS\/macOS \ubd80\ubd84\uc744 \uac00\uc9c4 <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/06\/kmm-for-appcode\/#create_a_project\">Gradle DSL<\/a>\ub9cc \ud504\ub85c\uc81d\ud2b8 \ubaa8\ub378\ub85c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc5c8\uc2b5\ub2c8\ub2e4. \uc774\uc81c Kotlin Multiplatform Mobile \ud504\ub85c\uc81d\ud2b8\ub97c \uc77c\ubc18 Xcode \ud504\ub85c\uc81d\ud2b8\/\uc791\uc5c5 \uacf5\uac04\uc774\ub098 CocoaPods\ub85c \uad6c\uc131\ub41c Kotlin \ubd80\ubd84\uc5d0\uc11c \uc5f4 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/03\/kmm-2x.png\" alt=\"Xcode \ubc0f KMM \ud504\ub85c\uc81d\ud2b8\" width=\"800\"><\/p>\n<p>\uc804\uccb4 \uc5b8\uc5b4 \ub9ac\ud329\ud130\ub9c1 \ubc0f \ud0d0\uc0c9 \uc561\uc158\uc744 \ud3ec\ud568\ud55c \ubaa8\ub4e0 \uae30\ub2a5\uc774 \uc9c0\uc6d0\ub429\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/03\/refactor-2x-1.png\" alt=\"\ub9ac\ud329\ud130\ub9c1\" width=\"800\"><\/p>\n<p>\uc774\ub294 \uace7, \ubaa8\ub4e0 \ud504\ub85c\uc81d\ud2b8 \ud615\uc2dd\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4\ub294 \ub73b\uc785\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \uc77c\ubc18 Kotlin Multiplatform \ud504\ub85c\uc81d\ud2b8(\uc608: Android Studio\uc6a9 <a href=\"https:\/\/plugins.jetbrains.com\/plugin\/14936-kotlin-multiplatform-mobile\" target=\"_blank\" rel=\"noopener\">Kotlin Multiplatform \ud50c\ub7ec\uadf8\uc778<\/a>\uc73c\ub85c \uc0dd\uc131\ub41c \ud504\ub85c\uc81d\ud2b8)\ub098 JetBrains\uc758 \uc0ac\uc6a9\uc790 \uc9c0\uc815 Gradle DSL\uc744 \uc0ac\uc6a9\ud558\ub294 \ud504\ub85c\uc81d\ud2b8 \ubaa8\ub450 \uc9c0\uc6d0\ub429\ub2c8\ub2e4. \ubaa8\ub450 AppCode\uc5d0\uc11c \uc5f4 \uc218 \uc788\uc73c\uba70, \uc804\uccb4 \uc5b8\uc5b4\uc5d0 \ub300\ud55c \ucf54\ub4dc \uc9c0\uc6d0\uc774 \ubaa8\ub4e0 \uacbd\uc6b0\uc5d0 \ub3d9\uc77c\ud558\uac8c \uc81c\uacf5\ub429\ub2c8\ub2e4.<\/p>\n<h2 id=\"android_integration\">Android \ud1b5\ud569<\/h2>\n<p>\ub9ce\uc740 \uc0ac\uc6a9\uc790\uaed8\uc11c \uc694\uccad\ud55c \ub300\ub85c Android\uc6a9 IDE \uae30\ub2a5\uc774 \ud50c\ub85c\uadf8\uc778\uc5d0 \ud1b5\ud569\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2022\/03\/designer-2x.png\" alt=\"Android \ud1b5\ud569\" width=\"800\"><\/p>\n<p>Android Studio\uc640 \ube44\uad50\ud558\uba74 \ud50c\ub7ec\uadf8\uc778\uc758 \uae30\ub2a5\uc740 \uc801\uc9c0\ub9cc, \ub2e4\uc74c\uacfc \uac19\uc740 \uc77c\ubd80 \uc8fc\uc694 \uae30\ub2a5\uc744 \ud1b5\ud569\ud558\uc600\uc2b5\ub2c8\ub2e4.<\/p>\n<ul>\n<li>LogCat<\/li>\n<li>SDK \ubc0f AVD \uad00\ub9ac\uc790<\/li>\n<li>\ub808\uc774\uc544\uc6c3 \uc5d0\ub514\ud130<\/li>\n<li>\ubc88\uc5ed \uc5d0\ub514\ud130<\/li>\n<li>Device File Explorer<\/li>\n<li>APK \ubd84\uc11d\uae30<\/li>\n<\/ul>\n<p>\uc774 \ud1b5\ud569\uc73c\ub85c \ub354 \ube60\ub974\uace0 \uc27d\uac8c Multiplatform Mobile \ud504\ub85c\uc81d\ud2b8\ub97c \uac1c\ubc1c\ud560 \uc218 \uc788\uae30\ub97c \ubc14\ub78d\ub2c8\ub2e4.<\/p>\n<p align=\"center\"><a class=\"jb-download-button\" href=\"https:\/\/plugins.jetbrains.com\/plugin\/17098-kmm-for-appcode\" target=\"_blank\" rel=\"noopener\"><i class=\"download-icon\"><\/i>AppCode\uc6a9 KMM \ud50c\ub7ec\uadf8\uc778 \ub2e4\uc6b4\ub85c\ub4dc<\/a><\/p>\n<h2 id=\"read_more\">\ub354\ubcf4\uae30<\/h2>\n<ul>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/multiplatform-mobile-getting-started.html\" target=\"_blank\" rel=\"noopener\">Kotlin Multiplatform Mobile \uc2dc\uc791\ud558\uae30<\/a><\/li>\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/06\/kmm-for-appcode\/\">AppCode\uc6a9 Kotlin Multiplatform Mobile<\/a><\/li>\n<\/ul>\n<p><em>\uac8c\uc2dc\ubb3c \uc6d0\ubb38 \uc791\uc131\uc790<\/em><\/p>\n\n    <div class=\"about-author \">\n        <div class=\"about-author__box\">\n            <div class=\"row\">\n                <div class=\"about-author__box-img\">\n                    <img decoding=\"async\" src=\"https:\/\/secure.gravatar.com\/avatar\/?s=200&#038;r=g\" width=\"200\" height=\"200\" alt=\"\" loading=\"lazy\"  class=\"avatar avatar-200 wp-user-avatar wp-user-avatar-200 photo avatar-default\">\n                <\/div>\n                <div class=\"about-author__box-text\">\n                                                        <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n","protected":false},"author":964,"featured_media":236906,"comment_status":"closed","ping_status":"closed","template":"","categories":[956],"tags":[28,6294],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/kotlin\/241979"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/kotlin"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/types\/kotlin"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/users\/964"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/comments?post=241979"}],"version-history":[{"count":5,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/kotlin\/241979\/revisions"}],"predecessor-version":[{"id":243144,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/kotlin\/241979\/revisions\/243144"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media\/236906"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media?parent=241979"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/categories?post=241979"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/tags?post=241979"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/cross-post-tag?post=241979"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}