08 February 2019

[Android Dev Tips] เดี๋ยวนี้ Google Play Console เค้ามี Internal Test ให้แล้วนะ



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

24 January 2019

[Android Design] รับมือกับปัญหาชวนปวดหัวกับขนาดของตัวอักษรเมื่อต้องเจอกับฟอนต์ที่หลากหลาย



        ถ้าพูดถึงเรื่องฟอนต์บนแอนดรอยด์ ผู้ที่หลงเข้ามาอ่านก็คงนึกถึง Roboto เนอะ เพราะมันเป็นฟอนต์ที่ใช้บน Android 5.0 Lollipop เป็นต้นมา ถ้าทำแอปส่วนตัวก็คงไม่ต้องสนใจอะไรมาก แล้วใช้ฟอนต์ Roboto เนี่ยแหละ แต่ทว่าในโลกของการพัฒนาแอปนั้นบอกได้เลยว่า แค่เพียงฟอนต์เดียวก็อาจจะไม่เพียงพอเสมอไป

30 December 2018

[Android Code] เปลี่ยน Launch Screen ให้ดูดีกว่าที่เคยเป็นด้วยเทคนิคง่ายๆกันเถอะ



        หน้าแรกของแอปฯหรือที่เรียกกันว่า Launch Screen นั้น ก็เหมือน First Impression ของผู้ใช้ที่นักพัฒนาแอนดรอยด์ต้องใส่ใจ ซึ่งแต่ละแอปฯจะมีหน้าแรกแตกต่างกันออกไป บ้างก็จะเป็น Splash Screen ก่อน บ้างก็เปิดหน้า Sign In ขึ้นมาเลย

         ซึ่งบนแอนดรอยด์ก็มีเทคนิคเล็กๆน้อยๆที่ช่วยสร้าง Launch Screen ให้มี First Impression ที่ดีกว่าเดิมอยู่ด้วยนะ

20 November 2018

[Android Code] จัดการ Fragment Back​ Stack อย่างไรให้เหมาะสม


        เดี๋ยวนี้ Fragment ถือว่าเป็นเรื่องปกติที่นักพัฒนาแอนดรอยด์จะต้องเรียนรู้และใช้งานกัน เพราะว่า Activity เพียงอย่างเดียวไม่ได้ตอบโจทย์ความสามารถบางอย่างได้ ดังนั้น Fragment จึงถูกสร้างขึ้นมาเพื่อชดเชยความสามารถที่ขาดไปใน Activity นั่นเอง แต่ทว่า Fragment ก็มาพร้อมกับการทำงานที่ซับซ้อนมากขึ้นรวมไปถึง Back Stack ด้วยเช่นกัน

16 October 2018

[Android Code] Dagger 2 in Android [Part 4] - ทำ Dependency Injection ให้กับ Android Framework Component ต่างๆ



        หลังจากที่ได้อ่านบทความก่อนหน้านี้ไปแล้วก็จะสามารถทำ Dependency Injection ให้กับ Activity และ Fragment ด้วย Dagger 2 ได้แล้ว แต่ทว่า Component ของ Android Framework นั้นไม่ได้มีแค่ Activity และ Fragment เท่านั้น ดังนั้นในบทความนี้เจ้าของบล็อกจึงขอพูดถึง Component ตัวอื่นๆไว้ซักหน่อยดีกว่า

[Android Code] Dagger 2 in Android [Part 3] - ทำ Dependency Injection ให้กับ Activity และ Fragment



        จากบทความในตอนที่แล้ว เจ้าของบล็อกได้เตรียมโปรเจคให้พร้อมสำหรับการใช้งาน Dagger 2 และมีคำสั่งบางส่วนไปแล้ว โดยคลาส UserPreference และ AwesomeManager ก็พร้อมสำหรับการใช้งานผ่าน Dagger 2 เป็นที่เรียบร้อยแล้ว แต่ทว่ามันยังไม่จบ เพราะว่าในบทความนี้จะมาต่อด้วย Activity และ Fragment กันนะ

15 October 2018

[Android Code] ส่งข้อมูลระหว่าง Activity/Fragment แบบหล่อๆด้วย LiveData และ ViewModel ของ Android Architecture Components



        สิ่งหนึ่งที่รำคาญใจเจ้าของบล็อกมานานมากเวลาเขียนโค้ดแอนดรอยด์ก็คือตอนที่อยากจะส่งข้อมูลไปมาระหว่าง Activity กับ Fragment นี่แหละ อาจจะฟังดูไม่ใช่เรื่องยากซักเท่าไร แต่การส่งข้อมูลระหว่าง Component เหล่านี้ก็เป็นสาเหตุหนึ่งที่ทำให้โค้ดในโปรเจคเกิดกลิ่นเน่าเหม็นขึ้นมาโดยไม่รู้ตัวได้เหมือนกันนะ

24 July 2018

