Hello Swift


สวัสดีครับ ไม่ได้พบกันนานสบายดีมั้ยครับ ^^ กลับมาเขียนบล็อกอีกครั้งแล้ว ดีใจมากมายเลย หลังจากที่คลุกกับงานอยู่นานหลายเดือนเกือบปี 555+ (ตอนนี้เสร็จแล้วเข้าไปดูได้ในเว็บ www.dusitandwana.com นะครับ) ตอนนี้น่าจะเป็นช่วงที่ดีครับ เหมาะเลยสำหรับการเขียนบล็อกนี้ เพราะมันเป็นกระแสมาก จากงาน WWDC 2014 มันคือ Swift ภาษาโปรแกรมอันใหม่ที่ แอปเปิ้ลพัฒนาขึ้นเพื่อให้นักพัฒนาเขียนโปรแกรมง่ายขึ้นและที่ดีกว่านั้นคือมันทำงานได้เร็วขึ้นด้วย เราจะมาทำความรู้จักกับ Swift กัน swift-screenshot   ข้อมูลจากเว็บไซต์ https://developer.apple.com/swift/ Swift เป็นนวัตกรรมภาษาคอมพิวเตอร์ตัวใหม่ สำหรับ Cocoa และ Cocoa Touch (สำหรับพัฒนาแอพบน Mac OS และ iOS นั้นเอง) การเขียนโค้ดมีการตอบสนองอย่างรวดเร็วและสนุก ด้วยรูปแบบประโยคโค้ดที่สั้นกระชับแต่ก็ยังสื่อความหมาย และแอพทำงานอย่างรวดเร็วปานสายฟ้าฟาด (โอ้ว่าไป) Swift พร้อมแล้วสำหรับโปรเจค OSX / iOS ต่อไปของคุณ หรือจะเพิ่มมันเข้าไปในโปรเจคตอนนี้เลยก็ได้ :) (อันนี้เห็นจะจริง แต่จะเอาเข้าไปไง ต้องศึกษากันอีกยาวววว) เพราะว่าโค้ด Swift ทำงานเข้ากับ Objective-C อยู่แล้ว

ทำไมต้อง Swift

Modern Swift เนี่ยเป็นภาษาโปรแกรมล่าสุดที่ได้จากประสบการณ์การทำแอปเปิ้ลแฟลตฟอร์มมากว่า 10 ปี (โอ้นาน นะเนี่ย) การใส่พารามิเตอร์แบบ Objective-c ที่เด่นชัดในรูปประโยคที่เป็นระเบียบนั้นได้สร้าง API ให้กับ Swift ที่ง่ายต่อการอ่านและการปรับปรุง … เรื่องของเมมโมรี่ไม่ต้องกังวล มันจัดการให้เองอัตโนมัติเลย (วู้ดีจุงเบย จัดการให้ยังไงหว่า อันนี้ต้องศึกษาเพิ่ม จะเหมือน ARC หรือป่าวหรือดีกว่า) ทีเด็ดที่จะงงกันอยู่ตรงนี้ครับ >>> ไม่ต้องใส่ ; อีกต่อไป (แค่เริ่มก็โค้ดเออเรอแล้ว 555+ จบด้วยการเคาะนิ้วก้อยขวาตลอดแบบนี้อ่ะ) ภาษา Swift นั้นมีจุดเด่นมากมายที่จะทำให้โค้ดของคุณนั้นสื่อความหมายได้ชัดขึ้น

  • Closures unified with function pointers
  • Tuples and multiple return values
  • Generics
  • Fast and concise iteration over a range or collection
  • Structs that support methods, extensions, protocols.
  • Functional programming patterns, e.g.: map and filter

