[ANDROID] ไปเที่ยวงาน Android Meetup มา ... เลยมีเรื่องมาเล่าให้ฟังจ้า


         พอดีได้มีโอกาสไปงาน Meetup ที่ทาง HotelQuickly จัดขึ้น ซึ่งในงานพี่จิม(@zinuzoid) Android lead developer ของ HotelQuickly ได้แชร์เรื่อง
"How we are becoming productive Android developers!"
ก็เลยคิดว่าเอามาเขียนเล่าให้เพื่อนๆ ที่ผ่านไปผ่านมาได้อ่านกัน เผื่อว่าจะมีประโยชน์ไม่มากก็น้อย
ก่อนอื่นมาดู Slide จากทาง HotelQuickly กันก่อนนะครับ



        ลองมาดูกันดีกว่าอะไรบ้างที่จะมาช่วยเพิ่ม Productivity ในการพัฒนา Android Application ของเรา (มีเนื้อหาอื่น ที่ผมเพิ่มเติมแทรกเข้าไปด้วยนะครับ)

How are good IDE tools saving us a lot of time?

        IDE (Android Studio) ที่ดีจะช่วยคุณประหยัดเวลาได้มากเลยหละ แล้วคุณรู้จัก IDE ของคุณดีพอแล้วหรือยัง ? ถ้ายังขอแนะนำให้เข้าไปอ่านที่ Blog ของคุณเอก

หลังจากอ่านลิงค์ด้านบนจบ ก็คงจะพอทราบแล้วนะครับว่า Android Studio ของเราทำอะไรได้เยอะแยะไปหมด ซึ่งพี่จิม สาธิตการ Refactor code ด้วยวิธีการต่างๆ เช่น
  • extract Variable (Ctrl + Alt + V)
  • extract Field (Ctrl + Alt + F)
  • extract Constant (Ctrl + Alt + C)
  • extract Method (Ctrl + Alt + M)
  • extract Parameter (Ctrl + Alt + P)
  • Rename (Shift + F6)
นอกจากนี้ยังมีเรื่อง
  • Resolve helper
    ช่วยแก้ปัญหาการ Import class, ไม่ได้ประกาศตัวแปล หรือแม่กระทั่งไม่ได้ Implement Code เป็นต้น ซึ่ง Android Studio จะช่วยแนะนำให้ โดยกด Alt + Enter
  • Live template
    พิมพ์คำสั่งสั้นๆ แล้ว Android Studio จะแสดงช่วย generate คำสั่งเต็มๆ ให้ เช่น
       fbc = findViewById();
       gone = setVisibility(View.GONE);
       visible = setVisibility(View.VISIBLE);
    โดยสามารถกด Ctrl + J  เพื่อดูรายการ Live template ได้
  • Code style
    จัด format โค้ดให้ตรงกัน(Ctrl + Alt + L)

        ตามที่ได้บอกไปได้ด้านบนว่า Android Studio ความสามารถของพี่แกเยอะจริงๆ ครั้นจะให้จำทั้งหมดก็คงจะเยอะเกินไป เพราะฉะนั้นก็คงต้องลองเลือกๆ ใช้เอาเองตามความเหมาะสมละกันเนาะ
รายการคำสั่ง IntelliJIDEA ReferenceCard หรือ กดปุ่ม Ctrl + Shift + A เพื่อค้นหาคำสั่งได้
ของฝากจาก Blog devahoy.com : แนะนำ 20 Short Key ที่ควรรู้บน Android Studio

        สำหรับคนที่อยากเห็นตอนใช้งานจริงๆ ผมมี VDO มาฝาก ซึ่งเป็นการใช้งาน IntelliJ IDEA ในการ refactor code บน Java Spring MVC โดยพี่ดีน Salah Chalermthai (Android Studio พัฒนาต่อมาจาก IntelliJ IDEA เพราะฉะนั้นความสามารถโดยรวมเหมือนกันนะครับ)



        ความเมพของ Android Studio อีกอย่างก็คือ เราสามารถดูว่า Android Studio ช่วยเรายังไงบ้างและยังมีสถิติการใช้งานคำสั่งต่างๆ ให้ด้วยนะ ใครอยากรู้ก็ลองกดไปดูที่เมูนด้านบน
