ระบบ ios ใช้ภาษาใดในการพัฒนา

This post is part of a series called Swift From Scratch.

Thai (ภาษาไทย) translation by Anak Mirasing (you can also view the original English article)

ถ้าคุณกำลังอ่านบทความนี้อยู่, คุณอาจมีโอกาสที่จะได้รู้จักภาษาใหม่ที่ชื่อว่า Swift. Apple นั้นได้ทำการปล่อย Swift ในช่วงของงาน WWDC สำหรับนักพัฒนาและทุกคนก็ได้ตื่นเต้นกับมัน. สิ่งที่นักพัฒนาส่วนใหญ่นั้นคาดหวังสำหรับภาษาในการเขียนโปรแกรมใหม่ๆ นั้นคือพลังสำหรับการพัฒนาแอพพลิเคชั่นสำหรับแพลตฟอร์ม iOS และ OSX.

คุณอาจจะคุ้นเคยกับ Swift ถ้าคุณเคยพัฒนาแอพพลิเคชั่นบน iOS หรือ OSX ด้วยภาษา Objective-C, แต่ถึงแม้กระนั้นก็ยังมีบางส่วนสำคัญที่มีความแตกต่าง. นอกจากนี้คุณยังอาจจะคุ้นเคยกับ Swift ที่มีไวยกรณ์ที่ดีและทันสมัย. เราทำบทความนี้ขึ้นมาเพื่อที่จะแสดงให้เห็นถึงความแตกต่างระหว่าง Swift และ Objective-C โดยความแตกต่างเหล่านี้เป็นสิ่งที่ดี. เรามาเริ่มกันเลย.

1. ข้อกำหนดเบื้องต้น

การเขียนโปรแกรม

ในบทความทั้งหมดนี้, เราจะมีการอ้างถึงภาษา Objective-C และเปรียบเทียบกันระหว่าง Objective-C กับ Swift. อย่างไรก็ตาม, ก็ไม่ได้จำเป็นที่เราจะต้องคุ้นเคยกับภาษา Objectvice-C.

อย่างที่ได้บอกไป, คือมันเป็นสิ่งสำคัญเมื่อคุณมีประสบการณ์เกี่ยวกับภาษาที่ใช้ในการเขียนโปรแกรม. ในบทความนี้นั้นจะเน้นไปที่ภาษา Swift เป็นหลัก, โดยที่ไม่ได้เน้นไปที่พื้นฐานของการเขียนโปรแกรมสักเท่าไร. เราหวังว่าคุณอาจจะคุ้นเคยกับการใช้งาน ตัวแปร, ตัวแปรค่าคงที่, โฟลว์การทำงานและการเขียนโปรแกรมแบบ object-oriented programming มา.

ยิ่งถ้าคุณคุ้นเคยกับพวกภาษาเช่น Objective-C, Java, Ruby, PHP หรือ JavaScript แล้วนั้น คุณจะไม่มีปัญหาสำหรับการทำความเข้าใจแนวคิดที่จะอธิบายในบทความนี้เลย. ในความเป็นจริงแล้ว, เราสามารถเรียนรู้ Swift ได้อย่างรวดเร็ว เพราะมีความคล้ายคลึงกับภาษาโปรแกรมมิ่งที่ดังๆอีกหลายภาษา รวมทั้งภาษา Objective-C ด้วย.

Xcode

เราจะสามารถใช้งาน Swift ได้ตั้งแต่ Xcode เวอร์ชั่น 6 ขึ้นไปและตัว Apple's IDE(Integrated Development Environment) เวอร์ชั่นล่าสุด. เราสามารถดาวน์โหลดได้ที่ App Store หรือ Apple's Developer Center.

2. Swift

จากการเปรียบเทียบกับภาษา Objective-C หรือ Java นั้น, Swift นั้นมีความกระชับคล้ายๆกับ Ruby และ JavaScript. ถึงแม้ว่า Chris Lattner คนที่สร้างภาษา Swift นั้น, จะได้แรงบันดาลใจมากจากภาษาอื่นหลายๆภาษา, แต่ Swift เองก็มีความเป็นตัวของตัวเองที่สูงมากเช่นกัน.

