ต้นทุนของการแชร์โค้ดระหว่าง iOS และ Android
(blogs.dropbox.com)Dropbox เริ่มต้นในปี 2013 โดยใช้ C++ เพื่อแชร์โค้ดระหว่างทั้งสองแพลตฟอร์ม
ในตอนนั้นทีมยังเล็ก และทำไปเพื่อรองรับโรดแมปมือถือที่เติบโตอย่างรวดเร็ว
ปัจจุบันได้เปลี่ยนมาใช้ Swift และ Kotlin แล้ว ซึ่งเป็นผลจากต้นทุนแฝงต่อไปนี้ของการแชร์โค้ด (จริง ๆ ก็ไม่ได้แฝงสักเท่าไร)
-
ภาระส่วนเกินจากเฟรมเวิร์กและไลบรารีแบบคัสตอม
-
ภาระส่วนเกินจากสภาพแวดล้อมการพัฒนาแบบคัสตอม
-
ภาระส่วนเกินจากการจัดการความแตกต่างระหว่างแพลตฟอร์ม
-
ภาระส่วนเกินในการฝึกอบรม จ้างงาน และรักษานักพัฒนาไว้
สรุปคือ การเขียนด้วยโค้ดชุดเดียวดูเหมือนจะดี แต่ภาระส่วนเกินนั้นสูงมาก
สิ่งสำคัญคือย่อหน้าสุดท้ายของบทความนี้คือ "กำลังรับสมัครนักพัฒนา Android / iOS!"
4 ความคิดเห็น
คงขึ้นอยู่กับว่าเป็นโอเวอร์เฮดที่องค์กรรับไหวหรือไม่
ไม่ว่าจะเลือกอะไร ถ้ารับภาระนั้นได้ ก็น่าจะโฟกัสกับสิ่งที่ตัวเองทำได้ดีที่สุดจะเหมาะกว่า
อย่างไรเสีย ความแตกต่างของแต่ละแพลตฟอร์มก็คงหลีกเลี่ยงไม่ได้ ต่อให้ทำแบบไฮบริด ความต่างเหล่านั้นก็ไม่ได้หายไปอยู่ดี
มันก็เป็นแค่อีกหนึ่งแพลตฟอร์มที่เรียกว่า cross-platform เท่านั้น
แถมยังซับซ้อนกว่าและดูครึ่งๆ กลางๆ อีก..
ช่วงนี้ React Native ดูเหมือนว่าจะมีความสมบูรณ์ค่อนข้างสูงแล้วนะครับ..
แน่นอนว่าถ้าเป็นแอปที่พึ่งพาอุปกรณ์อย่าง Dropbox ความเจ็บปวดแบบเดิมของแอป Hybrid ก็คงยังคงอยู่..
บทความยาว แต่จริงๆ แล้วกรณีของ Dropbox ค่อนข้างพิเศษเพราะใช้ C++
สำหรับองค์กรขนาดเล็ก การรองรับหลายแพลตฟอร์มด้วยโค้ดชุดเดียวยอมรับตามตรงว่าเป็นสิ่งที่ดึงดูดใจมากในช่วงแรก
เมื่อ 10 ปีก่อนก็เป็นการพัฒนาแบบ Hybrid โดยใช้ HTML5 กับ Phonegap
ทุกวันนี้มีอย่าง React Native และ Flutter ออกมา และล่อตาล่อใจทุกคนด้วยแนวคิดที่ว่าสามารถรองรับหลายแพลตฟอร์มได้ในครั้งเดียว
ความเห็นของผมคือ สำหรับองค์กรขนาดเล็ก การแชร์โค้ดแบบข้างต้นมีข้อดีอย่างชัดเจน
แต่เมื่อโปรดักต์เติบโตขึ้น สิ่งนี้ก็จะค่อยๆ กลายเป็นหนี้ทางเทคนิคอีกครั้ง
เมื่อผู้ใช้เพิ่มขึ้น องค์กรใหญ่ขึ้น และนักพัฒนามากขึ้น ผมคิดว่าในท้ายที่สุด Web/iOS/Android ต่างก็จะพัฒนาไปด้วยเทคโนโลยีที่เหมาะกับตัวเอง
เหมือนกับบทความดีๆ เรื่องหนี้ทางเทคนิคใน https://th.news.hada.io/topic?id=309
สิ่งสำคัญคือการสร้างหนี้ทางเทคนิคอย่างมีเจตนา มาใช้หนี้กันก่อนที่ดอกเบี้ยจะพอกพูนเถอะ