swift Archive

Skip tool :: พัฒนา iOS และ Android app ด้วย SwiftUI

การพัฒนา mobile app นั้นมีหลากหลายแนวทางมากทั้ง native app development ด้วยภาษา Kotlin และ Swiftหรือจะเป็นพวก cross-platform หรือ hybrid app development ด้วย Flutter, ReactNative และ Kotlin multiplatform (KMP)แต่เพิ่งเห็นอีกหนึ่งแนวทางคือ Skip tool

Read More…

สวัสดี Swift Testing

ทาง Apple ได้เปิดตัว Swift Testing ซึ่งเป็น unit test framework ตัวใหม่ซึ่งมาพร้อมกับ Xcode 16โดยที่มี syntax และรูปแบบการใช้งานที่ง่ายและสะดวกขึ้นมีการ assert ที่ดีขึ้นอีกทั้งยังมี parameterized testing เป็นต้นดังนั้นมาทำความรู้จักและลองใช้งานกันหน่อย

Read More…

ลองใช้งาน SwiftFormat ใน XCode กันหน่อย

ปัญหาที่มักเจอใน XCode สำหรับการเขียน iOS app ด้วยภาษา Swift คือ รูปแบบการเขียน code ที่แตกต่างกัน ซึ่งมักจะแก้ไขด้วย การพูดคุยและกำหนด rule ด้วยข้อตกลงหรือนำเครื่องมือมาใช้งาน ยกตัวแย่างเช่น Swift Lint

Read More…

สวัสดี Localhost XCUITest สำหรับ iOS App

ปัญหาหลัก ๆ สำหรับ End-to-End testing ด้วย XCUITest ประกอบไปด้วย Dependencies ซึ่งจัดการและควบคุมได้ยากมาก ๆ Concurrency คือการทดสอบพร้อม ๆ กัน Repeatability ไม่สามารถทดสอบซ้ำ ๆ ยิ่งกว่านั้นผลการทำงานไม่ค่อยเหมือนเดิมหรือไม่เสถียรเอาซะเลย ส่งผลให้ยากต่อการเขียนชุดการทดสอบ !!

Read More…

สรุปเรื่อง Great Developer Habits จากงาน WWDC 2019

นั่งดู VDO จาก session ต่าง ๆ ของงาน WWDC 2019 มันเยอะมาก หนึ่งในนั้นมี session ที่ชอบมาก ๆ ซึ่งคิดว่ามันคือพื้นฐานของการพัฒนามาก ๆ  นั่นก็คือ Great Developer Habits สำหรับการพัฒนาระบบงาน โดยเฉพาะ iOS Developer นั่นเอง มาดูกันว่ามีอะไรบ้าง

Read More…

Swift :: ลองปรับปรุงการใช้งาน protocol กันนิดหน่อย

วันนี้เจอ code ที่เขียนด้วยภาษา Swift ที่น่าสนใจ เกี่ยวกับการใช้งาน protocol แถมเจอบทความอธิบายเรื่องนี้ด้วย  Protocol Composition เลยนำมาสรุปกับ code ที่พบเจอด้วยเลย โดย code เหมือนจะดูดีนะ แต่มีหลายเรื่องที่สามารถปรับปรุงให้ดีขึ้นได้ มาเริ่มกันเลย

Read More…

[Swift] แก้ไขปัญหาการทำ UI Testing สำหรับ UISlider

ปัญหามีอยู่ว่า ไม่สามารถทำการเขียน code เพื่อทำ UI Testing สำหรับ UISlider ที่มีการแก้ไขรูปแบบการแสดงผลได้ สิ่งที่เจอคือ ทำการหมุน UISlider จากแนวนอนไปเป็นแนวตั้ง ทำให้รูปแบบของการหา element และการจัดการที่ต่างออกไป !!

Read More…

[iOS] เราจะทำการจำลอง API server สำหรับ UI testing อย่างไร

คำถามที่น่าสนใจจากทีมเกี่ยวกับจำลอง API server เพื่อทดสอบ UI test สำหรับ iOS app จะทำอย่างไรดี ? คำตอบง่าย ๆ คือ ง่าย ๆ ให้ทำการส่ง url ของ API server ผ่าน environment variable สิเออ !!! พูดแบบนี้อาจจะไม่เห็นภาพ ดังนั้นมาดู code กันหน่อย

Read More…

[Swift] มาทำการ refactor code พวก Singleton กันหน่อย

ใน code สำหรับ iOS ที่พัฒนาด้วยภาษา Swift นั้น พบว่ามีการเขียน code ในรูปแบบ Singleton เยอะมาก ๆ แน่นอนว่า วิธีการนี้มันมีทั้งข้อดีและข้อเสีย เช่น พัฒนาได้ง่าย ใช้งานง่าย ยากต่อการทดสอบ ยากต่อการ reuse state เปลี่ยนได้ตลอด ขอบเขตการทำงานเป็น global ไป ๆ มา ๆ ข้อเสียเยอะนะเนี่ย !! ดังนั้นจึงเป็นเหตุผลว่า ทำไมควร ลด ละ เลิก หรือถ้าต้องการใช้งานจริง ๆ ก็ควรระมัดระวังให้มากเข้าไว้ แต่ถ้าเป็น code ที่มีอยู่แล้วละ ? การจะทำการลบ code เหล่านี้ทิ้ง น่าจะเป็นงานช้างแน่ ๆ ดังนั้นเรามาหาวิธีการอยู่กับ Singleton กันเถอะ นั่นคือการ refactor code นั่นเอง [&hellip

Read More…

[Swift] ลดการเขียน code ซ้ำ ๆ ด้วย Sourcery กันหน่อย

ในการ coding นั้นเรื่องของ copy-and-paste รวมทั้ง code ที่ต้องเขียนซ้ำไปซ้ำมา บางครั้งเป็น code ที่ไม่ควรจะต้องมี แต่ด้วยโครงสร้างของภาษาก็จำเป็นต้องเขียน ทำให้เสียเวลาในการพัฒนาระบบไปอย่างมาก นั่นแสดงว่าเราได้ปฏิบัติตัวขัดแย้งกับ DRY principle อย่างมาก DRY ย่อมาจาก Don’t Repeat Yourself ดังนั้นเรามา ลด ละ เลิก กันบ้างแถอะ หนึ่งในนั้นคือ การ generate code จาก template ซึ่งในบทความนี้ขอแนะนำ Sourcery

Read More…