3.3 Ilova ommabopligini oshirishga qaratilgan vazifalar
Dastuchilar biror bir dastur yaratishar ekan, u dastur orqali qandaydir muammoni yechishni o’z oldiga maqsad qilib qo’yishadi. Lekin buning o’zi dastur ommabopligini ta’minlamaydi. Uni o’z kategoriyasidagi dasturlarga qaraganda sifatli, tez ishlaydigan, bir qarashda tushuniladigan qilib ishlab chiqishga harakat qilinadi. Buning uchun avvalo muammoni o’rganish, uni tahlil qilish, dastur imkoniyatlarini belgilash, raqobatchi dasturlarda mavjud muammolarni inobatga olish kerak.
Ushbu ilovani ishlab chiqishning dastlabki bosqichida vazifasi shunga o’xshagan boshqa ilovalar o’rganib chiqildi. Ularning afzallik va kamchilik tomonlari tahlil qilindi.
UI/UX dizayner bilan birgalikda foydalanuvchiga qulay, bir qarashda tushunarli, ishlatilishi oson bo’lgan ilova dizayni ishlab chiqish asosiy vazifa qilib belgilandi. Ilova dizaynidagi har bir elementning rangi, tuzilishi, joylashuv o’rni birma-bir tahlil qilindi. Ilova funksiyalarini foydalanuvchiga qulay tarzda chiqarib berishga katta ahamiyat berildi. Shu sababdan ilova bir qarashda foydalanuvchini o’ziga tortadi.
Dasturga kirganda bugungi vazifalar ro’yxatiga ko’zimiz tushadi. Foydalanuvchi vazifalarni qidirib o’tirishi shartmas, dasturga kirilganda shundoq chiqib turadi. Bajarilgan vazifalar bajarilmaganlardan vizual farq qilgani bois ularni ajratib olish ortiqcha qiyinchilik tug’dirmaydi. Foydalanuvchi xohlasa ma’lum bir kategoriyaga tegishli vaziflarni ko’rishni istashi mumkin. Buning uchun kerakli kategoriyalarni tanlasa kifoya. Shu kategoriya oynasi ochiladi. Unda mos vazifalar ro’yxati chiqib turadi.
Dasturning eng qulaylik taraflaridan yana biri vazifa vaqti yetib kelganda foydalanuvchini ovozli ogohlantirishdir. Bu bilan foydalanuvchiga muhim bo’lgan vazifalarni unutib qo’yishi oldi olinadi.
AlarmManager:
class AlarmController(val context: Context) {
val alarmManager = context.getSystemService(Context.ALARM_SERVICE) as AlarmManager
private val TAG = "AlarmController"
fun setAlarm(id: Int, date: String, time: String, taskName: String) {
val intent = Intent(context, MyReceiver::class.java)
intent.putExtra("taskName", taskName)
val broadcast = PendingIntent.getBroadcast(context, id, intent, 0)
val calendar = Calendar.getInstance()
val year = date.substring(6).toInt()
val month = date.substring(3, 5).toInt().minus(1)
val day = date.substring(0, 2).toInt()
val hour = time.substring(0, 2).toInt()
val minute = time.substring(3).toInt()
calendar.set(year, month, day, hour, minute)
val timeInMillis = calendar.timeInMillis
val calendar2 = Calendar.getInstance()
Log.d(TAG, "setAlarm: $timeInMillis")
Log.d(TAG, "setAlarm: ${calendar2.timeInMillis}")
if (calendar2.timeInMillis > timeInMillis) {
Toast.makeText(
context,
"Task deadline already expired, can't set alarm",
Toast.LENGTH_SHORT
).show()
} else {
alarmManager.setExact(AlarmManager.RTC_WAKEUP, timeInMillis, broadcast)
}
}
fun disableAlarm(id: Int) {
val intent = Intent(context, MyReceiver::class.java)
val broadcast = PendingIntent.getBroadcast(context, id, intent, 0)
alarmManager.cancel(broadcast)
}
}
Xulosa
Hozirgi kunda O’zbekistonda Informatsion Texnologiyalar va Axborot
Texnologiyalarini rivojlantirish yo’lida bir talay ishlar amalga oshirilmoqda. Buni
birgina bu sohada ishlab chiqilgan qaror, qonun va farmonlar misolida ham
korishimiz mumkin. Bizga fan sifatida o’tilayotgan “Dasturiy taminot arxitekturasi” va “Dasturiy ta’minot sifatini ta’minlash” fanlari ham so’zimizning yaqqol isboti bo’la oladi .
Ushbu ilovani ishlab chiqishda to’liq Kotlin tilidan foydanlanildi. Zamonaviy Android dasturlashning eng so’nggi texnologiylari amalda qo’llanildi. Foydalanuvchilarning talab va istaklari inobatga olingan holda qulay, sodda, ommabop dastur ishlab chiqish asosiy maqsad qilib qo’yildi.
Dasurda zamonaviy texnologiyalardan bo’lmish MVVM hamda Jetpack Compose ishlatilganligini aytib o’tdik. Ushbu texnologiyalarni o’rganish uchun dasturchilarga qulaylik yaratish maqsadida ushbu dasturni “Open Source” qilib github tizimiga yukladim. Dasturdan ham oddiy foydalanuvchilar, ham dasturchilar foydalanishi men uchun katta yutuq albatta. Dastur kodini https://github.com/JahonovAsilbek/Tasker linki orqali yuklab olish mumkin.
Do'stlaringiz bilan baham: |