อย่างที่เราอาจจะรู้ว่า, Objective-C นั้นเป็นซุปเปอร์เซ็ตของภาษา C. แต่ Swift นั้นไม่ได้เป็น. ถึงแม้ว่า Swift นั้นจะมีการใช้วงเล็บปีกกาและมีจำนวนของคีย์เวิร์ดเหมือนกับภาษา C, แต่ Swift ก็ไม่สามารถใช้งานให้เข้ากันได้กับภาษา C.

Swift นั้นเป็นภาษาในการเขียนโปรแกรมสมัยใหม่ ที่ให้ความรู้สึกใช้งานง่าย ยิ่งถ้าเราเคยใช้ภาษาอย่างเช่น Java หรือภาษาที่มีพื้นฐานมาจากภาษา C แบบ Objective-C. ในช่วงที่กำลังพัฒนาและออกแบบภาษา Swift นั้น, Chris Latter ได้เจาะจงไปที่ลักษณะสำคัญที่ใช้ในการออกแบบนิยามของภาษา.

Safety (ปลอดภัย)

ความปลอดภัยนั้นคือพื้นฐานอย่างหนึ่งของ Swift. เราจะสามารถเรียนรู้ได้อย่างรวดเร็วว่า Swift นั้นแตกต่างเป็นอย่างมากจาก Objective-C ในเรื่องของความปลอดภัยและส่งผลกระทบโดยตรงกับโค้ดของเรา. ถ้าเราเคยใช้งานภาษา Objective-C มาก่อน, ในส่วนนี้เราก็จะได้ใช้งานเช่นกัน.

LLVM

Chris Lattner ยังได้ออกแบบ LLVM (Low Level Virtual Machine) compiler และไม่น่าแปลกใจเลยที่ Swift ได้ถูกสร้างขึ้นด้วย LLVM compiler. ผลลัพธ์ของความเร็ว, พลังและความเชื่อถือได้. Swift นั้นมีความเร็วมากกว่า Objective-C ในหลายๆ สถานการณ์. ถ้าคุณสนใจรายละเอียดเพิ่มเติม สามารถอ่านต่อได้ที่บทความของ Jesse Squires.

Type Inference

Swift นั้นมีฟีเจอร์ที่สำคัญมากอย่างนึงคือ Type safety. Swift นั้นจะตรวจสอบโค้ดของเราในช่วงของการประมวณผล(Complie time) และเตือนเราในกรณีที่มีชนิดของตัวแปลที่ไม่ตรงกัน. นั่นหมายความว่า เราจะตรวจจับข้อผิดพลาดได้ก่อน เพื่อช่วยให้เราหลีกเลี่ยงข้อบกพร่องได้ง่ายขึ้น.

โชคดีมาก, ที่ Swift นั้นจะช่วยเราในการจัดการในส่วนนี้. Swift นั้นฉลาดพอที่จะรู้จักชนิดของตัวแปลทั้งตัวแปลธรรมดาหรือค่าคงที่, นั่นหมายความว่าเราไม่จำเป็นต้องระบุชนิดตัวแปลเลยก็ได้. ตามที่เห็นในโค้ดตัวอย่างนั้น, เราได้สร้างตัวแปล a ขึ้นมาและได้ใส่ค่า "this is a string" เข้าไป. ด้วยความฉลาดของ Swift นั้นก็จะจัดการให้ชนิดของตัวแปล a นั้นเป็น String.

var a = "this is a string"

นี่เป็นตัวอย่างเพียงเล็กน้อย, ซึ่งคุณจะได้เรียนรู้การใช้งาน Swift ในการควบคุมคำสั่งที่ซับซ้อนมากขึ้น.

ตัวแปลและตัวแปลที่มีค่าคงที่ (Variables และ Constants)

ตัวแปลที่เป็นค่าคงที่นั้นมีประโยชน์มากในภาษา C และ Objective-C, แต่นักพัฒนาส่วนใหญ่ก็ยังใช้มันเท่าที่จำเป็น. ใน Swift นั้นตัวแปรที่เป็นค่าคงที่อาจจะเป็นตัวแปลที่สำคัญหรือแค่ตัวแปลทั้วไปก็ได้. ถ้าค่าในตัวแปลนั้นไม่สามารถเปลี่ยนแปลงได้, นั่นแสดงว่าตัวแปลนั้นก็ควรจะเป็น constant(ตัวแปลที่มีค่าคงที่เปลี่ยนแปลงไม่ได้). เราจะสร้างตัวแปล(Variables) ได้โดยใช้ var และสร้าง Constants ด้วย let