[Android Code] เมื่อทำ Google Maps แล้วอยากจะเช็คว่าพิกัดนั้นๆอยู่ในพื้นที่ที่กำหนดไว้หรือป่าว?


        เรื่องมีอยู๋ว่าเจ้าของบล็อกต้องการจะเช็คว่า LatLng ที่ได้จาก Google Maps เนี่ย มันอยู่ใน Area ที่เจ้าของบล็อกต้องการหรือป่าว ก็เลยเป็นที่มาของบทความนี้นั่นเอง

19 July 2018

[Android Code] Dagger 2 in Android [Part 2] - มาเตรียมโปรเจคสำหรับ Dagger กัน



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

16 July 2018

[Android Code] Dagger 2 in Android [Part 1] - Dependency Injection แบบหล่อๆด้วย Dagger 2



        ในที่สุดก็ถึงเวลาเขียนบทความของ Dagger 2 เสียที เพราะนี่คือหนึ่งใน Library ยอดนิยมที่ใช้กันในโปรเจคใหญ่ๆที่มีความซับซ้อนที่มีอะไรข้างในมากกว่าโค้ดแบบ MVC ธรรมดาๆ

06 July 2018

[Android Dev Tips] Jetifier เบื้องหลังการทำงานของ Android Gradle Plugin สุดเทพสำหรับ AndroidX



        ณ เวลานี้ผู้ที่หลงเข้ามาอ่านหลายๆคนก็คงรู้จักกับ AndroidX จากงาน Google I/O 2018 กันแล้วเนอะ ซึ่งเป็นการ Refactor เหล่า Package Name ของ Android Support Library ทั้งหมดให้มีชื่อที่ดู Make Sense มากขึ้น

        แต่หารู้กันหรือไม่ว่านอกจาก AndroidX แล้ว ยังมี Gradle Plugin อีกตัวหนึ่งที่ชื่อว่า Jetifier ที่ช่วยทำให้การย้ายไปใช้ AndroidX ของเราย้ายได้สมบูรณ์มากขึ้นอย่างกับใช้เวทมนต์อยู่นะ

31 May 2018

[Android Dev Tips] ลองตรวจสุขภาพโค้ดด้วย Inspect Code ใน Android Studio กันดูมั้ย?



        เคยรู้สึกอยากจะ Refactor โค้ดในโปรเจคของผู้ที่หลงเข้ามาอ่านกันใช่มั้ย? แต่พอไปเห็นโปรเจคแล้วรู้สึกท้อ เพราะบางทีการโละโค้ดแล้วเขียนขึ้นมาใหม่ทั้งหมดอาจจะง่ายกว่า แต่บ่อยครั้งเราก็ไม่จำเป็นต้อง Refactor ในระดับนั้นก็ได้ เพราะจริงๆแล้วควรเริ่มจาก Refactor ที่โค้ดที่ย่อยที่สุดก่อนดีกว่า

23 May 2018

[Android Code] เตรียมตัวให้พร้อมกับ Display Cutout บน Android P



         ตั้งแต่ iPhone X เปิดตัวขึ้นมาพร้อมกับรอยแหว่งที่ผู้คนต่างพากันเรียกว่าติ่งหรือ Notch แต่ในทุกวันนี้ Flagship ของฝั่งแอนดรอยด์ก็พากันเปิดตัวพร้อมกับรอยแหว่งนี้เช่นกัน (แถมทำกันหลายยี่ห้อด้วยนะ) ดังนั้นจะมัวแต่ไปล้อนักพัฒนาฝั่ง iOS อย่างเดียวก็ไม่ได้ละ เพราะฝั่งแอนดรอยด์ก็ต้องมานั่งทำแอพให้รองรับกับรอยแหว่งหรือชื่ออย่างเป็นทางการที่ทางแอนดรอยด์เรียกว่า Display Cutout

16 May 2018

[Android Code] หมดปัญหาวุ่นวายกับ Background Task ด้วย WorkManager



        หลังจาก Architecture Components ได้เปิดตัวในงาน Google I/O 2017 ล่าสุดในงาน Google I/O 2018 ก็ได้เปิดตัวน้องใหม่ในวงการเพิ่มเข้ามาอีกหลายๆตัว ซึ่งหนึ่งในนั้นคือ Component ที่มีชื่อว่า WorkManager

07 May 2018

[Android Dev Tips] ปัญหา Translucent Window บน Android 8.0 Oreo ที่นักพัฒนาไม่ควรมองข้าม



        เรื่องมีอยู่ว่าเพื่อนร่วมทีมเจ้าของบล็อกได้เจอ Issue ตัวหนึ่งบน 8.0 (API 26) ที่ค่อนข้างน่าสนใจมาก จึงเก็บมาเล่าสู่กันฟังครับ เพราะว่านักพัฒนาหลายๆคนน่าจะต้องเจอปัญหานี้เหมือนกัน