Tags:
Node Thumbnail

กูเกิลประกาศซัพพอร์ต Kotlin Multiplatform (KMP) แนวทางการเขียนแอพข้ามแพลตฟอร์มด้วยภาษา Kotlin อย่างเป็นทางการในงาน Google I/O 2024

Kotlin Multiplatform เป็นโครงการของ JetBrains ที่พัฒนาให้ภาษา Kotlin เขียนแอพข้ามแพลตฟอร์มได้ทั้ง Android, iOS, Web, Desktop, Server

แนวคิดของมันคือการที่แอพ Android ยุคใหม่เขียนด้วย Kotlin เป็นหลักอยู่แล้ว ก็นำโค้ดส่วนนี้ไปใช้กับแพลตฟอร์มอื่นๆ จะได้เขียนครั้งเดียวใช้ได้ [เกือบ] ทุกที่ โดยงานฝั่งจัดการ UI ของแต่ละแพลตฟอร์ม ตัวเฟรมเวิร์ค KMP จะช่วยจัดการให้

KMP แยกงานเป็นส่วน Core Kotlin ที่พัฒนาโดย JetBrains และรองรับแพลตฟอร์มเยอะกว่า ส่วนตัวเฟรมเวิร์ค UI (Compose Multiplatform) และไลบรารีอื่นๆ อาจยังไม่รองรับเยอะเท่า สิ่งที่กูเกิลเข้ามาช่วยคือพอร์ตไลบรารี Jetpack ที่นิยมใช้ในวงการ Android ให้ทำงานกับ KMP ได้มากขึ้น และสามารถรันบน iOS ได้ด้วย, ฝั่งของเครื่องมืออื่นๆ อย่าง Android Gradle Plugin ก็ทำงานร่วมกับ KMP ได้แล้วอย่างเป็นทางการ

นอกจากตัวแพลตฟอร์มพัฒนาแล้ว กูเกิลยังเปิดเผยว่าแอพ Google Docs ตอนนี้เขียนด้วย KMP โดยมีแกนหลัก logic ของแอพร่วมกัน และใช้ KMP ช่วยออกแอพทั้งบน Android, iOS, Web ซึ่งในอนาคตจะขยายไปยังแอพตัวอื่นๆ ในชุด Google Workspace ต่อด้วย

ที่มา - Android Developers Blog

Get latest news from Blognone

Comments

By: checkmate95
ContributorAndroid
on 15 May 2024 - 13:17 #1311924
checkmate95's picture

แล้ว flutter หล่ะ 😂

By: btoy
ContributorAndroidWindows
on 15 May 2024 - 13:19 #1311925 Reply to:1311924
btoy's picture

เป็นไปได้มั้ยครับว่าปล่อยจอย ดันตัวนี้แค่ตัวเดียว อันนี้ถามแบบคนไม่รู้อะไรจริงๆ 555


..: เรื่อยไป

By: checkmate95
ContributorAndroid
on 15 May 2024 - 13:36 #1311927 Reply to:1311925
checkmate95's picture

ล่าสุดก็เห็นข่าวว่าโดนโยกแผนกพอสมควรนะครับ เข้าใจว่าเป็น open source ด้วยคงทำเงินได้ยาก แถมโครงสร้างที่ widget แทบจะทั้งหมดเป็น material design ทำให้ต้องมาอัพเดท widget ตลอดน่าจะโดนหั่นงบหรือมีแววปล่อยจอยสูงจริงๆ

By: btoy
ContributorAndroidWindows
on 15 May 2024 - 14:40 #1311933 Reply to:1311927
btoy's picture

ขอบคุณทั้งคุณ mk และคุณ checkmate95 สำหรับข้อมูลครับ


..: เรื่อยไป

By: Akexorcist
AndroidWindows
on 15 May 2024 - 18:53 #1311957 Reply to:1311924
Akexorcist's picture

คนละทีมครับ ไม่เกี่ยวกัน เป้าหมายของ Flutter กับ Kotlin Multiplatform อาจจะทับซ้อนกันก็จริง แต่ Kotlin Multiplatform มาจากทีม Android + JetBrains ครับ ในขณะที่ Flutter มาจากทีมอื่น (ถ้าสังเกตดี ๆ Flutter จะไม่ได้ Bias ไปทาง Android เหมือนกับ Kotlin Multiplatform เพราะเป็นคนละทีมตั้งแต่แรกอยู่แล้ว)

ต่อให้ Google ประกาศรองรับ Kotlin Multiplatform ยังไง แต่ถ้าทีมที่ผลักดัน Flutter นั้นไปได้ด้วยดี มีคนใช้เยอะไม่แพ้กัน ก้ไม่ใช่เหตุผลที่ Google จะปิดทิ้งครับ

By: big50000
AndroidSUSEUbuntu
on 15 May 2024 - 14:45 #1311935
big50000's picture

จะเกิด Feature Parity อีกไหมล่ะนิ ไม่สุดสักอย่างเลยกูเกิล จะหนีไปเขียน Hotwire Strada แทนแล้วนะ

By: max212
AndroidRed HatSUSEUbuntu
on 16 May 2024 - 16:08 #1312068
max212's picture

เขียน logic หลักเหมาะครับ(เค้าจะเรียกว่าส่วน Common) เขียนที่เดียวออก my_lib ได้ทั้ง js, c, java, iOS, android, Wasm, native ... ส่วน ระบบปลายทาง เช่น UI ค่อยเอา my_lib ไป call function อีกที ถึงแม้ในตัว Kotlin Multiplatform จะสามารถเขียนแยกแต่ละ platform ได้ ตรงนี้ก็แล้วแต่ความถนัดครับ
อีกอย่างถ้าเป็น Common เขียน Unit Test เดียวครับไม่ต้องเขียนแยก แต่ถ้าจะเขียนแยกแบบพิเศษของแต่ละ platform ก็เขียนได้นะเหมือนเห็นผ่านตาอยู่

แล้วยังมี libภายนอกให้เราเรียกใช้(เค้าจะเรียกว่า Client Multiplatfrom) ตัวอย่างเช่น Ktor หากใช้จะออก my_lib นอกเนื่อจากที่ libภายนอก support ก็ต้องเขียนเพิ่มในส่วน เขียนแยกแต่ละ platform ได้

ปล. ปกติผมเขียน RESTful API ด้วย Kotlin อยู่แล้วครับ