var a = 1 // variable
let b = 1 // constant

ไม่ใช่เพียงแค่เพื่อแสดงเจตนาในตอนที่เราสร้าง, แต่ยังช่วยเราป้องกันการเปลี่ยนค่าของตัวแปรที่อาจเกิดขึ้นได้โดยไม่ตั้งใจอีกด้วย. ไว้เราจะมาดูตัวแปรและค่าคงที่กันต่ออีกเล็กน้อยในบทความนี้.

Semicolons (;)

ใน Swift นั้น ไม่จำเป็นต้องใช้ semicolons(;). แต่เราก็สามารถใช้ semicolons เมื่อเราต้องการที่จะสร้างหลายสเตจเม้นในบรรทัดเดียวกัน ซึ่งจริงๆก็ไม่ได้จำเป็นอะไร. เรามาลองดูที่ตัวอย่างกัน เพื่อจะได้เข้าใจในแนวคิดมากขึ้น.

var a = 1
var b = 2

var c = 1; var d = 2;

เราพึ่งจะรู้เพียงแค่ผิวเผิน.  โดยที่เราจะได้เรียนรู้เพิ่มเติมในคุณสมบัติและแนวคิดในบทเรียนนี้. แทนที่เราจะให้คุณเรียนรู้ในทฤษฎีมากเกินไป, เรามาลองเริ่มเขียนโค้ดกันสักเล็กน้อยเลยดีกว่า. โดยที่ Playgrounds จะพาเราเข้าไปทดลองความสามารถของ Swift และ Xcode 6.

3. Playgrounds

Apple ได้เปิดตัว Playgrounds ใน Xcode เวอร์ชั่น 6. ซึ่ง Playground นั้นเป็นเครื่องมือที่ดีมากๆ ที่จะใช้ในการเรียนรู้ภาษา Swift. Playground นั้นจะมีระบบโต้ตอบอัตโนมัติที่จะทำให้เวลาที่เราเขียนภาษา Swift ลงไปแล้วจะสามารถแสดงผลลัพธ์ให้เราเห็นได้ทันที. ไม่ใช่แค่จะทำให้การเรียน Swift ของเรานั้นสนุกมากขึ้น, แต่ยังใช้งานง่ายกว่าที่เราจะไปทำการเริ่มต้นเป็นโปรเจคใน Xcode.

ที่จริงแล้วนั้น, มันง่ายมากที่เราจะมาเริ่มสร้าง playground แรกของพวกเราขึ้นมา. เปิด Xcode 6 และเลือกไปที่ New > Playground... จากเมนู File .  ตัวชื่อ playground ของเราและเลือก Platform เป็น iOS.

ระบบ ios ใช้ภาษาใดในการพัฒนา
ระบบ ios ใช้ภาษาใดในการพัฒนา
ระบบ ios ใช้ภาษาใดในการพัฒนา

เลือกที่ที่เราต้องการที่จะเซฟ Playground ไว้แล้วคลิ๊ก Create. จากที่จะมีหลายๆโฟล์เดอร์หลายๆไฟล์ เมื่อเราสร้าง playground นั้น เราจะมีเพียงแค่ไฟล์ .playground ไว้ใช้งานเท่านั้น.

ในส่วนของยูเซอร์อินเตอร์เฟสที่เราเห็นนั้นแม้อาจจะดูไม่ง่าย. ที่เราเห็นในส่วนของด้านซ้ายจะมีคอมเม้นด้านบนในโค้ดนั้น เป็นการอิมพอร์ตตัว UIKit เฟรมเวิร์คเข้ามา ซึ่งเราดูแล้วก็ไม่ยากเกินทำความเข้าใจ. และที่เราเห็นในด้านขวา นั้นจะเป็นผลลัพท์ที่ได้จากโค้ดในทางฝั่งซ้ายนั้นเอง.

ระบบ ios ใช้ภาษาใดในการพัฒนา
ระบบ ios ใช้ภาษาใดในการพัฒนา
ระบบ ios ใช้ภาษาใดในการพัฒนา

