กูเกิลประกาศซัพพอร์ต 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
Comments
แล้ว flutter หล่ะ 😂
เป็นไปได้มั้ยครับว่าปล่อยจอย ดันตัวนี้แค่ตัวเดียว อันนี้ถามแบบคนไม่รู้อะไรจริงๆ 555
..: เรื่อยไป
มีออกเวอร์ชันใหม่เหมือนกันครับ ยังไม่ทิ้ง
ล่าสุดก็เห็นข่าวว่าโดนโยกแผนกพอสมควรนะครับ เข้าใจว่าเป็น open source ด้วยคงทำเงินได้ยาก แถมโครงสร้างที่ widget แทบจะทั้งหมดเป็น material design ทำให้ต้องมาอัพเดท widget ตลอดน่าจะโดนหั่นงบหรือมีแววปล่อยจอยสูงจริงๆ
ขอบคุณทั้งคุณ mk และคุณ checkmate95 สำหรับข้อมูลครับ
..: เรื่อยไป
คนละทีมครับ ไม่เกี่ยวกัน เป้าหมายของ Flutter กับ Kotlin Multiplatform อาจจะทับซ้อนกันก็จริง แต่ Kotlin Multiplatform มาจากทีม Android + JetBrains ครับ ในขณะที่ Flutter มาจากทีมอื่น (ถ้าสังเกตดี ๆ Flutter จะไม่ได้ Bias ไปทาง Android เหมือนกับ Kotlin Multiplatform เพราะเป็นคนละทีมตั้งแต่แรกอยู่แล้ว)
ต่อให้ Google ประกาศรองรับ Kotlin Multiplatform ยังไง แต่ถ้าทีมที่ผลักดัน Flutter นั้นไปได้ด้วยดี มีคนใช้เยอะไม่แพ้กัน ก้ไม่ใช่เหตุผลที่ Google จะปิดทิ้งครับ
จะเกิด Feature Parity อีกไหมล่ะนิ ไม่สุดสักอย่างเลยกูเกิล จะหนีไปเขียน Hotwire Strada แทนแล้วนะ
เขียน 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 อยู่แล้วครับ