Help > Productivity Guild
เยี่ยมจริง! เยี่ยมจริง! เยี่ยมจริง!

        นอกจาก IDE แล้ว เครื่องมือที่เราจะขาดไม่ได้อีกอย่างก็คือ Android Emulator ซึ่งในตอนนี้ก็มีให้เลือกหลากหลายเลยทีเดียว และที่ฮอตฮิต มาแรง ณ ขณะนี้ คงจะเป็น Genymotion นั่นเอง ส่วนตัวอื่นๆ พี่เนย ได้เขียนแนะนำไว้ที่ เปรียบเทียบ Android Emulator ก็ลองเล่นกันดูได้เลยนะครัช

How is a custom component saving us for us ?

        บางครั้งในการพัฒนา Application ของเรามักจะเจอกับการออกแบบที่ component มาตราฐานไม่สามารถทำได้ เราจึงต้องทำการ custom component เพื่อมาตอบโจทย์ตรงนี้ ซึ่งทาง HotelQuickly  ก็ได้ใช้ประโยชน์ของการ custom component มาช่วยหลายๆ เรื่อง เช่น 
  • การแก้ปัญหาเรื่องการแสดงผล ภาษาเวียดนาม
  • ปัญหาของ UI requirement ต่างๆ อาทิ ต้องการเขียนเส้นใต้, เส้นคาดตัวอักษร เป็นต้น

ข้อดีของ custom component ยังไม่หมดเพียงเท่านี้ ลองมาดูกันอีกซักหน่อย
  • ง่ายต่อการจัดการ เขียนที่เดียว แก้ไขที่เดียว แต่ใช้ได้ทั้งโปรเจค
  • ซ่อน boilerplate code ไว้ภายใน
  • รวม component หลายๆ component ไว้เป็นอันเดียว
แนะนำอ่านเพิ่มเติมที่บล๊อกของคุณ Lucas Rocha : Custom Layouts on Android

How code review, CI help us on prevent bugs to happen ?

Code Review
        ในการทำงานร่วมกันเป็น Team ก็คงจะปฏิเสธไม่ได้ว่าต้องมีการแชร์โค้ดกันผ่าน version control โดย version control ที่นิยมในตอนนี้ก็คงจะเป็น git ซึ่งทาง HotelQuickly จะทำการ review code ผ่านการ pull request ของ git นั้นเอง

ดูเรื่องของ git เพิ่มเติมได้ ที่ Software Developer ทั้งหลาย จงใช้ git เพื่อชีวิตที่ยั่งยืน และ Git ฉบับอนุบาล แล้วชีวิตของท่านจะดีขึ้น จริงๆ นะ

CI (Continuous Integration)
        CI จะเข้ามาช่วยในการ run Test ทุกครั้งที่มีการ commit และ pull request โดยทางทีม HotelQuickly ใช้บริการของ Travis CI ในการทำ CI และใช้ CC Menu (for Mac) สำหรับติดตามและแจ้งเตือนสถานะการ build CI

รวมเรื่องเกี่ยว CI ที่ blog พี่ปุ๋ย : http://www.somkiat.cc/tag/continuous-integration/
        สำหรับเนื้อหาในงาน Meetup ครั้งนี้ก็มีประมาณนี้ครับ อาจจะมีอะไรขาดตกบกพร่องไปบ้าง ยังไงก็ติชม แนะนำ เข้ามาได้เลยครับ

สุดท้ายนี้ขอขอบคุณ HotelQuickly สำหรับสถานที่และการจัดงานดีๆ แบบนี้



Teeranai P

Developer ตัวน้อยๆ ที่หลงใหลในโลกของการพัฒนา Software. รักการเขียนโปรแกรมเป็นอันดับ 2 รองลงมาจากการนอน