เราจะใช้เวลาสักพักในการทำความเข้าใจในโค้ดที่อยู่ใน playground ของเรา. โค้ดบรรทัดแรกนั้น ดูคล้ายๆกับที่เราเคยใช้งานในภาษา Objective-C, PHP หรือ JavaScript. และคอมเม้นในภาษา Swift นั้น จะเริ่มด้วยสองสแลช // หรือถ้าในกรณีที่ต้องการคอมเม้นทีละหลายบรรทัด เราจะใช้ /* และปิดด้วย */ แทน.

เพราะเราได้เลือกแพลตฟอร์มในตอนสร้าง playground เป็น iOS, Xcode จึงได้อิมพอร์ม UIKit เฟรมเวิร์คเข้ามาให้ด้วย ซึ่งจะทำให้เราสามารถเรียกใช้งาน class และ constant ที่มีในเฟรมเวิร์คนี้ได้.

ในบรรทัดสุดท้ายนั้น เราอาจจะรู้สึกคุ้นเคยกับมัน แต่มันยังมีบางสิ่งที่ต้องการความชัดเจนมากขึ้น.  เราสร้างตัวแปรขึ้นมามีชื่อว่า str และใส่ค่าสตริงเข้าไปให้กับมัน ซึ่งทำให้โค้ดในบรรทัดนี้เข้าใจได้ง่ายมาก, แต่ให้เราจำไว้ว่า เราได้ประกาศตัวแปรโดยใช้ var นำหน้าชื่อตัวแปร แทนที่จะใช้ชนิดของตัวแปรอย่างที่เราเคยใช้ใน Objective-C. ถ้าในรูปแบบของ Objective-C ก็คงจะเป็นตามตัวอย่างด้านล่างนี้:

NSString *str = @"Hello, playground";

ในภาษา Objective-C นั้น, พวกเราจะใช้ชื่อชนิดของตัวแปรแทนการใช้ var และใช้ @ นำหน้าสตริง และจบสเตจเม้นด้วย ;(semicolon). มันสำคัญมากๆที่เราต้องเข้าใจว่าคีย์เวิร์ด var นั้น ไม่ได้ไปถูกใช้แทนชนิดของตัวแปรอย่างในภาษา Objective-C ไม่มีอะไรสำคัญไปคีย์เวิร์ดที่แสดงให้เห็นว่า str นั้นเป็นตัวแปรธรรมดา(variable) แทนที่จะเป็นตัวแปรค่าคงที่(constant). เราจะมาอธิบายกันเพิ่มเติมในเรื่องของรายละเอียด. โดยการลองเพิ่มโค้ดตามตัวอย่างด้านล่างเข้าไปใน playground.

let hello = "Hello, playground"

คีย์เวิร์ด let นั้น จะบอกคอมไพล์เลอร์ว่า hello นั้นคือ ตัวแปรค่าคงที่(constant) ไม่ใช่ตัวแปรธรรมดา =(variable) ทั้งตัวแปร str และ hello นั้น มีชนิดเป็น String ทั้งคู่ แต่ str นั้นเป็นตัวแปรธรรมดา(variable) ส่วน hello นั้นเป็นตัวแปรค่าคงที่(constant). ซึ่งเราจะเข้าใจถึงความแตกต่างได้มากขึ้นหลังจากที่เราได้เพิ่มโค้ดสองบรรทัดนั้นเข้าไป.

str = "This is a variable."
hello = "This is a constant."

เมื่อเราลองใส่ค่าให้กับตัวแปรชื่อ str เราจะพบว่าไม่มีปัญหาอะไรเกิดขึ้น. แต่เมื่อเรานั้นได้ใส่ค่าให้กับตัวแปรชื่อ hello เราจะพบกับ error. ซึ่งเป็น error ที่ Xcode ได้บอกเราว่า เราไม่สามารถที่จะใส่ค่าใหม่ให้กับตัวแปร hello ได้ เพราะตัวแปร hello นั้นเป็นตัวแปรชนิดค่าคงที่ ไม่ใช่ตัวแปรธรรมดา. ซึ่งนี่ก็คือฟีเจอร์ที่สำคัญของ Swift ที่เราจะได้ใช้มัน.

