12
آموزش کاتلین در اندروید
پروژه نهایی: مینی اپ تسکها
دیگه وقتشه همه چیز رو جمع کنیم؛ بدون پروژه، آموزش مثل غذای بینمکه.
درس 12 از 12
مدل تسک
اول مدل داده را میسازیم؛ ساده، قابل فهم و قابل توسعه.
Task model
data class Task(
val id: Int,
val title: String,
val done: Boolean = false
)
خروجی یا نتیجه اجرا
یک مدل Task داریم که عنوان و وضعیت انجامشدن را نگه میدارد.
نکته کاربردی: پروژه خوب از مدل خوب شروع میشود. مدل بینظم یعنی ViewModel بینظم و UI بیاعصاب.
ViewModel پروژه
اینجا state لیست را داخل ViewModel نگه داشتیم تا UI فقط نمایش بدهد و رویداد بفرستد.
TaskViewModel
class TaskViewModel : ViewModel() {
var tasks by mutableStateOf(listOf<Task>())
private set
fun addTask(title: String) {
val task = Task(id = tasks.size + 1, title = title)
tasks = tasks + task
}
}
خروجی یا نتیجه اجرا
با هر بار addTask، یک تسک جدید به لیست اضافه میشود.
نکته کاربردی: این الگو برای پروژههای بزرگتر هم قابل رشد است؛ بعداً میتوانی Repository، Room و API را بهش وصل کنی.
نتیجه این درس 🎯
مسیر Android را از UI تا پروژه دیدی. الان میتوانی یک اپ Compose کوچک بسازی و کمکم Repository، شبکه و دیتابیس واقعی را بهش اضافه کنی.
تمرین! 🧠
تابع toggleDone بنویس که done یک تسک را برعکس کند.
جواب تمرین
fun toggleDone(id: Int) {
tasks = tasks.map { task ->
if (task.id == id) task.copy(done = !task.done) else task
}
}خروجی جواب
تسک مورد نظر از انجام نشده به انجام شده یا برعکس تغییر میکند.