สรุปการจัดการ Dependency แบบง่าย ๆ ด้วย CocoaPods

สำหรับ iOS developer ทั้งหลายคงต้องใช้ dependency หรือ library อื่น ๆ อย่างแน่นอน ซึ่งถ้า copy code มาใส่ project เองคงไม่ดีเท่าไรนัก !! ดังนั้นน่าจะต้องจัดการผ่านเครื่องมือต่าง ๆ เช่น CocoaPods Carthage Swift Package Manager โดยใน blog นี้จะพูดถึง CocoaPods ตั้งแต่การติดตั้งไปจนถึงการใช้งานแบบง่าย ๆ

Read More…

แนะนำการเรียน Programming ผ่าน Mimo app

เนื่องจากต้องกลับบ้านต่างจังหวัดและไม่ได้เอา notebook กลับไปด้วย แต่ต้องการเรียนรู้เกี่ยวกับ programming ผ่าน Mobile app จึงลองค้นหา app หลาย ๆ ตัว โดย app ที่ลองเรียนแล้วชอบคือ Mimo ซึ่งเหมาะมาก ๆ สำหรับผู้เริ่มต้นศึกษา programming ส่วนระดับกลางและสูงนั้นยังไม่เห็นมีนะ

Read More…

[Bug] Xcode 7.3 + Swift 2.3 มัน build นานมาก ๆ

เนื่องจากทำการเตรียมข้อมูลสำหรับการทำสอบ iOS app นิดหน่อย ซึ่งเตรียมข้อมูลในรูปแบบ dictionary แต่ดันเจอปัญหาการ build ช้ามาก ๆ ใน XCode 7.3 (Swift 2.3) !! โดยไร้สาเหตุ ตัวอย่าง code จาก Swift literal parsing bug แสดงผลการทำงานดังรูป (รอกันต่อไป build นานมาก ๆ) เมื่อไปดูใน web ก็พบว่ามันคือ Bug ของภาษา Swift นั่นเอง อยู่ใน SR-305 ซึ่งถูกแก้ไขไปแล้ว ซึ่งจะอยู่ใน Swift 3 !!

Read More…

ขำ ๆ ไปกับ WebSphere Liberty

เนื่องจากช่วงนี้ต้องทำงานกับ IBM Websphere บ้างนิดหน่อย ดังนั้นจึงอยากจะลองติดตั้งและใช้งานนิดหน่อย แต่เมื่อไปดูขนาดของไฟล์ติดตั้ง และ ความต้องการต่าง ๆ แล้วไม่น่าจะรอด จึงไปดูว่า มีวิธีการไหนที่น่าเป็นไปได้บ้าง เมื่อไปดูแล้วพบว่ามี Websphere Liberty ให้ใช้งาน ซึ่งสามารถใช้งานกับ Docker ได้อีก ดังนั้นมาลองใช้งานกันดูหน่อยสิ

Read More…

[Android] แนะนำ Build Time Tracker สำหรับดูแนวโน้มของเวลา build app

วันนี้ดูปัญหาเรื่องการ build ของ Android app ที่ใช้เวลานาน โดยปกติจะดูผ่าน build profile ที่มากับ Gradle ซึ่งก็ให้ผลลัพธ์ละเอียดตามที่ต้องการ แสดงดังรูป แต่ถ้าเราต้องการทำการบันทึกผล และ ติดตามเวลาการ build ในแต่ละวัน จะต้องทำการบันทึกเอง ซึ่งมันไม่สนุกเลย จึงลองทำการค้นหาว่ามีวิธีการอะไรบ้าง ? หนึ่งใน plugin ที่น่าสนใจคือ Build Time Tracker ซึ่งทำการบันทึกเวลาการ build ไว้ให้ตลอด ดังนั้นมาลองใช้งานกันดูบ้างนะ

Read More…

[iOS]แนะนำ trainer เครื่องมือสำหรับการสร้างผลการทดสอบในรูปแบบ JUnit

ในการทดสอบ iOS app ผ่านระบบ Continuous Integration นั้น จำเป็นต้องทำการทดสอบทั้ง Unit test และ UI test และสร้างผลการทดสอบในรูปแบบ JUnit เพื่อสรุปผลการทดสอบต่าง ๆ ให้ง่ายและชัดเจน ปกติจะใช้ xcpretty ร่วมกับ xcodebuild แต่ว่าจะลำบากขึ้นเมื่อใช้งานร่วมกับ XCode 8 ดังนั้นทางผู้พัฒนา fastlane ก็ได้สร้างเครื่องมือใหม่ชื่อว่า trainer ขึ้นมา ซึ่งใช้ง่ายกว่า และ ทำการได้รวดเร็วกว่า ดังนั้นลองมาใช้งานกันดูหน่อย

Read More…

แนะนำวิธีการเพื่อปรับปรุงการเขียน code ให้ดีขึ้น

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

Read More…

[Android] สิ่งที่ได้เรียนรู้จาก Source code ของ SimpleNote app

ทีมพัฒนา SimpleNote ได้ประกาศเปิด opensource ของ app ทุก platform ออกมาทั้ง iOS พัฒนาด้วย Objective-C เป็นหลักและมี Swift นิดหน่อย Android macOS พัฒนาด้วย Objective-C เป็นหลัก Window/Linux ซึ่งพัฒนาด้วย Electron ดังนั้นมาลองดู code ของ Android app กันหน่อย ว่ามีอะไรที่น่าสนใจกันบ้าง

Read More…

จัดการ Dependency Injection ด้วย Dagger 2

จากบทความเรื่อง Dependency Injection Made Simple ทำการอธิบายเรื่อง Dependency Injection และ Dependency Inversion Principle (DIP) ทำให้เข้าใจว่าวิธีการนี้มีความสำคัญอย่างไรต่อการพัฒนา software สิ่งที่น่าสนใจคือ การจัดการ Dependency Injection ในระบบงานด้วย Dagger ซึ่งเป็น library ที่นักพัฒนาหลาย ๆ คนไม่น่าจะพลาด โดยเฉพาะ Android Developer น่าจะรู้จักและใช้งานกันเกือบทุกคน !! ในบทความข้างต้นใช้ Dagger 1 แต่ในบทความนี้ใช้ Dagger 2 นะครับ ดังนั้นเรามาดูในรายละเอียดว่ามีอะไรที่น่าสนใจบ้าง

Read More…

สรุปเรื่อง Story Weight Reduction Toolkit

จากบทความเรื่อง Story Weight Reduction Toolkit ทำการอธิบายวิธีการแบ่งแยกงานใหญ่ ๆ ออกเป็นงานย่อย ๆ ซึ่งทำให้เราสามารถทำการประเมินได้ง่ายขึ้น ซึ่งทำให้เราสามารถจัดการได้ง่ายขึ้น ซึ่งทำให้เราสามารถพัฒนาระบบงานได้ดีขึ้น จึงนำมาแปลและสรุปสิ่งที่น่าสนใจไว้นิดหน่อย

Read More…