Akexorcist

Akexorcist

Bangkok, Thailand
357 posts
Twitter Facebook
Android Dev Tips

วันนี้คุณย้ายจาก Support Library ไปเป็น AndroidX แล้วหรือยัง?

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

วันนี้คุณย้ายจาก Support Library ไปเป็น AndroidX แล้วหรือยัง?
Android Code

รู้จักกับคำสั่งสำหรับ Security ที่อยู่ใน AndroidX

นักพัฒนาแอนดรอยด์หลายๆคนคงรู้จักกับ AndroidX กันอยู่แล้ว (ถ้าใครยังไม่รู้ถือว่าบาปแล้วล่ะ) ซึ่งหนึ่งในนั้นที่น่าสนใจไม่แพ้กันก็มีชื่อเรียกว่า Security นี่แหละ

รู้จักกับคำสั่งสำหรับ Security ที่อยู่ใน AndroidX
Android Code

View Binding บนแอนดรอยด์ทำแบบไหนได้บ้างนะ?

เจ้าของบล็อกเชื่อว่าคงไม่มีนักพัฒนาคนไหนที่ไม่รู้จักกับการทำ View Binding บนแอนดรอยด์ เพราะมันคือขั้นตอนพื้นฐานที่นักพัฒนาทุกคนต้องทำ เพื่อให้โค้ด Java หรือ Kotlin ในโปรเจคแอนดรอยด์สามารถเรียกใช้งาน View ที่อยู่ใน Layout XML

View Binding บนแอนดรอยด์ทำแบบไหนได้บ้างนะ?
Android Code

สร้าง Repository ใน MVVM บนแอนดรอยด์ให้เขียนเทสได้ง่ายกันเถอะ

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

สร้าง Repository ใน MVVM บนแอนดรอยด์ให้เขียนเทสได้ง่ายกันเถอะ
Android Dev Tips

เปิดโปรเจค Android Studio ผ่าน Command Line บน Mac OS และ Linux

เรื่องมีอยู่ว่า ในบางครั้งเจ้าของบล็อกต้องใช้ Terminal อยู่บ่อยๆ และบางครั้งก็อยากจะสั่งเปิดโปรเจคบน Android Studio ได้ทันทีเหมือนกับ VS Code บ้าง จะได้ไม่ต้องไปนั่งกดเปิด Android Studio แล้ว Browse หาโปรเจคให้เสียเวลา

เปิดโปรเจค Android Studio ผ่าน Command Line บน Mac OS และ Linux
Android Dev Tips

รู้จักกับ Biometric Authentication บนแอนดรอยด์

ในทุกวันนี้อุปกรณ์แอนดรอยด์ส่วนใหญ่ในท้องตลาดนั้นจะมี Biometric Sensor อยู่เสมอ โดยที่รู้จักกันเยอะที่สุดก็คือ Fingerprint Scanner นั่นเอง นอกจากจะช่วยให้ผู้ใช้สามารถใช้งานเครื่องได้อย่างปลอดภัยและรวดเร็วแล้ว ก็ยังมี API ให้นักพัฒนาได้ใช้งานกันอีกด้วย

รู้จักกับ Biometric Authentication บนแอนดรอยด์
Android Code

รู้จักกับ ViewPager2 ที่จะมาแทน ViewPager แบบเดิมๆ

หลังจากที่ ViewPager ถูกใช้งานมาอย่างยาวนานพร้อมกับข้อจำกัดบางอย่างที่ไม่สามารถทำได้ ในตอนนี้ทีมแอนดรอยด์ก็ได้สร้าง ViewPager2 ขึ้นมาเพื่อใช้แทน ViewPager ตัวเก่าแล้ว

รู้จักกับ ViewPager2 ที่จะมาแทน ViewPager แบบเดิมๆ
Android Dev Tips

บทย่อของการเปลี่ยนแปลงใน Android แต่ละเวอร์ชัน [Feature & API]

เคยสงสัยกันบ้างมั้ยว่าบนแอนดรอยด์แต่ละเวอร์ชันเนี่ยมีอะไรเปลี่ยนแปลงไปบ้าง และมีอะไรที่นักพัฒนาจะต้องสนใจกันบ้าง

บทย่อของการเปลี่ยนแปลงใน Android แต่ละเวอร์ชัน [Feature & API]
Android Dev Tips

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

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

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

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

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

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

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

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

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

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

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

จัดการ Fragment Back Stack อย่างไรให้เหมาะสม
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 ตัวอื่นๆไว้ซักหน่อยดีกว่า

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

เตรียมตัวให้พร้อมกับ Display Cutout บน Android 9 Pie

ตั้งแต่ iPhone X เปิดตัวขึ้นมาพร้อมกับ Notch แต่ในทุกวันนี้ Flagship ของฝั่งแอนดรอยด์ก็พากันเปิดตัวพร้อมกับรอยแหว่งนี้เช่นกัน ดังนั้นฝั่งแอนดรอยด์ก็ต้องมานั่งทำแอพให้รองรับกับรอยแหว่งหรือชื่ออย่างเป็นทางการที่ทางแอนดรอยด์เรียกว่า Display Cutout

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

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

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

หมดปัญหาวุ่นวายกับ Background Task ด้วย WorkManager
Android Dev Tips

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

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

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