{"id":307983,"date":"2022-12-14T14:04:53","date_gmt":"2022-12-14T13:04:53","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=kotlin&#038;p=307983"},"modified":"2025-09-18T09:01:47","modified_gmt":"2025-09-18T08:01:47","slug":"shout-out-to-kotlin-multiplatform-mobile-content-creators","status":"publish","type":"kotlin","link":"https:\/\/blog.jetbrains.com\/zh-hans\/kotlin\/2022\/12\/shout-out-to-kotlin-multiplatform-mobile-content-creators","title":{"rendered":"Shout-Out to Kotlin Multiplatform Mobile Content Creators!"},"content":{"rendered":"\n<p><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/10\/kmm-beta\/\">Kotlin Multiplatform Mobile is in Beta<\/a>, and the technology\u2019s ecosystem is continuing to expand and mature. All of this would be impossible without the community&#8217;s contributions. In order to celebrate the work of the community\u2019s authors of articles, videos, and samples, we\u2019re launching the Kotlin Multiplatform Mobile Content Creators Recognition Campaign. Today, we would like to share some great new content that will inspire learners and make the official resources more complete.<\/p>\n\n\n\n<ul>\n<li><a href=\"https:\/\/medium.com\/@MrHardikTrivedi\/public-key-pinning-using-ktor-for-android-and-ios-kmm-61066cb34321\" target=\"_blank\" rel=\"noreferrer noopener\">[?Article] Public key pinning using Ktor for Android and iOS (KMM)<\/a> \u2013 This article from Hardik Trivedi describes how to implement public key pinning for Android and iOS just once using Kotlin Multiplatform Mobile and Ktor.<\/li>\n\n\n\n<li><a href=\"https:\/\/artandscienceofcoding.com\/science\/avoid-this-kmm-technique\/\" target=\"_blank\" rel=\"noreferrer noopener\">[?Article] Why iOS Engineers Should Avoid This Glorified KMM Technique<\/a> \u2013 In this article, Derek Lee explains when an iOS engineer should consider using the <code>expect\/actual<\/code> syntax.<\/li>\n\n\n\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=1w-LTUm_iDE\" target=\"_blank\" rel=\"noreferrer noopener\">[?Video] How to Build a Clean Architecture CRUD Note App Using KMM (Android + iOS) \u2013<\/a> This 3-hour video features Philipp Lackner building a Clean Architecture CRUD Note application for iOS and Android from scratch!<\/li>\n\n\n\n<li><a href=\"https:\/\/engineering.premise.com\/kotlin-multiplatforrm-github-actions-workflow-3e5e0fcb7081\" target=\"_blank\" rel=\"noreferrer noopener\">[?Article] Building a CI Pipeline for Kotlin Multiplatform Mobile Using GitHub Actions<\/a> \u2013 This article from Nate Ebel demonstrates how to set up a GitHub Actions workflow for building a Kotlin Multiplatform Mobile project.<\/li>\n\n\n\n<li><a href=\"https:\/\/medium.com\/@mobiledevelopercourse\/5-ways-to-deal-with-kmm-errors-3ba48d4285d2\" target=\"_blank\" rel=\"noreferrer noopener\">[?Article] 5 ways to deal with KMM errors<\/a> \u2013 In this article, Alexey Gladkov shares his experience dealing with Kotlin Multiplatform Mobile errors.<\/li>\n<\/ul>\n\n\n\n<p>It\u2019s never too late to become a part of the growing community of Kotlin Multiplatform Mobile content creators. <strong>Once every three months, the Kotlin team chooses their favorite new content and promotes it by<\/strong>:<\/p>\n\n\n\n<ul>\n<li>Mentioning it in a post on the <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/\">Kotlin Blog<\/a>.<\/li>\n\n\n\n<li>Featuring it on the official <a href=\"https:\/\/twitter.com\/kotlin\" target=\"_blank\" rel=\"noopener\">@Kotlin Twitter<\/a> account, Kotlin Slack, and <a href=\"https:\/\/www.youtube.com\/channel\/UCP7uiEZIqci43m22KDl0sNw\" target=\"_blank\" rel=\"noopener\">Youtube<\/a> Community.<\/li>\n\n\n\n<li>Including it in the relevant Kotlin Multiplatform Mobile <a href=\"https:\/\/kotlinlang.org\/docs\/home.html\" target=\"_blank\" rel=\"noopener\">documentation articles<\/a>.<\/li>\n<\/ul>\n\n\n\n<p>Looking for content ideas? Here is a list of the most requested Kotlin Multiplatform Mobile topics:<\/p>\n\n\n\n<ul>\n<li>Writing Kotlin APIs that look nice in Swift.<\/li>\n\n\n\n<li>Maximizing the amount of shared code.<\/li>\n\n\n\n<li>Use cases \u2013 what have you shared with Kotlin Multiplatform Mobile?<\/li>\n\n\n\n<li>Migrating large projects to Kotlin Multiplatform Mobile.<\/li>\n\n\n\n<li>Experiments with cutting-edge tools and libraries, for example, Kotlin Multiplatform libraries in Jetpack.<\/li>\n<\/ul>\n\n\n\n<p>Don\u2019t hesitate to share your thoughts about any other topics that interest you. We are excited by how much our community has to say, and we\u2019re looking forward to seeing what you create! Don\u2019t forget to add the #<strong>kotlinmultiplatform<\/strong><strong> <\/strong>tag if the media platform you are using allows it.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/09\/DR8wmHKQe90ys0hMQ7LIcvqLBD7zF0N4WMIod_rF2ozWvVioxrhU6ve9TJVyPp1BiNw0PoBSHjdf7sxwIKfiM2tTgddQA99zCF0tmxF3Fef9ZSsS4NXWUtIDUlaqicao_fYGsH-cuKKjpRIqZZOIPYm0bowO3do3BsAnwCahFvKZg-jG821LFdbHPr7U.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>To make sure we don\u2019t miss your articles, videos, sample projects, or content of any other type, please drop us a link at <a href=\"mailto:kmm.feedback@kotlinlang.org\">kmm.feedback@kotlinlang.org<\/a>.<\/p>\n\n\n\n<p>The Kotlin team would like to thank all of the ecosystem\u2019s contributors and content creators. Your input is invaluable, and together we\u2019ll make Kotlin Multiplatform even better!<\/p>\n","protected":false},"author":1130,"featured_media":277877,"comment_status":"closed","ping_status":"closed","template":"","categories":[956],"tags":[],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/kotlin\/307983"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/kotlin"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/types\/kotlin"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/users\/1130"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/comments?post=307983"}],"version-history":[{"count":4,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/kotlin\/307983\/revisions"}],"predecessor-version":[{"id":628303,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/kotlin\/307983\/revisions\/628303"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/media\/277877"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/media?parent=307983"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/categories?post=307983"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/tags?post=307983"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/cross-post-tag?post=307983"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}