(นะ… ส่วนใหญ่เป็นภาษาโปรแกรมมิ่งทั้งนั้นแปลไปมันจะเป็นไทยสลับกับอังกฤษซะเปล่า เอาเป็นว่าอ่านแบบนี้น่าจะเข้าใจมากกว่านะ … มั้ยครับ?) Designed for safety Swift มีการตัดโค้ดที่ไม่ปลอดภัยออก ตัวแปรที่ต้องมีการประกาศค่าก่อนใช้ตลอด อาเรย์และค่าตัวเลขนั้นถูกเช็คสำหรับการป้องกัน Overflow (ตรงนี้เจ๋งครับ เป็นบ่อยครับในเรื่องของ index ของอาเรย์จากการคำนวน) และเมมโมรี่จะถูกจัดการตลอดแบบอัตโนมัติ รูปประโยคนั้นปรับให้ง่ายขึ้นมากในการประกาศค่าตัวแปร ตัวอย่าง “ABC” จะใช้คีเวิร์ดในการสร้างคือ var (มาจาก variable) หรือจะสร้างแบบ constant ให้ใช้ let (ง่ายไป ว่าแล้วทำไมมีแค่ var กับ let เข้าใจเลย แต่คงต้องไปดูเรื่องของ constant ด้วยว่าขอบเขตการใช้งานขนาดไหน) The Safe patterns ใน Swift นั้นถูกปรับสำหรับ Cocoa และ Cocoa Touch API ทำงานได้อย่างเต็มประสิทธิภาพ Swift เนี่ยทำงานร่วมกันได้ในการสร้าง iOS และ Mac แอพที่ง่ายกว่าและปลอยภัยกว่าแต่ก่อน Fast and Powerful จากหัวข้อก่อนหน้า Swift นั้นสร้างมาเพื่อให้ทำงานได้เร็ว ใช้ LLVM compiler ประสิทธิภาพสูง โค้ด Swift นั้นเปลี่ยนแปลงจนเป็น native code ที่เหมาะสม ปรับให้ได้รับประโยชน์จาก Modern Mac, iPhone และ iPad มากที่สุด รูปแบบประโยคและ library มาตราฐานนั้นถูกปรับให้เข้าใจง่าย ทำให้การเขียนโค้ดของคุณบรรลุเป้าหมายอย่างดีที่สุด (ว้าว แปลถูกมั้ยเนี่ย แต่ก็ว้าว…) Swift นำเอาข้อดีของทั้ง C และ Objective-c มาใช้ นั้นรวมไปถึง low-level primitives เช่น type, flow control และ operators และยังมี OOP ด้วยเช่น คลาส โปรโตคอล และ generics ได้มอบประสิทธิภาพและพลังตามแต่นักพัฒนา Cocoa และ Cocoa Touch ต้องการ (เหอะๆ) Read-Eval-Print-Loop (REPL) ในดีบัคคอนโซลของ Xcode จะมีตัวแสดงผลพิเศษแบบตอบสนองอย่างรวดเร็ว (Interactive) เฉพาะสำหรับโปรแกรมที่เขียนด้วย Swift  ลองเขียนโค้ดดูค่าต่างๆ บนคอนโซล ค่าจะปรับเปลี่ยนไปมาตามสูตร สมการในแต่ละรอบ หรือเขียนโค้ดเพิ่มเติม แล้วดูผลลัพธ์การรันที่เปลี่ยนแปลงไป (ตรงนี้อย่างชอบเลย เหมือนดีบัคแบบหมดไส้หมดพุง จากนี้ไปเราจะไม่ได้มานั่งเดาค่าจากสูตรคำนวณอีกแล้ว เย้) มันจะปรากฏใน Xcode Console หรือ Terminal (ต้องเปิด panel นี้ขึ้นมาด้วย ไม่งั้นไม่เห็น) Interactive Playground ในหน้า Welcome Xcode 6 จะมีเมนูโค้ด Playground ให้เราศึกษาตัวอย่างโปรเจคที่พัฒนาด้วย Swift ด้วยนะ (ไม่ได้แปลเลย เพราะจะเปิดโค้ดมาดูอยู่แล้วในบทความหน้า ดังนั้นไปลองของจริงดีกว่าครับ) Ready Today ตอนนี้เริ่มศึกษา Swift ได้ทันที แค่โหลด Xcode6 มาแล้วก็จัดไปเลย ส่วนการอัพโหลดแอพที่พัฒนาด้วย Swift นั้นจะต้องรอถึงฤดูใบไม้ร่วง (เหอะๆ บ้านเราไม่มี รอไปเกือบสื้นปีนั้นหละครับ อีกไม่เกิน 6 เดือนได้ใช้แน่นอน ตอนนี้ก็ศึกษาไว้ก่อน) ตอนที่ iOS 8 และ OS X Yosemite ปล่อยนั้นแหละครับ เราถึงสามารถอัพแอพที่เขียนด้วย Swift ขึ้น App Store ได้ (ไม่นานนะ น่าจะได้สัก 2-3 แอพ แต่อัพแอพที่เป็น Objective-c ไปก่อนก็ได้แล้วค่อยเปลี่ยนโค้ดที่หลัง เหอะๆ)

จะเริ่มต้นศึกษา Swift ต้องทำอย่างไร

swift-hero    

เริ่มต้นศึกษา Swift ดาวน์โหลด Xcode 6 beta (ใครไม่มี Xcode6 beta คอมเม้นเอาไว้เลยครับ หรือ inbox ที่เพจ appcodev ได้เลย ผมจะบอกวิธี ??) และศึกษาขั้นตอนตาม Tutorial ในเอกสารได้เลย (มีลิ้งแนบมาให้ด้วย ตัวเอกสาร The Swift Programming Langauge มีเป็นแบบ iBook ด้วยนะ สะดวกในการพกพา)

เพื่อนๆ คนไหนสนใจที่จะเริ่มศึกษา Swift ไปด้วย เข้ามาคุยกันได้ที่เพจ Let Swift (www.facebook.com/let.swift) เลยนะครับ หรือในเพจ Appcodev ก็ได้เช่นกัน สุดท้ายนี้หากบทความนี้แปลผิดพลาดประโยคใดหรือทั้งหมด ผมขออภัยไว้ ณ ที่นี้ด้วยครับ จะดีมากเลยนะครับ หากช่วยเสริมบางประโยคที่ผมแปลผิดหรือแปลตกไป เพราะผมเองก็เริ่มต้นเหมือนกับเพื่อนๆ ทุกคนที่เข้ามาอ่านนี้แหละครับ (ตอนนี้นะ)

สนุกกับการเขียนโค้ด Swift นะครับ

Write the code. Change the world.

adaydesign :) #let.swift

About adaydesign

นักพัฒนาแอพพลิเคชั่นบนโมบาย [iPhone Android] คนหนึ่งซึ่งอยากจะบันทึกเรื่องราวของเส้นทางนักพัฒนาโมบายแอพพลิเคชั่นเอาไว้ในบล็อคน้อยๆ แห่งนี้ เผื่อจะแบ่งบันและแลกเปลี่ยนความรู้ให้กับคนอื่นๆ ได้บ้าง :) Mobile Application Developer; Flash Mobile, iPhone/iPad, Android Mobile Phone/Tablet and Blackberry Playbook.

Posted on มิถุนายน 4, 2014, in [Dev] iOS - Swift and tagged , , , , , , , , , . Bookmark the permalink. ใส่ความเห็น.

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

%d bloggers like this: