คู่มืออบรม เขียนโปรแกรมบน iOS ด้วย ภาษา Swift
โดย มาสเตอร์ อึ่ง
SwiftCodingThai.com มาสเตอร์ อึ่ง ทอล์ค อะไร ? คือ Swift และ Swift คือ อะไร ? Swift คือ ภาษาใหม่ ที่ใช้ในการพัฒนา โค้ดที่จะใช้ในอุปกรณ์ ต่างๆ ของ Apple ที่ใช้ระบบปฎิบัติการ iOS เป็น ระบบปฏิบัติการ ไม่วา่ จะเป็น iPhone หรือ iPad ตัว Swift ถูกพัฒนามาจาก ภาษา Objective-C อีกที เป็นภาษาออกแบบมาให้ โปรแกรมเมอร์ ใช้ได้อย่าง ง่าย และ กระชับ ไม่ ซับซ้อนจนเกินความจําเป็นไป แบบ Objective-C ในการใช้งาน ภาษา Swift ต้องใช้ Xcode เวอร์ชั่น 6 ขึ้นไปเท่านั้น ในคู่มือเล่มนี้ เป็น Basic Swift ที่เน้นปูพื้นฐาน ให้สามารถโค้ด Swift บน Xcode ได้ และ นําไปต่อยอด ต่อไป สําหรับ หลายๆ ท่านที่อ่านแล้วไม่เข้าใจอะไร จะเข้าไป ถาม มาสเตอร์ ที่ http://swiftcodingthai.com หรือ https://www.facebook.com/SwiftCodingThai หรือ จะโทรถามเป็นการส่วนตัวที่ 0818595309 ได้ทุกเวลา ครับ มาสเตอร์ อึ่ง
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
2
SwiftCodingThai.com สารบัญ
อะไร ? คือ Swift และ Swift คือ อะไร ? ........................................................................................................................ 2 เปิด Xcode และ New Project ........................................................................................................................................ 4 กำหนด Workspace ....................................................................................................................................................... 5 ทําความรู้จัก main.swift ................................................................................................................................................. 5 println ............................................................................................................................................................................ 6 Type Safety and Type Interference .......................................................................................................................... 10 Get started with a playground .................................................................................................................................. 11 AppDelegate.swift....................................................................................................................................................... 15 ViewController.swift .................................................................................................................................................. 16 ทดสอบโค้ดด้วย iOS Simulator .................................................................................................................................. 16 Label ............................................................................................................................................................................ 18 Text Field .................................................................................................................................................................... 19 Button .......................................................................................................................................................................... 20 Decleration String ...................................................................................................................................................... 38 If – else Statement ...................................................................................................................................................... 39
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
3
SwiftCodingThai.com Hello World ก่อนที่เราจะเข้าไปทําความรู้จัก Swift เรามาเตรียมเครื่องมือสําหรับการเรียนรู้กันก่อน หลังจากที่เรา ติดตั่ง Xcode 6 เป็นที่เรียบร้อย เรามาลอง Hello World ใน Command Line Tool เพื่อเป็นพื้นฐานในการเรียน Swift กัน
เปิด Xcode และ New Project
เลือก OS X > Application และ Command Line Tool
กำหนด Options ต่างๆ สําหรับโปรเจ็ค ดังนี้
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
4
SwiftCodingThai.com กำหนด Workspace
Workspace เป็น โฟวเดอร์ ที่ไว้สําหรับ เก็บ Source Code ของเรา
ทําความรู้จัก main.swift
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
5
SwiftCodingThai.com println
println คือการพิมพ์ บน Console ลองเพิ่ม โค้ด สองบรรทัดนี่เข้าไป
และสั่งรันดู
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
6
SwiftCodingThai.com การประกาศตัวแปร และ ค่าคงที่ บน Swift การประกาศตัวแปร จะมี คําว่า var นําหน้า จะระบุชนิดของตัวแปร หรือ ไม่ระบุชนิดของตัวแปรก็ได้ สังเกตุว่า ทุกๆ คําสัง ของ Swift จะไม่มี เซมิโคร่อน (หรือ จะมีก็ได้ครับ) ส่วนค่าคงที่ จะมีคํานําหน้าว่า let แล้ว ค่าคงที่ กับ ตัวแปร แตกต่างกันอย่างไร ? ตัวแปร เปลี่ยนแปลงค่าได้ ตลอด ตรงข้ามกับ let ที่เป็นค่าคงที่ ไม่สามารถเปลี่ยนแปลงได้ ถ้าได้รับการกําหนด มาแล้ว
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
7
SwiftCodingThai.com ความสามาถพิเศษอีกอย่างของ Swift คือ เราสามารถ ใช้อะไร ? ก็ได้ มาแทนตัวแปร แทนที่จะต้องเป็น ตัวอักษร อย่างเดียว เราสามารถใช้ รูปภาพ มาแทน ได้ ครับ
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
8
SwiftCodingThai.com ที่บอกไปแล้วว่า ค่าคงที่ let ไม่สามารถแก้ไขค่าได้ (บรรทัดที่ 39) มาสเตอร์ Comment บรรทัด ที่ 39 และลอง รับโปรแกรม จะได้แบบนี่ ที่ Console
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
9
SwiftCodingThai.com Type Safety and Type Interference
คือการกําหนด ชนิดของ ข้อมูล Data Type จากตัวอย่าง ตัว Swift จะเลือก Data Type ที่เหมาะสมกับ ตัวแปรเอง
การเขียนโค้ด Swift บน PlayGround ใน Xcode 6 จะมีเครื่องมือในการทดสอบ หรือ เรียนรู้ การเขียนโค้ด Swift บน PlayGround ลอง New Project และ เลือก PlayGround และ พิมพ์ โค้ดเหล่านี่เข้าไป
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
10
SwiftCodingThai.com Get started with a playground
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
11
SwiftCodingThai.com
จากตัวอย่างที่ทดสอบ บน PlayGround บรรทัดที่ 13 จะมี Error เพราะ มาสเตอร์ จงใจแก้ไขค่า ของค่าคงที่ intX ที่เป็น let
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
12
SwiftCodingThai.com Hello World บน iOS Appplication ทีนี่เราจะลองทําแอพบน iPhone จริงๆละ
ไปที่ iOS > Application > Single View Application
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
13
SwiftCodingThai.com กําหนดค่าเริ่มต้นให้ โปรเจ็ค แบบนี้
กําหนดที่เก็บ สําหรับโค้ด ที่จะเขียนขึ้น
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
14
SwiftCodingThai.com ได้มาละ โปรเจ็คสําหรับ โค้ด Swift ที่จะใช้ สําหรับ การตั่งต้น
AppDelegate.swift
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
15
SwiftCodingThai.com ViewController.swift
ทดสอบโค้ดด้วย iOS Simulator
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
16
SwiftCodingThai.com การใช้ Text Field, Button and Label เดีย๋ วเราลองสร้าง Worlshop ง่ายๆ เกี่ยวกับ การใช้งาน Text Field, Button และ Label จาก โปรเจ็ค HelloWorld เปิด main.storyboard ออกมาแบบนี้
ประจอให้เหลือขนาดเท่า iPhone 4s ก่อนโดยการเลือก 2 ช่องแบบนี้
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
17
SwiftCodingThai.com
Label
คือ View ที่แสดงตัวอักษร
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
18
ปรับอักษรจนได้แบบนี้
SwiftCodingThai.com
Text Field
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
19
SwiftCodingThai.com Button
เพิ่ม Label อีกอันด่านล่าง
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
20
SwiftCodingThai.com ลองทดสอบการออกแบบ ที่ได้ บน Simulator
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
21
SwiftCodingThai.com
เริ่มการโค้ดดิ้งโดยการเปิด ViewController.swift ออกมา
คลิกเพื่อ รวมจอ
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
22
SwiftCodingThai.com
ภายในคลาส ViewControler มาสเตอร์ ตั่งชื่อ Text Field ว่า myTextField
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
23
SwiftCodingThai.com จะได้ การประกาศตัวแปร (มี var) ประกาศชนิดตัวแปรเป็น UITextField แบบนี้
ทําในส่วนของ Label บ้าง
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
24
SwiftCodingThai.com การประกาศตัวแปร ของ Button สังเกตุใน Connection ให้เลือก Action
เมื่อมีการคลิก จะทํางานที่ ปีกกา ใน func
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
25
SwiftCodingThai.com จะได้แบบนี้ ให้พิมพ์ คําสั่งนี่ลงไป
ลองทดสอบโค้ด บน iOS Simulator
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
26
SwiftCodingThai.com
ลองกรอกภาษาไทยบ้าง
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
27
SwiftCodingThai.com
Easy Login เป็น Workshop สําหรับ เรียนรู้ให้ วิธี การนําค่าที่ User กรอก ไปประมวลผล File > Close Project และ เตรียบ สร้าง โปรเจ็คใหม่ได้เลย
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
28
SwiftCodingThai.com เลือก Single View Application เหมือนเดิม
มาสเตอร์ ตั่งชื่อโปรเจ็คว่า EasyLogin
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
29
SwiftCodingThai.com ได้มาละ โปรเจ็ค EasyLogin ของเราที่ จะนํามาทํา Workshop
เปิด main.stroryboard ออกมา
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
30
SwiftCodingThai.com
ให้ได้ขนาดนี่
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
31
SwiftCodingThai.com เพิ่ม Text Field และ Label เข้าไปที่หน้า UI
และ ปุ่ม จน UI เรามีหน้าตาแบบนี้
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
32
SwiftCodingThai.com ลองทดสอบโค้ด ที่ออกแบบได้ บน iOS Simulator
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
33
SwiftCodingThai.com เปิด ViewController.swift ออกมาครับ
ประกาศตัวแปรให้ Text Field และ Button
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
34
SwiftCodingThai.com ของ Text Field ที่ใช้เก็บค่า ของ User
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
35
SwiftCodingThai.com ส่วนนี่ ของ Text Field ที่เก็บค่า Password
และสุดท้าย ของ Label
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
36
SwiftCodingThai.com
ต่อไปของ Button
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
37
SwiftCodingThai.com
Decleration String
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
38
SwiftCodingThai.com If – else Statement
โดยกําหนดเงื่อนไขให้ ดูว่าสิ่งที่ ผู้ใช้แอพกรอก User และ Password นั้นเท่ากับ ตัวแปร String ที่เรากําหนดไว้หรือ เปล่า โดยการเชื่อมด้วย and ถ้าใช่ จะแสดง ข้อความ Welcome my Boss ที่ Console แต่ถ้ามีอะไร ไม่ถูก สักแค่ตัวเดียว จะแสดงข้อมความ Login False แทน
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
39
SwiftCodingThai.com
ลองทดสอบโค้ด Swift ที่เขียนได้ บน iOS Simulator
ลองกรอก User, Password ให้ผิด และ กด Login
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
40
SwiftCodingThai.com ในทางตรงกันข้าม มาสเตอร์ ลองกรอก User และ Password ให้ถูกต้อง จะได้ผลดังนี้
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
41
SwiftCodingThai.com มาสเตอร์ เพิ่มโค้ด พวกนี่ลงไปเพื่อให้ คลิกที่จอ แล้ว Keyboard ซ่อนไปได้ และ มีความสามารถในการจัดการด้านสี
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
42
SwiftCodingThai.com
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
43
SwiftCodingThai.com
โดย มาสเตอร์ อึ่ง สถาบัน EWTC 53 บางนา-ตราด 14 บางนา กรุงเทพ 10260 โทร 0818595309
44