Android Dev Tips

Android State Changes - Process Recreation

System-initiated Process Death หรือ Process Recreation เป็นการทำงานอย่างหนึ่งบนแอนดรอยด์ที่ส่งผลต่อแอปไม่ต่างจาก Configuration Changes และเกิดขึ้นได้บ่อยกว่า จึงทำให้นักพัฒนาแอปบนแอนดรอยด์ควรเข้าใจการทำงานที่ว่านี้เพื่อให้แอปสามารถทำงานได้ถูกต้องและไม่เกิดปัญหาขึ้นในภายหลัง

Android State Changes - Process Recreation
Android Dev Tips

Android State Changes - Introduction

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

Android State Changes - Introduction
Android Code

ทำไมใน Jetpack Compose ถึงไม่แนะนำให้ใช้ MutableState กับ Int, Float, Long, และ Double โดยตรง

ในการใช้งาน Jetpack Compose จะมีเรื่องของ State เข้ามาส่วนสำคัญในการทำงานเพื่อให้ Composable Function ทำงานหรือแสดงผลตาม State ที่ส่งเข้ามา จึงทำให้โค้ดบางส่วนของเรามีการใช้งาน MutableState หรือคำสั่งอย่าง mutableStateOf

ทำไมใน Jetpack Compose ถึงไม่แนะนำให้ใช้ MutableState กับ Int, Float, Long, และ Double โดยตรง
Android Dev Tips

ผู้ใช้ทั่วไปเค้าใช้ Developer Options ทำอะไรกันนะ?

ตัวอย่างความสามารถที่อยู่ใน Developer Options และมีโอกาสที่ผู้ใช้จะเปิดใช้งานด้วยเหตุผลบางอย่างแต่ไม่ส่งผลต่อความปลอดภัยสำหรับการใช้งานแอป

ผู้ใช้ทั่วไปเค้าใช้ Developer Options ทำอะไรกันนะ?
Android Dev Tips

อยากจะ Publish App ขึ้น F-Droid ต้องทำอะไรบ้าง

มีเหตุที่ต้องเอาแอปตัวหนึ่งขึ้น F-Droid เลยเขียนบทความนี้เพื่อเล่าสู่กันอ่าน เผื่อว่ามีนักพัฒนาคนไหนต้องการส่งแอปขึ้น F-Droid เหมือนกัน

อยากจะ Publish App ขึ้น F-Droid ต้องทำอะไรบ้าง
Android Dev Tips

สิ่งที่ควรรู้เกี่ยวกับการพัฒนาแอปสำหรับ Foldable Device

รายละเอียดต่าง ๆ ที่นักพัฒนาควรรู้เพื่อพัฒนาแอปให้รองรับการใช้งานบนอุปกรณ์แอนดรอยด์จำพวก Foldable Device ได้อย่างเหมาะสม

สิ่งที่ควรรู้เกี่ยวกับการพัฒนาแอปสำหรับ Foldable Device
Android Dev Tips

ว่าด้วยเรื่อง Application Flag ที่ชื่อว่า "Large Heap"

Large Heap เป็นหนึ่งใน Application Flag ที่นักพัฒนาสามารถเปิดใช้งานเพื่อให้ระบบแอนดรอยด์เตรียมพื้นที่ว่างใน Heap สำหรับแอปเราให้มากกว่าเดิมจะได้รองรับการทำงานที่ต้องใช้พื้นที่ใน Heap ที่เพิ่มมากขึ้น

ว่าด้วยเรื่อง Application Flag ที่ชื่อว่า "Large Heap"
Android Dev Tips

การใช้งาน 3rd Party Service ด้วย API Key ที่นักพัฒนาแอนดรอยด์ควรรู้

การกำหนด API Key ในโปรเจคแอนดรอยด์มักจะพบได้ในเวลาที่ต้องการใช้งาน 3rd Party Service เพื่อให้แอปของนักพัฒนาสามารถเรียกใช้ความสามารถจาก SDK หรือ Service เหล่านั้นได้

