本文撰寫時間為 2025 年 7 月,請注意該文章的介紹是否與閱讀時有落差。 我們要完成的 To-Do App 具備: 任務清單(LazyColumn) 新增/刪除/勾選完成 Snackbar Undo 空清單提示(AnimatedVisibility) Room(SQLite)永久儲存 ViewModel + StateFlow 管理狀態 Material 3 + Scaffold 架構 1. 資料模型:Task 檔案:app/data/Task.kt package co...
Introduction: Why Architecture Matters If you’ve been building Android apps for a while, you’ve probably realized that as your app grows, things start to get messy—activities stuffed with business logic, network calls sprinkled everywhere, and UI upd...
本文撰寫時間為 2025 年 7 月,請注意該文章的介紹是否與閱讀時有落差。 甚麼是 Jetpack Compose Jetpack Compose 是為了簡化 UI 開發而設計的新型工具包,目的是解決 XML 開發 UI 上與邏輯割裂與不夠及時響應的問題,負責處理 App 中的 Activity 部分是目前官方最推薦開發 Android UI 的方法。 官方在 https://github.com/android/compose-samples 有提供多個精美 UI參考。 他的核心優勢在於宣...
If you’ve ever tried to stream a movie on an Android device and got a blank screen, low resolution, or an error like “Playback not supported,” chances are, you’ve run into DRM restrictions. But what exactly is DRM, and why does it affect video playba...
Hi folks, in this article, we’ll explore how to use BasicText for text that automatically resizes based on constraints, and why it's essential in real-world applications. Note: The compose bom version I’m using is "2025.06.00". Okay, let’s start. Fir...
If you’ve ever wanted to animate something in Jetpack Compose but didn’t know where to start, this post is for you. Today, we’re going to build a cute, animated windmill, where the blades spin continuously using Jetpack Compose’s animation APIs. And ...
Note: If you haven’t already, do check out the previous segment here. Mobile Unlike a desktop or web environment where an application has ample resources and a stable state, a mobile OS treats your application as a temporary guest in a highly resourc...
📝 Quick Summary: Landscapist is a Kotlin library that simplifies and optimizes image loading in Jetpack Compose and Kotlin Multiplatform projects. It provides a pluggable architecture supporting Glide, Coil, and Fresco, along with features like imag...
If you've been working with Jetpack Compose, you've probably noticed that navigation always felt like it was fighting against the framework rather than working with it. Well, that's all about to change with Jetpack Navigation 3 (Nav3) - a complete re...
Hey Composers 👋, In the recent Compose release 1.9.X, a new internal API in compose-runtime called PausableComposition was introduced, which claims to solve performance issues. It can feel like magic, but under the hood, it's all thanks to some very...