Fanidan 2-Topshiriq Guruh: 315-20 Bajardi: Usmonov Po’latjon Tekshirdi: Egamberdiev Nodir


Download 81.37 Kb.
Sana07.05.2023
Hajmi81.37 Kb.
#1436706
Bog'liq
mobil ilova 2


О‘ZBEKISTON RESPUBLIKASI AXBOROT
TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI
RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI
UNIVERSITETI

Mobil ilovalarni ishlab chiqish fanidan

2-Topshiriq




Guruh: 315-20
Bajardi: Usmonov Po’latjon
Tekshirdi: Egamberdiev Nodir


Mavzu: Kundalik vazifalarni rejalashtiruvchi mobil ilovani ishlab chiqish

Kundalik vazifalarni rejalashtiruvchi mobil ilovani ishlab chiqish bosqichlari:

Ilovaning maqsadi va talablarini aniqlang: Birinchi qadam ilovaning maqsadi va qanday xususiyatlarga ega bo'lishi kerakligini aniqlashdir. Vazifa yaratish, bildirishnoma eslatmalari, topshiriqlarni turkumlashtirish, topshiriqning bajarilishini kuzatish va h.k. kabi boʻlishi kerak boʻlgan va boʻlishi kerak boʻlgan xususiyatlar roʻyxatini tuzing.

To'g'ri platforma va texnologiyani tanlang: ilovangizni ko'pchilik foydalanuvchilar uchun ochiq qiladigan platformani tanlang. Sizning talablaringiz asosida mahalliy yoki gibrid texnologiyalardan foydalangan holda ishlab chiqishni hal qiling.

Simli ramkalar va ilova dizaynini yarating: Ekran oqimi va foydalanuvchi interfeysi, jumladan, ilova uchun simli ramkalar va ilova dizaynini yarating. Foydalanuvchilar ilovada qanday harakat qilishini va to'g'ri vizual ohangni o'rnatishini aniqlang.
Ilovani ishlab chiqish: Dizaynni yakunlaganingizdan so'ng, tanlangan texnologiyadan foydalangan holda dasturni ishlab chiqishni boshlang. Barcha muhim funksiyalarni amalga oshiring va ilova foydalanuvchilar uchun qulay va sezgir ekanligiga ishonch hosil qiling.

Ilovani sinab ko'ring: Har qanday xato yoki xatolarni aniqlash uchun ilovani yaxshilab sinab ko'ring. Ilova kutilganidek ishlayotganiga ishonch hosil qilish uchun birlik testlari, integratsiya testlari va foydalanuvchini qabul qilish testlari kabi turli turdagi testlarni bajaring.

Ilovani nashr qilish: Tanlangan ilovalar do'konida dasturni ishga tushiring va maqsadli auditoriyaga erishish uchun uni targ'ib qiling. Xatolarni tuzatish yoki foydalanuvchi fikr-mulohazalari asosida yangi xususiyatlarni qo'shish uchun ilovani yangilab turing.

Ilovani saqlash va yaxshilash: Ilovani yangilab turish va vaqt o'tishi bilan uni yaxshilash uchun uni saqlab turing. Foydalanuvchi fikr-mulohazalarini tinglang va kerak bo'lganda ilovani yangilang.



import android.app.AlarmManager
import android.app.PendingIntent
import android.content.Context
import android.content.Intent
import java.util.*

class DailyTaskScheduler {


fun scheduleTask(context: Context, task: Task, timeIn24HourFormat: String) {
val calendar = Calendar.getInstance()
val alarmManager = context.getSystemService(Context.ALARM_SERVICE) as AlarmManager


val timeParts = timeIn24HourFormat.split(":")
calendar.set(Calendar.HOUR_OF_DAY, timeParts[0].toInt())
calendar.set(Calendar.MINUTE, timeParts[1].toInt())


val intent = Intent(context, TaskReceiver::class.java)
intent.putExtra("task_name", task.name)
intent.putExtra("task_description", task.description)


val pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)


alarmManager.setRepeating(
AlarmManager.RTC_WAKEUP,
calendar.timeInMillis,
AlarmManager.INTERVAL_DAY,
pendingIntent
)
}


fun unscheduleTask(context: Context) {
val alarmManager = context.getSystemService(Context.ALARM_SERVICE) as AlarmManager
val intent = Intent(context, TaskReceiver::class.java)
val pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0)
alarmManager.cancel(pendingIntent)
}
}


import 'package:flutter/material.dart';
import 'package:intl/intl.dart';


void main() {
runApp(MyApp());
}


class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Daily Planner App',
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key? key}) : super(key: key);


@override
_MyHomePageState createState() => _MyHomePageState();
}


class _MyHomePageState extends State {
final taskNameController = TextEditingController();
final List tasks = [];
void addTask() {
final task = taskNameController.text;
final now = DateTime.now();
final formatDate = DateFormat('dd/MM/yyyy');
final formattedDate = formatDate.format(now);


setState(() {
tasks.add('$formattedDate - $task');
taskNameController.clear();
});
}


@override
void dispose() {
taskNameController.dispose();
super.dispose();
}


@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Daily Tasks'),
),
body: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
...tasks.map((task) => Card(
child: ListTile(
title: Text(task),
),
)),


TextField(
controller: taskNameController,
decoration: InputDecoration(
labelText: 'Task Name',
),
),
SizedBox(height: 16),
ElevatedButton(
onPressed: addTask,
child: Text('Add Task'),
),
],
),
),
);
}

Download 81.37 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling