[iOS] รีวิวการเขียนแอปบน iPad ด้วย Swift Playground 4

Kajornsak P.
4 min readDec 19, 2021

--

https://developer.apple.com/swift-playgrounds/

ใน WWDC 2021 Apple เปิดตัว Swift Playground 4 ว่าสามารถเขียนแอปบนไอแพดได้ ทำให้เป็นกระแสที่ hype มากตอนนั้น เพราะที่ผ่านมา Playground เหมาะสำหรับการเรียนรู้ตัว algorithm และ ภาษาซะมากกว่า

การที่เราสามารถเขียนแอปจริงๆขึ้นมา พร้อมทั้ง submit ขึ้น App Store ได้ ถือว่าเป็นอะไรที่ช่วย Onboarding นักพัฒนา ได้ดีมากๆ ซึ่ง Apple ก็ปล่อยเวอร์ชั่น 4 ออกมาได้ทันปีนี้จริงๆตามที่บอกไว้

SwiftUI

Swift Playground 4 รองรับการเขียนแอปด้วย SwiftUI เท่านั้น ซึ่งก็ถือว่าค่อนข้างดีแล้ว เพราะเป็น paradigm ใหม่ของการเขียนโค้ด UI ด้วย declarative style ทำให้มีความ friendly กับนักพัฒนาพอสมควรเลย ซึ่งจริงๆการเขียน SwiftUI บน Swift Playground นั้นมีมาซักพักแล้วตั้งแต่ Swift 5.1 แต่ก็เรียกว่าไม่ได้เหมือนกับการเขียนบน Xcode ซะทีเดียว

แต่สิ่งที่เพิ่มขึ้นมาก็คือการเขียน App นั่นเอง ซึ่งใน Swift Playground 4 นั้น จะมีความสามารถในส่วนของการ Preview โค้ดที่เขียนออกมาเป็น App นั่นเอง โดย default แล้ว Swift Playground จะทำการ Preview เฉพาะตัว Main App ให้เท่านั้น หากต้องการ Preview ส่วนอื่นๆ ก็ต้องใช้หลักการเดียวกับ Xcode เลยก็คือการใช้ PreviewProvider นั่นเอง

เราสามารถปัดซ้ายขวาเพื่อเปลี่ยน Preview ได้

Preview & Run

การดูผลลัพธ์ของแอปที่เราเขียนใน Swift Playground 4 นั้นสามารถทำได้สองวิธีหลักๆ คือการใช้ Preview อย่างที่เห็นไปก่อนหน้า ซึ่งเราสามารถปรับ Size Class ได้อยู่สองแบบนั่นเอง (iPhone และ iPad) เพียงแค่ทำการลากออกมา

ส่วนอีกวิธีก็คือการรันแอปจริงๆนั่นเอง โดยทำการกดปุ่ม Run ที่มุมซ้ายบน

จะเห็นว่ามี Playgrounds อีก 1 ตัวที่โผล่ขึ้นมา เป็นหน้าเฉพาะของแอปเรา

ซึ่งเราก็สามารถใช้ Split View เพื่อเปิดดูแอปเราไปพร้อมๆกับตอนเขียนโค้ดได้เช่นเดียวกัน แต่ ใช้ Preview จะสะดวกกว่าเยอะะ การ Run เหมาะสำหรับ ตอนที่ต้องการเทสเต็มๆแอปซะมากกว่า

สามารถกด Update & Show App ได้เลย

App’s Metadata

เราสามารถเปลี่ยนชื่อแอป, Theme (ในที่นี้คือ Accent Color), App Icon, package identifier และ Capabilities ผ่านตัว App Settings ได้ทันที โดย Icon ที่เป็น Placeholder จะเอาไว้สำหรับทดสอบเท่านั้น ไม่สามารถ submit ขึ้น Store ได้

Capabilities

โดยปกติแล้ว ถ้าแอปของเราต้องการใช้งานความสามารถบางอย่างของ OS/Hardware เราก็จะต้องทำการเพิ่ม Capabilities ในแอปด้วย พร้อมกับการเพิ่ม Privacy Description ในบางกรณี ซึ่งเจ้า Swift Playground ก็มีความสามารถนี้ด้วยเช่นกัน

เมื่อทำการกด Add Capabilities ใน App Settings แล้ว เราก็สามารถเพิ่ม Capabilities ที่ต้องการได้เลย จากนั้นสามารถระบุ Privacy description ได้ด้วย ถือว่าทำออกมาได้ใช้งานง่ายพอสมควรเลย

3rd-party frameworks

เราสามารถเรียกใช้งาน 3rd-party frameworks ได้ด้วย แต่จะรองรับเฉพาะ Swift Package Manager (SPM) เท่านั้น​ ซึ่งหลายๆ frameworks ก็ได้มีการอัปเดตให้รองรับแล้วเช่นเดียวกัน

การ Submit ขึ้น Testflight และ App Store

หลังจากที่เราพึงพอใจกับโค้ดที่เขียนแล้ว และต้องการนำไปทดสอบบนอุปกรณ์อื่น (iPhone, iPad เครื่องอื่นๆ, mac ที่เป็น Apple Silicon ) เราสามารถล็อคอินด้วย developer account และทำการ submit ผ่าน Swift Playground ตรงๆได้เลย

