จาก session เรื่อง Flutter + Kotlin-multiplatform
ในงาน Mobile Conference Thailand 2019
เป็นเรื่องที่น่าสนใจ เนื่องจากมีทั้งข้อดีและข้อเสีย
ดังนั้นมาทำความเข้าใจกับ ปัญหาที่อาจจะต้องใช้แนวทางนี้

การทำงานของ Flutter ซึ่งพัฒนาด้วยภาษา Dart

จะพบว่า Flutter จะติดต่อไปการทำงานต่าง ๆ บน device หรือ Native นั้น
ผ่านช่องทางที่เรียกว่า Platform Channel

  • Android ผ่าน MethodChannel
  • iOS ผ่าน FlutterMethodChannel

แสดงดังรูป

โดยปกติแล้วนั้น Flutter ก็ทำงานได้อย่างดี

แต่ก็มีงานบางอย่างที่ Flutter ไม่สามารถใช้งานได้ (ไม่สนับสนุน)
ตัวอย่างที่เจอมาก ๆ คือ 3-party SDK
ยิ่งเป็นมือถือที่มาจากประเทศจีนยิ่งมีปัญหามาก ๆ
ส่งผลให้นักพัฒนาต้องเขียน Native code เฉพาะ platform นั้น ๆ ไปเช่น
Android จะมีปัญหามากกว่า

ดังนั้นถ้ามีปัญหาเหล่านี้แล้ว
จึงต้องการแนวทางการเขียน code เหล่านี้เพียงที่เดียวก็พอ
นั่นจึงเป็นที่มาของการนำ Kotlin Multiplatform มาใช้งาน
เป็น project ที่มีเป้าหมายเพื่อ share code ระหว่าง plateform ต่าง ๆ นั่นเอง

ปล.
ถ้าไม่มีปัญหาเหล่านี้ ก็ไม่จำเป็นต้องใช้
สามารถใช้งาน Flutter + Dart แบบปกติได้เลย

โครงสร้างของ Flutter + Kotlin Multiplatform

จะมีส่วนของ common code หรือ shared code ที่พัฒนาด้วย Kotlin
แสดงดังรูป

การ setup project ก็ไม่ง่ายนะ

แต่ก็มีอธิบายอยู่คือ

ไว้มาลองสร้าง project กันดู
ฝาก link ของ GitHub จากงาน Mobile Conference Thailand
แต่เพื่อความสนุก เดี๋ยวกลับมาสร้าง project HelloWorld กันต่อไป