ระบบ ios ใช้ภาษาใดในการพัฒนา
ระบบ ios ใช้ภาษาใดในการพัฒนา
ระบบ ios ใช้ภาษาใดในการพัฒนา

อันนี้เป็นแนวคิดที่ง่ายๆ. คือถ้าค่าของตัวแปรของเราไม่สามารถเปลี่ยนแปลงได้ นั่นหมายความว่ามันควรจะเป็นตัวแปรที่มีค่าคงที่(constant) แทนที่จะเป็นตัวแปรธรรมดา(variable). ในขณะที่มันอาจจะเป็นรายละเอียดปลีกย่อยไปสักหน่อย แต่เราการันตีเลยว่า มันจะทำให้โค้ดของคุณปลอดภัยขึ้นและมีแนวโน้มน้อยมากที่จะเกิดข้อผิดพลาด. เตรียมตัวให้พร้อมเข้าไว้ เพราะเราจะได้เห็น let อีกหลายๆที่ในบทความนี้.

ในบทความนี้เราจะใช้ playground ในการเรียนรู้ในตัวของภาษา Swift เพราะมันเป็นตัวเลือกที่ดีมากๆ. ยังมีอีกหลายฟีเจอร์ที่ทรงพลังของ Playground ที่เรายังไม่ได้เรียนรู้ แต่นี่ก็เพียงพอที่ทำให้เราได้เรียนรู้พื้นฐานของภาษา Swift ได้ ก่อนที่เราจะได้ไปเรียนรู้ในส่วนอื่นๆ.

เรียนรู้เพิ่มเติมจาก Swift Programming Course ของพวกเรา

ถ้าคุณสนใจที่จะศึกษาเพิ่มเติมเกี่ยวกับ Swift, คุณสามารถเรียนรู้เพิ่มเติมได้ที่ full course on Swift development.

อันนี้เป็นตัวอย่างง่ายๆ ตัวอย่างแรก ที่จะให้เรารู้ถึงรายละเอียดของ Playgrounds ว่ามันคืออะไร พร้อมทั้งความสามารถที่เป็นประโยชน์ของมัน.

ระบบ ios ใช้ภาษาใดในการพัฒนา

สรุป

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

ระบบ Android ใช้ภาษาใดในการพัฒนา *

แอปพลิเคชันจะเขียนโดยใช้ภาษาจาวา และใช้แอนดรอยด์ซอฟต์แวร์เดเวล็อปเมนต์คิต (Android software development kit) หรือ SDK โดยเอสดีเคจะประกอบด้วยชุดเครื่องมือต่างๆ นานาในการพัฒนาแอปพลิเคชัน รวมไปด้วยตัวรีบัก, แหล่งรวมซอฟต์แวร์ต่างๆ, ตัวจำลองแฮนด์เซต, โคดจำลอง และวิธีใช้ต่างๆ

ภาษา Swift พัฒนามาจากภาษาอะไร

ไอเดียการพัฒนาของ Swift ได้มาจากภาษาโปรแกรมดังๆ มากมาย เช่น Objective-C, Rust, Haskell, Ruby, Python, C#, CLU ฯลฯ Playgrounds และ REPL คือความปรารถของ Lattner เองที่อยากจะทำให้ภาษาโปรแกรมเป็นสิ่งที่โต้ตอบกับผู้เขียนได้และง่ายต่อการเข้าถึง

iOS เป็นโปรแกรมประเภทใด

ระบบปฏิบัติการไอโอเอส (iOS) มีชื่อเดิมว่า iPhone OS เริ่มต้นด้วยการเปิดตัวของ iPhone เมื่อวันที่ 29 มิถุนายน 2550 ระบบปฏิบัติการไอโอเอส (iOS) เป็นระบบปฏิบัติการสำหรับสมาร์ทโฟน (Smartphone) ของแอปเปิล โดยเริ่มต้นพัฒนาสำหรับใช้ในโทรศัพท์ iPhone และได้พัฒนาต่อใช้สำหรับ iPot Touch และiPad โดยระบบปฏิบัติการนี้สามารถเชื่อม ...

Xcode เขียนภาษาอะไรได้บ้าง

ซีXcode / ภาษาโปรแกรมnull