การใช้งาน 3rd Party Service ด้วย API Key ที่นักพัฒนาแอนดรอยด์ควรรู้
Android Code

Composition Local ใน Jetpack Compose

Composition Local เป็นวิธีส่งข้อมูลจาก Composable ลงไปตาม UI Tree แบบ Implicit เพื่อให้ Composable ข้างในเรียกใช้งานข้อมูลดังกล่าวได้ทันที โดยไม่ต้องส่งผ่าน Function Parameter หรือที่เรียกว่า Explicit Parameter

Composition Local ใน Jetpack Compose
Android Dev Tips

จัดการกับ Token ของ Push Notification อย่างไรดี

นักพัฒนาจะต้องรับ Token ที่ได้จาก Google Play Services ที่ติดตั้งอยู่ภายในเครื่อง แล้วส่งให้ Web Service เก็บไว้ เพื่อใช้ตอนที่ต้องการส่งข้อมูลผ่าน Push Notification ด้วย Firebase Cloud Messaging

จัดการกับ Token ของ Push Notification อย่างไรดี
Android Code

สร้าง Gradle Plugin ด้วย Kotlin เพื่อใช้งานบน Android - การสร้าง Configuration Sharing Plugin เพื่อใช้งานใน Library Module

โดยปกติแล้ว Library Module แต่ละตัวมักจะมีโค้ดของ Gradle ที่คล้ายกันทำให้เราสร้าง Gradle Plugin เพื่อแชร์โค้ดตรงจุดนี้ได้

สร้าง Gradle Plugin ด้วย Kotlin เพื่อใช้งานบน Android - การสร้าง Configuration Sharing Plugin เพื่อใช้งานใน Library Module
Android Code

สร้าง Gradle Plugin ด้วย Kotlin เพื่อใช้งานบน Android - การสร้าง Firebase Plugin เพื่อแยกคำสั่งของ Firebase ออกจาก App Module

บทความนี้จะเป็นการสร้าง Gradle Plugin เพื่อกำหนดค่าต่าง ๆ สำหรับ Firebase Plugin แล้วนำไปใช้งานในโปรเจคของเรา

สร้าง Gradle Plugin ด้วย Kotlin เพื่อใช้งานบน Android - การสร้าง Firebase Plugin เพื่อแยกคำสั่งของ Firebase ออกจาก App Module
Android Code

สร้าง Gradle Plugin ด้วย Kotlin เพื่อใช้งานบน Android - การสร้าง Dependency Sharing Plugin เพื่อใช้กับทุก Module

ในบทความนี้เราจะมาสร้าง Gradle Plugin ที่จะรวม Dependency หรือ Library ต่าง ๆ ที่ใช้บ่อย ๆ ในทุก Module ไม่ว่าจะเป็น App Module หรือ Library Module ก็ตาม

สร้าง Gradle Plugin ด้วย Kotlin เพื่อใช้งานบน Android - การสร้าง Dependency Sharing Plugin เพื่อใช้กับทุก Module
Android Code

สร้าง Gradle Plugin ด้วย Kotlin เพื่อใช้งานบน Android - Getting Started

หลังจากเข้าใจโครงสร้างของ Android Gradle Plugin เบื้องต้นแล้ว สิ่งที่ต้องทำก่อนที่จะเขียน Gradle Plugin หรือ Convention Plugin ก็คือการเตรียมโปรเจคให้พร้อมเสียก่อน

สร้าง Gradle Plugin ด้วย Kotlin เพื่อใช้งานบน Android - Getting Started
Android Dev Tips

CPU Architecture และ Android ABI ที่นักพัฒนาแอปควรรู้

ถึงแม้ว่าแอปทั่วไปที่ใช้คำสั่งจาก Android Platform API จะไม่ได้รับผลกระทบจาก Android ABI แต่แอปที่ใช้ Android NDK หรือ Native Library จะมีการทำงานที่อาจจะขึ้นอยู่กับ ABI ด้วย

CPU Architecture และ Android ABI ที่นักพัฒนาแอปควรรู้