โดย Swift Playground จะทำการสร้าง App บน App Store Connect ให้เราเองด้วย

แล้วก็รอให้ฝั่ง App Store Connect นั้นจัดการกับตัว build (iPA) ของเราเล็กน้อย เมื่อพร้อมทดสอบแล้วก็สามารถโหลดตัวแอปของเราผ่าน Testflight มาลองเล่นได้เลย

ซึ่ง Swift Playground จะจัดการทุกอย่างให้เรียบร้อย

แต่!! การจะทดสอบ iPhone, iPad จาก Testflight บนเครื่อง Apple Silicon นั้น ต้องไปทำการ enable ที่ App Store Connect Users ก่อนนะ ไม่งั้น Testflight บน Mac จะบอกว่าไม่รองรับ

อย่าลืมเปิดถ้าต้องการทดสอบบน Mac

ทีนี้เราก็สามารถโหลดลงมาทดสอบตามปกติได้แล้ว

ซ้าย: iPhone Testflight, ขวา Mac Testflight

และเมื่อทำการเปิดแอปของเราบน Apple Silicon Mac ก็จะเห็นว่า แอปที่เราเขียนนั้นเป็น iPhone/iPad App ที่รันผ่าน Apple Silicon นั่นเอง แต่ไม่ใช่ macOS App หรือ Catalyst App แต่อย่างใด (ไม่รู้ว่าอนาคตจะสามารถ submit เป็น macOS ได้หรือไม่ ต้องรอดูกันต่อไป~)

Limitations

หลังจากที่เกริ่นมาซักพักแล้ว มาดูข้อจำกัดของการพัฒนาแอปด้วย Swift Playground 4 กันดีกว่า!

เวอร์ชั่นของ iPad ที่จะสามารถใช้ได้

ใช่ครับ การที่เราจะโหลด Swift Playground 4 ได้ จำเป็นต้องมี iPad ที่เป็น iPadOS 15.2 ขึ้นไปเท่านั้น ซึ่งถ้าเรามี iPad ที่ลง iPadOS ไว้ต่ำกว่านั้น จำเป็นจะต้องทำการอัปเดตซะก่อน ไม่งั้นจะได้ Swift Playground เวอร์ชั่นเก่ามาใช้

iOS, iPadOS, macOS ที่รองรับ

ตัวแอปที่ทำการเขียนด้วย Swift Playground 4 นั้น สามารถใช้งานได้บน iOS, iPadOS 15.2 เช่นกัน และ macOS 12.1 ที่เป็น Apple Silicon เท่านั้น 😢

ถือว่าเป็นการเริ่มต้นที่ดีสำหรับ OS เวอร์ชั่นใหม่ๆที่กำลังจะออกมาละกัน~

On-screen keyboard

การพิมพ์โค้ดใน iPad ถือว่าไม่ยาก แต่ก็ไม่ง่าย ถ้าหากเป็น On-screen keyboard เพราะหน้าจอจะถูกแบ่งไปเป็นคีย์บอร์ดแล้ว ทำให้เห็นโค้ดได้ไม่เยอะ โดยเฉพาะการใช้งานบน iPad ขนาดเล็กเช่น iPad mini ถ้าเป็นไปได้ ใช้งาน Smart Keyboard, Bluetooth Keyboard หรือต่อ Keyboard เสริมจะดีกว่าครับ (ถ้าเป็น Mechanical Keyboard ก็จะ satisfy เพิ่มอีก 300%)

ไม่เหลืออะไรเลยยยย

Summary

  • Swift Playground นั้นดีขึ้นมาก และสามารถใช้งานได้หลากหลายรูปแบบ เหมาะกับการเป็น Playground สมชื่อมากๆ
  • UX ภายในแอปถือว่าทำมาได้ค่อนข้างดี อาจจะมี Hidden settings อยู่เล็กน้อย แต่ก็หาได้ไม่ยากเช่นการ login developer account
  • การ Submit & Test นั้นค่อนข้าง seamless เลยทีเดียว คนที่ไม่เคยเขียนแอปมาก่อนก็สามารถมีแอปของตัวเองในเครื่องได้ง่ายๆเลย
  • ตัวแอปที่เขียนด้วย Swift Playground มีขนาดเล็กมากๆ (แน่นอน เพราะเป็น SwiftUI และผมไม่ได้เพิ่ม Assets อะไรเข้าไป)
  • ความสามารถยังไม่เทียบเท่า Xcode และไม่รู้ว่าอนาคตจะเทียบเท่าหรือไม่ เพราะถือว่าเป็นแอปคนละ segment กันอยู่พอสมควร
  • ยังขาดความสามารถเรื่อง debugging อยู่ แต่คิดว่าในอนาคตน่าจะดีกว่านี้แน่นอน
  • ส่วนตัวแล้วถือว่าชอบมาก เพราะอยากมีที่ไว้ poc แอปเล็กๆน้อยๆอยู่แล้ว 💯

สำหรับบทความนี้ก็จะประมาณนี้แหละครับ ใครที่สนใจก็สามารถไปลองโหลดมาเล่นได้เลย~~

--

--

Kajornsak P.

Android & iOS developer. Interest in UI/UX design. Currently, Senior iOS Engineer at Agoda — Mobile Platform team