เขียน C# บน iPhone อย่างถูกกติกาด้วย MonoTouch

by mk
16 September 2009 - 04:00

เงื่อนไขที่สำคัญอันหนึ่งของแอปเปิลต่อนักพัฒนาโปรแกรมบน iPhone ก็คือห้ามรันโค้ดของโปรแกรมอื่นๆ ต่ออีกชั้น เงื่อนไขนี้ส่งผลให้โปรแกรมที่เขียนด้วย Java หรือ .NET ไม่สามารถทำงานบน iPhone ได้ และเครื่องมือที่ใช้พัฒนาโปรแกรมบน iPhone "อย่างถูกต้อง" มีแค่ภาษา Objective-C และ Cocoa Touch ของแอปเปิลเท่านั้น

ตอนนี้มีคนหาช่องว่างจากเงื่อนไขนี้ และเสนอทางเลือกอื่นในการพัฒนาโปรแกรมบน iPhone ได้แล้ว ไม่ใช่บริษัทหน้าใหม่ที่ไหน แต่เป็น Novell และทีมงานผู้สร้าง Mono นั่นเอง

แม้ว่า Mono จะเป็นการเลียนแบบแพลตฟอร์ม .NET ของไมโครซอฟท์ และใช้การคอมไพล์ 2 รอบแบบ Just-in-Time (JIT) เหมือนกัน แต่เครื่องมือใหม่ที่เรียกว่า MonoTouch ใช้การคอมไพล์ครั้งเดียวที่เรียกว่า Ahead-of-time (AOT) แปลงโค้ดที่อยู่ในภาษา intermediate ให้เป็นไบนารีก่อนตั้งแต่แรก ฟีเจอร์นี้มีใน Mono รุ่นปกติอยู่แล้ว โดยเรียกว่า Mono AOT

Novell นำ Mono AOT มาดัดแปลงใหม่ ตัดส่วนติดต่อผู้ใช้แบบ WinForms ออกไป และเปลี่ยนเป็น Cocoa Touch ตามมาตรฐานของโปรแกรมบน iPhone ทั่วไป และเรียกมันว่า MonoTouch ข้อดีของวิธีนี้คือโปรแกรมที่ได้มีส่วนติดต่อผู้ใช้เหมือนโปรแกรมอื่นๆ บน iPhone แต่ก็มีข้อเสียคือไม่สามารถนำโปรแกรม .NET เดิมมารันได้โดยตรง จุดขายของ MonoTouch นอกจากใช้ภาษา C# ที่คนคุ้นเคยมากกว่า Objective-C แล้ว ทีมงานของ Novell ยังพบว่าถ้าเขียนโปรแกรมลักษณะเดียวกัน C# ใช้โค้ดน้อยกว่า Objective-C อยู่พอสมควร

MonoTouch ไม่ใช่ซอฟต์แวร์โอเพนซอร์ส คิดราคาต่อนักพัฒนาคนละ 399 ดอลลาร์ ทำงานได้บนแมคเท่านั้นและต้องมี iPhone SDK ติดตั้งอยู่ด้วย

ที่มา - Ars Technica

Blognone Jobs Premium