Posted on Leave a comment

ความเข้ากันได้ของแอพ iOS และ OS X เก่า กับภาษา Swift ของ Apple

Swift-iOS7-iOS8

พี่น้องหลายๆ คนก็ตื่นเต้นกับ Swift ว่าที่ภาษาเขียนโปรแกรมใหม่ของ Apple (ที่ดูง่ายกว่า Objective-C อีกนิด)

แต่ในเมื่อมันดู “เหมือนเป็น” ภาษาใหม่ คำถามหลายๆ อย่างก็ตามมา คำถามที่ดูจะฮิตที่สุดก็คือ

เรียนแล้ว เขียนได้แล้ว มันจะรองรับแค่ iOS 8 กับ OS X 10.10 ไหม?

ปัญหาเรื่องความเข้ากันได้กับระบบเก่าๆ นั่นเอง

แหม่ ก็ใช่หน่ะซี ถ้ามันรองรับระบบเก่าๆ ไม่ได้ กว่าจะรอให้คนมาใช้ iOS 8 กันหมดอาจแพ้แกลบตายก่อนก็ได้ (กว่าโค้ชพลจะรักษาโรคนี้หายนี้แกลบเต็มท้องเลย 555)

โค้ชพลลองไปหาข้อมูลมา สรุปได้ดังนี้ครับ

เรื่องของ Application ที่สร้างจากภาษา Swift (App Compatibility)

  • ใช้ภาษา Swift เขียนแอพ iOS 8 หรือแอพสำหรับ Mac 10.10 (Yosetime) ตอนนี้ ทำงานได้แน่นอนตอนปล่อยให้ใช้งาน
  • สามารถตั้งให้ตัวแอพทำงานกับ iOS 7 และ Mac 10.9 (Mavericks) ได้ ซึ่ง XCode มีการฝังตัวแปลคำสั่ง Swift Runtime ลงไปในแอพ เพื่อให้ทำงานได้ในระบบเก่า

เรื่องของ Binary และ Framework (Binary Compatibility and Framework)

  • ภาษา Swift จะพัฒนาต่อเนื่อง อาจมีการเปลี่ยนแปลงในระดับวิธีเชื่อมต่อกับ Binary และ Framework ให้แน่ใจว่าส่วนต่างๆ ที่เราเลือกมาใช้ในแอพ ควรใช้ XCode และ Swift Compiler ที่เป็นเวอร์ชั่นเดียวกัน
  • ถ้า Binary ของเราไม่เปลี่ยนตาม Swift ปัญหานี้อาจจะเกิดขึ้นกับพวก Framework ที่ไม่ได้อัพเดตตามเวอร์ชั่นของ Swift
  • ทีมพัฒนาคาดว่า ปัญหานี้จะหมดไปใน 1 – 2 ปี

เรื่องของ Source code (Source Compatibility)

  • Swift สามารถใช้งานพัฒนาแอพได้แล้วตอนนี้
  • จะมีการพัฒนาส่วน Syntax และเพิ่มความสามารถใหม่ๆ อย่างต่อเนื่อง
  • จะมีการเตรียมเครื่องมือใน XCode เพื่อเปลี่ยน code เดิมของเราให้รองรับ Swift version ใหม่

สรุป

ภาษา Swift เป็นภาษาเกิดใหม่ Apple ที่มีประวัติใส่ใจกับความสุขของนักพัฒนาเป็นอันดับต้นๆ น่าจะค่อยๆ ปรับเปลี่ยนตัวภาษาอย่างนุ่มนวล และเพิ่มความสามารถเรื่อยๆ อย่างค่อยเป็นค่อยไป และทำงานได้เต็มที่ใน 2 ปีตามที่ Apple ให้ข้อมุล

โดยส่วนตัว โค้ชพลคิดว่า โครงสร้างของภาษา Swift ออกแบบมาดีเหมือนผลิตภัณฑ์ของ Apple มีความสวยงาม และ “ง่าย” การเปลี่ยนผ่านนี้น่าจะเป็นอะไรที่สนุกสนาน แล้วมาเรียนออนไลน์ใช้ Swift พัฒนา iOS 8 กันนะครับ

ที่มา – Swift Blog

Loading Facebook Comments ...