บันทึกความคิดของตัวเองนี้เก็บไว้ เผื่อในวันข้างหน้าจะย้อนกลับมาดูความคิดของตัวเองในอดีต

Photo by Sebastian Bednarek on Unsplash

ในชีวิตของ Mobile App Developer ส่วนใหญ่น่าจะเคยเจอคำถามแบบนี้ซักครั้ง (ตอนที่ผมเจอคำถามนี้ครั้งแรกมาจนถึงทุกวันนี้ก็เกิน 6 ปีแล้ว) แน่นอนว่าคำถามนี้เป็นคำถามที่สมมติขึ้นมาเพื่อจำลองสถานการณ์จริง และดูความคิดของเราว่ามีความคิดเห็นอย่างไรต่อเรื่องนี้ในฐานะ Mobile App Developer คนหนึ่ง

ซึ่งแต่ละคนก็จะมีคำตอบแตกต่างกันออกไปตามจุดประสงค์ของคำถามที่เน้นความคิดเห็นมากกว่าการตัดสินว่าคำตอบนั้นถูกหรือผิด

และถ้าถามถึงความคิดเห็นของผมต่อคำถามนี้ ผมก็คงตอบสั้น ๆ ว่า “คำถามนี้เป็นได้ทั้งคำถามที่ตื้นเขินและคำถามที่ลึกล้ำ”…

เพิ่งทำเสร็จไปไม่นาน เลยเขียนเก็บไว้ เผื่อว่าคนอ่านสนใจและอยากลองทำดูบ้าง

การทำงานของผมในช่วงเวลาที่ผ่านมานี้ ส่วนใหญ่จะอยู่กับหน้าโต๊ะคอมในห้องทำงานของตัวเองอยู่เป็นประจำ ไม่ว่าจะเป็นงานบริษัทหรืองานอดิเรกก็ตาม จึงทำให้ผมตัดสินใจสร้าง Home Studio ขึ้นมาบนโต๊ะทำงานของตัวเองซะเลย

จำเป็นต้องมี Home Studio มากแค่ไหน?

ขอบอกไว้ก่อนเลยว่า Home Studio นั้นไม่ได้จำเป็นสำหรับทุกคน ขึ้นอยู่กับว่าเราทำอะไรที่จำเป็นต้องมี Home Studio ซะมากกว่า หรืออยากจะมีตามประสาคนชอบเล่น Gadget ก็ได้ไม่ว่ากัน อย่างกรณีของผมก็ต้องบอกว่าส่วนหนึ่งมาจากความอยากได้ของตัวเองนี่แหละ (ซึ่งเป็นความรู้สึกว่าถ้าไม่มีก็ไม่เป็นไร แต่ถ้ามีก็ดีเหมือนกันนะ 😆)…

สำหรับคนที่ใช้ Open Source Library ที่อยู่บน GitHub แล้วอยากจะช่วยแก้บั๊กหรือเพิ่มฟีเจอร์เข้าไป แต่ไม่รู้ว่าต้องทำยังไงบ้าง

ผมก็เป็นคนหนึ่งที่ใช้ Library เวลาเขียนโค้ดอยู่บ่อย ๆ เพื่อลดโค้ดที่ไม่จำเป็นต้องเขียนเอง และ Library ที่ผมใช้ก็จะเป็น Open Source Library และอยู่บน GitHub เกือบทั้งหมด

และทุกคนก็น่าจะมีโมเมนต์ที่คล้ายกับผมอยู่เหมือนกัน นั่นก็คืออยากจะแก้บั๊กหรือเพิ่มฟีเจอร์เข้าไปใน Library ตัวนั้น ๆ แต่ไม่รู้ว่าจะทำยังไงดี สุดท้ายก็เลย Fork เป็น Repository ของตัวเองเพื่อทำทุกอย่างไว้ในนั้น แล้วก็จบด้วยการเปลี่ยนให้โปรเจคของเราไปเรียก Library จาก Repository ของเราแทน…

เพราะในโลกของการพัฒนาซอฟต์แวร์ที่ไม่ได้พัฒนาขึ้นมาจากโค้ดของคนเพียงคนเดียวนั้นมีโอกาสเกิดข้อผิดพลาดได้อยู่เสมอ รวมไปถึงการพัฒนาแอปแอนดรอยด์ก็เช่นกัน

จึงทำให้ในปัจจุบันได้มีการนำ Continuous Integration หรือ CI มาใช้ควบคู่ไปกับการเขียนเทสให้กับโค้ดในซอฟต์แวร์นั้น ๆ ด้วย เพื่อทำให้ซอฟต์แวร์สามารถทำงานได้ถูกต้องอยู่เสมอ ไม่ว่าโค้ดเหล่านั้นจะอยู่มานานเท่าไร หรือมีการเปลี่ยนคนเขียนโค้ดนั้นไปแค่ไหน

การเขียนเทสบน Android

นิยมแบ่งออกเป็น 2 ส่วนใหญ่ ๆ ด้วยกัน คือส่วนที่เป็น Unit Test สำหรับทดสอบ Logic ที่อยู่ในโค้ด และส่วนที่เป็น UI Test เพื่อทดสอบ​การแสดงผลภายในแอป…

หลังจากที่ได้เห็นเบื้องหลังในการคำนวณเส้น Path ที่ใช้สร้าง UI Component เป็นรูปคูปองกันไปแล้ว ต่อไปก็ถึงเวลาของการทำให้โค้ดเหล่านั้นสามารถนำไปใช้งานกับโค้ดบนแอนดรอยด์ได้อย่างเรียบเนียนไร้รอยต่อกัน

