InjectionIII — XCode ก็มี Live Reload กับเค้าเหมือนกันนะจ้ะ

Suchai Fooanant
CREATIVE ME
Published in
1 min readJul 25, 2018

iOS/OSX Developer หลายๆคนอาจจะเคยเจอปัญหา Build time ที่กินเวลานานเหลือเกิน แรกๆเริ่มโปรเจ็คมันก็แปปเดียวเสร็จ หลังๆทำไมกว่ามันจะ Build เสร็จมันนานเหลือเกินน บางคน(เค้าเอง 🤫) เริ่ม Run เสร็จถึงกับปล่อยมือ ไถๆ Facebook รอบ้าง เล่นเกมรอบ้าง โดนบอสด่าบ้าง .. เอ่อะ 555555555

หลังๆเพราะผมเริ่มเบื่อกับการที่ต้องมารอ XCode มัน Build ละ เลยเริ่มหาทางไหนบ้างที่เราจะสามารถเพิ่มความไวในการ Build ได้บ้าง เพื่อให้ Product สามารถ Develop กันได้เร็วมากยิ่งขึ้น จนได้มาเจอกับผู้ช่วยชีวิตชื่อ “InjectionIII”

InjectionIII คืออะไร ?

โดยปกติเมื่อเรา Run โปรแกรมลงใน Device แล้ว (ลองใช้กับ iOS อย่างเดียวนะตอนนี้ T_T) หากเราแก้ไขโค้ดบางอย่างลงไป ทางเดียวที่เราจะสามารถเห็นผลลัพธ์ได้นั้นคือ Run โปรแกรมใหม่เพื่อติดตั้งโค้ดชุดใหม่ของเราเข้าไป ซึ่งกระบวนการนี้ ถ้าโปรเจ็คเล็กๆ เราก็อาจจะไม่รู้สึกหงุดหงิดอะไรมากมาย ใช้เวลา 30 วินาทีมั่ง 1 นาทีมั่ง ชิลลลลล กดปุ้ปแทบจะรันโค้ดเสร็จกันเลยทีเดียว
แต่ถ้าโปรเจ็คมันอยู่มาแรมปี เวลารันมันไม่ใช่ 1 นาทีนี้สิ !!!!!!!!!!!!!

ที่ผมเคยเจอพีคสุดๆเลย นั่งจับเวลากันเลยทีเดียว หลังจาก pod clean + install และ clean project ทั้งหมด โดนล่อไป 10 กว่านาทีฮะ นั่งรอกันหง่อมเลยจ้ะ 😅

John Holdsworth เค้าจึงได้เริ่มโปรเจ็ค code injection สำหรับ XCode ขึ้นมา
โดยคอนเซปของเค้าคือ เมื่อไหร่ที่เรามีการแก้ไขโค้ดที่ไฟล์ไหน จะทำการยัดโค้ดชิ้นใหม่นี้เข้าไปใน Application Bundle มันตรงๆซะเลย! ทำให้แอพที่เรารัน debug อยู่บน Device นั้นสามารถทำการแก้ไขโค้ด โดยไม่ต้อง Build ใหม่ทั้งโปรเจ็คให้เสียเวลา สักกะนิด สักกะนิด ~

พูดไปมันก็คล้ายๆกับอารมณ์ Hot Reload code ที่หลายๆค่ายทำมานั้นแหล่ะ แต่ว่าตัว InjectionIII นั้นจะมีข้อจำกัดที่เยอะอยู่พอสมควร แต่ก็เพียงพอให้เราสามารถ เพิ่มประสิทธิภาพในการทำงาน โดยใช้เวลาที่น้อยลงไปได้แล้ว :)

หลังจากพูดบ่นมาหลายบรรทัด เข้าที่ repository ที่ใช้งานกันซะที 55555555
เพื่อนๆคนไหนสนใจอยากใช้ ลองเข้าไปดูกันได้ที่ GitHub Repository ของ John Holdsworth กันได้เลยทางนี้ !
InjectionIII — https://github.com/johnno1962/InjectionIII

ขออนุญาตไม่สอนวิธีใช้งานนะจ้ะ แต่ถ้าใครติดอะไร ลองคอมเม้นถามกันดูเด้อ 😙

--

--