ในช่วงวันหยุดมาศึกษาสิ่งใหม่ ๆ กันหน่อย
หรือว่าใหม่ของผมแต่อาจจะเก่าของคนอื่นก็ได้ !!
สำหรับนักพัฒนา iOS app นั้น
ต้องสร้างระบบ Backend/API หรือ Server-side มาใช้งานเสมอ
ซึ่งมักจะพัฒนาด้วยภาษาอื่น ๆ เช่น Java, PHP, Node.js, Rail และ Go เป็นต้น
ทำให้ต้องเรียนรู้มากขึ้น
ทำให้ต้องมีทีมมากขึ้น
คำถามที่น่าสนใจก็คือ
ถ้าระบบในส่วน Server-side และ iOS app นั้น
สามารถพัฒนาด้วยภาษาเดียวกัน
มันน่าจะดีไม่น้อยนะ ?
คำถามนี้ถูกตอบชัดเจนขึ้นเมื่อ Swift เปิด opensource
ทำให้สามารถพัฒนาทั้งสองฝั่งด้วยภาษา Swift
ซึ่งทำให้เกิด project S4 ขั้นมา
โดย S4 ย่อมาจาก Server Side Swift Standard
นั่นคือมาตรฐานสำหรับการสร้าง Server Side ด้วยภาษา Swift
ประกอบไปด้วยส่วนการทำงานดังนี้
- Middleware
- Request
- Response
- Server
ทำให้เกิด framework ต่าง ๆ ในภาษา Swift
สำหรับสร้างระบบ web application หรือ server side เยอะมาก ๆ
ตัวอย่างเช่น
ยังไม่พอนะ ในแต่ละ framework ก็พัฒนาอยู่บน Swift ต่าง version กันอีก
ชีวิตดูลำบากมาก ๆ !!
แต่ไม่เป็นไรมี Swift Package Manager ให้ใช้งาน
แล้วจะเลือก Framework ตัวไหนดีล่ะ ?
ผมแนะนำให้ลองใช้งานทั้งหมดดูนะครับ
ส่วนผมเลือก Vapor
เพราะว่าชอบในรูปแบบการใช้งานเท่านั้นเอง
แถมมีเอกสารที่ใช้ได้เลย
รวมทั้งใช้งานผ่าน command line ได้อีกด้วย
มาเริ่มกันดีกว่า
Software ที่ใช้งานประกอบไปด้วย
- Mac OS
- Xcode 7.3.1
ขั้นตอนที่ 1 ติดตั้ง Swift Package Manager
ใช้สำหรับจัดการ version ของ dependency ที่ใช้งานใน project
ช่วยให้สามารถทำการ build และติดตั้ง library ต่าง ๆ แบบอัตโนมัติ
ซึ่งเหมือนกับ Cocoapods และ Carthage นั่นเอง
แต่โชคไม่ดีนักที่ Swift 3 ยังอยู่ในสถานะของการพัฒนา
ทำให้มี version ต่าง ๆ ออกมามากมาย
ดังนั้นจำเป็นต้องใช้งาน Swift Version Manager หรือ Swiftenv
ทำการติดตั้งดังนี้
ขั้นตอนที่ 2 ติดตั้งภาษา Swift 3
$swiftenv install DEVELOPMENT-SNAPSHOT-2016-05-31-a
ขั้นตอนที่ 3 สร้าง Swift project
ผลการทำงานเป็นดังนี้
ประกอบไปด้วย
- main.swift คือไฟล์เริ่มต้นการทำงานของระบบ เราจะแก้ไขที่ไฟล์นี้
- Package.swift คือไฟล์สำหรับจัดการ dependency หรือ library ต่าง ๆ ที่ต้องการใช้งาน
ขั้นตอนที่ 4 ทำการเพิ่ม dependency ของ Vapor ในไฟล์ Package.swift
ขั้นตอนที่ 5 เขียน code ในไฟล์ main.swift กันเถอะ
ขั้นตอนที่ 6 ทำการ build และ run project กันเลย
$swift build
ผลการ build เป็นดังนี้
$.build/debug/HelloWorld
จากนั้นเข้าใช้งานผ่าน browser ที่ url=http://localhost:8080/
และทดสอบ response ในรูปแบบ JSON ดังนี้ http://localhost:8080/json
ขั้นตอนที่ 7 ทำการ deploy ไปยัง Heroku นิดหน่อย
สามารถเข้าใจงานได้ที่ http://up1-swift-vapor.herokuapp.com/json
เพียงเท่านี้ก็สามารถพัฒนา Server Side ด้วยภาษา Swift ได้แล้วนะ
ลองเล่นและใช้งานกันได้ครับ
Code ตัวอย่างอยู่ที่ Github::Up1
Reference Websites
https://stormpath.com/blog/tutorial-build-first-swift-web-app-vapor
https://github.com/qutheory/vapor-example