บทความทั้งหมดของชุดนี้

สร้าง View สำหรับคูปอง

การสร้าง UI Component ใด ๆ บนแอนดรอยด์ด้วยสิ่งที่เรียกว่า View ซึ่งเป็นพื้นฐานของ UI ทั้งหมดทั้งมวลบนแอนดรอยด์ ซึ่งจะมีโค้ดพื้นฐานดังนี้

จะเห็นว่าผมได้เตรียม setup(...) ไว้เพื่อใช้กำหนดค่า View Attribute ต่าง ๆ ในทีหลัง และจะต้องกำหนด setWillNotDraw(...) เป็น false เพื่อให้ View ทำการ Render UI ขึ้นมาทันทีที่สร้างขึ้นมา ซึ่งควรใช้คำสั่งเมื่อมีการ Override คำสั่งที่ชื่อว่า onDraw(canvas: Canvas?)

หลังจากที่เล่าเรื่องราวและที่มาของ UI Component ตัวใหม่ที่ผมต้องสร้างขึ้นมาเพื่อนำไปใช้งานในแอป LINE MAN โดยมีชื่อฟีเจอร์ว่า Coupon Book และในตอนสุดท้ายก็ได้ตัดสินใจเลือกที่จะสร้างขึ้นมาด้วย Canvas API

และในบทความนี้ผมก็ขอพาเข้าสู่เนื้อหาของโค้ดหรือคำสั่งต่าง ๆ ที่จะอยู่เบื้องหลังในการสร้าง UI Component ตัวนี้นั่นเอง

บทความทั้งหมดของชุดนี้

การสร้างรูปคูปองด้วย Canvas API

โดย Custom View บนแอนดรอยด์จะรองรับ Canvas API ในตัวอยู่แล้ว เพราะในคำสั่ง onDraw(canvas: Canvas?)

สวัสดีผู้อ่านประจำสำนักพิมพ์​ LINE MAN Wongnai ทุก ๆ คนครับ ผมชื่อ “สมเกียรติ กิจวงศ์วัฒนะ” หรือจะเรียกว่า “เอก” ก็ได้นะ เป็น Senior Software Engineer ที่คอยดูแลและพัฒนาแอป LINE MAN บน Android

และบทความนี้ก็เป็นบทความแรกของผมในฐานะนักเขียนบน LINE MAN Wongnai ก็ขอฝากเนื้อฝากตัวด้วยนะครับ

บทความทั้งหมดของชุดนี้

ย้อนกลับไปเมื่อปี 2020 (ปีที่แล้ว)

ทีมของผมได้รับภารกิจให้ทำฟีเจอร์ใหม่ในแอป LINE MAN ที่มีชื่อว่า Coupon Book เพื่อให้ผู้ใช้จัดการกับคูปองได้สะดวกมากขึ้น ดูรายละเอียดในการใช้คูปอง…

เรื่องราวของคนที่อยากจะลาพักร้อนนาน ๆ เพื่อทำอะไรก็ได้ที่ตัวเองอยากทำ

Photo by Joanna Kosinska on Unsplash

ย้อนกลับไปในวันที่ผมเพิ่งเรียนจบและเริ่มเข้าสู่วัยทำงาน เป็นเรื่องธรรมดาของมนุษย์คนหนึ่งที่เรียนจบมหาวิทยาลัยและเพลิดเพลินไปกับการทำงาน พอได้เริ่มทำงานก็เริ่มรู้สึกว่าโลกมันกว้างใหญ่ มีอะไรให้ทำและเรียนรู้ได้อีกเยอะมาก จึงทำให้ 5 ปีแรกของวัยทำงานของผม “ไม่เคยใช้วันลาพักร้อนเลย” ส่วนวันลาป่วยก็น้อยจนนับวันได้

และเมื่อได้เป็น Android GDE ก็ทำให้วันลาพักร้อนของผมหมดไปกับการเดินทางเพื่อไปร่วมงาน Developer Conference ของ Google เกือบทั้งหมด เพราะต้องเดินทางไปสหรัฐอเมริกา…

เรื่องเล่าจาก Software Engineer ที่กดซื้อ MacBook Pro เพื่อใช้ส่วนตัว ทั้งๆที่บริษัทก็มีให้ใช้อยู่แล้ว

โชคดีอย่างหนึ่งของสายงานด้าน Software Development ก็คือ บริษัทหลายๆแห่งในไทยก็มีเครื่อง MBP แจกให้พนักงานใช้กันอยู่แล้ว อีกทั้งยังให้ใช้ใช้งานได้อิสระเปรียบเสมือนกับเป็นเครื่องของตัวเองจริงๆอีกด้วย (สำหรับบริษัทที่ไม่ซีเรียสเรื่องข้อมูลและความลับของบริษัทมากนัก) จึงทำให้หลายๆคนเลือกที่จะใช้คอมบริษัทสำหรับการใช้งานส่วนตัวด้วย จะได้ไม่ต้องเสียเงินเพื่อซื้อคอมอีกเครื่องสำหรับใช้งานส่วนตัว

แต่ถึงแม้ว่าที่ทำงานของผมก็จะมี MBP 2019 ให้ใช้ก็ตาม เมื่อไม่กี่เดือนที่ผ่านมา ผมก็ได้ตัดสินใจซื้อ MBP 2020 เพื่อใช้งานส่วนตัวด้วยเหตุผลบางอย่างที่จะนำมาเล่าให้ได้อ่านกันในบทความนี้นั่นเอง…

Akexorcist

Lovely android developer who enjoys learning in android technology, habitual article writer about Android development for Android community in Thailand.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store