O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANSHTIRISH VAZIRLIGI MUXAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI FARG’ONA FILIALI “Kompyuter injiniringi” fakulteti “ “Kompyuter injiniringi” kafedrasi “ O‘rnatilgan operatsion tizimlarda xotirani boshqarish” mavzusiga tayyorlangan INDIVIDUAL « » L O Y I H A ISHI bajardi (imzo) 710-20 guruh talabasi 2023 y. ball bilan qabul qilindi (imzo) « » 2023 y. Komissiya a’zolari « » qabul qilindi (imzo) qabul qilindi (imzo) ______________________ _____________________ 2023 y. « Reja: 1 » 2023 y. Reja: 1. Kirish 2. Bilimdon nimani haqida 3. Bilimdonning Foydalari …………………………………………….. 5 4. Ilovaning maqsadi…………………...……………………………….. 6 5. Dastur ko’rinishi.………………...….………………………………. 8 7. Mobil ilovalarni ishlab chiqishda qo’llaniladigan dasturiy vositalar... 18 8. Foydalanilgan adabiyotlar ………………………………………... 24 7 Kirish Assalomu alaykum va xush kelibsiz! Bugungi kunga aytishimiz mumkin bo'lgan eng so'nggi o'rganishning yangilovchi va ko'p funksiyali mobil ilovasi - Bilimfon haqida gaplashamiz. Bilimfon, o'rganishni oson va qiziqarli qilishga yo'l qo'ymoqda - bu esa har yosh va ma'lumotdarlik darajasiga ega bo'lgan odamlar uchun eng muhim narsa. Bugungi kunda, biz Bilimfon ilovasining qanday yordam berishi, qanday o'rganish yo'nalishlarini taqdim etishi va qanday muhim foydalarning mavjudligi to'g'risida gaplashamiz. Boshlaymiz! 2 Bilimdon nima haqida Bilimdon, o'rganishning eng so'nggi mahsuloti va insonlarga cheksiz imkoniyatlar taqdim etuvchi bir mobil ilovadir. Quyidagi keng turdagi funksiyalardan foydalanish orqali, Bilimdon foydalanuvchilarga katta qadriyatli o'rganish imkoniyatlarini ochildi: Interaktiv Darslar: Har xil mavzularni o'z ichiga olgan multimedia darslar. Bu darslar, foydalanuvchilarga o'rganish jarayonini jiddiy ravishda qiziqtirish va ahamiyatini ko'rsatishga yordam beradi. Moslashtirilgan O'rganish: Shaxsiy rivojlanishga asoslangan shaxsiy o'qish yo'nalishlari. Bilimdon, foydalanuvchilarning ma'lumotlari va o'rganish usullariga moslashtirilgan shaxsiy dastlabki o'qish yo'nalishini taqdim etadi. 3 O'yinbop Testlar: O'rganishni qo'llab-quvvatlash va bilimni baholash uchun qiziq testlar va chellendzhlar. Bu funksiya, o'rganuvchilarga o'rganishlarini nazorat qilish va o'zlarini sinovdan o'tkazish imkoniyatini beradi. Progressni Kuzatish: Foydalanuvchilar uchun tafsilotlar, analitika va rivojlanishni kuzatish. Bu funksiya, foydalanuvchilarning o'rganish muvaffaqiyatlari va o'zlarining shaxsiy rivojlanishlarini nazorat qilishga yordam beradi. Jamoatga Murojaat: Boshqa o'rganuvchilar bilan bog'lanish, fikrlarni almashish va yordam so'ralish uchun hamkorlik qilish imkoniyati. Bu funksiya, o'rganuvchilar uchun ko'plab imkoniyatlar ochildi, ular o'z fikrlarini almashish va o'rganishdagi muammolarini birgalikda hal qilishga yordam beradi. Offlayn Kirish: O'rganish uchun kontentni offlayn olish imkoniyati, dastlabki kirishni ta'minlash, har vaqtda va har yerda foydalanishni ta'minlash. Bu funksiya, foydalanuvchilarga o'rganishlari uchun qulaylik va erishimni oshiradi. Bilimdon, o'rganuvchilarga qiziqishlarini o'zlashtirish, shaxsiy o'rganish rivojlanishlariga moslashtirilgan yordam berish va cheksiz o'rganish imkoniyatlarini taqdim etish bilan amalga oshirilgan yangilikchilar ilovasidir. Bilindonning Foydalari Bilimdon, o'rganishning o'zgartiruvchi qo'llanmasi sifatida o'rganuvchilarga ko'plab foydali imkoniyatlarni taqdim etadi. Quyidagi foydalardan ba'zilari: Qulaylik: Mobil ilova shakllarida o'rganish imkoniyatlari, foydalanuvchilar uchun ta'limga erishimni oson va tezlashtiradi, ularni o'zlarining ixtiyoriy vaqtida o'rganishiga imkoniyat beradi. 4 Qiziqish: Interaktiv darslar, o'yinbop testlar va chellendzhlar foydalanuvchilarni o'rganish jarayonida motivatsiyalash uchun, shuningdek, bilimni o'zlashtirish va ilg'or ravishda qiziqtirish uchun qiziq imkoniyatlarni taqdim etadi. Shaxsiylik: Bilimdon, foydalanuvchilarga moslashtirilgan dastlabki o'qish yo'nalishlari orqali shaxsiy o'rganish yo'nalishlarini taqdim etadi. Bu, o'rganuvchilarning o'zlariga moslashtirilgan o'rganish rejalarini yaratish va o'zlarining shaxsiy rivojlanishlarini kuzatish imkoniyatini beradi. Moslashuvchanlik: Bilimdon, o'quvchilarga o'z zahoti va jadvaliga binoan ta'limning yetishmasining qulay vaqti, ularning o'zlarining shaxsiy jadvaliga va qiziqishlariga qarab, ta'limni muvaffaqiyatli boshlashlari uchun ko'plab imkoniyatlar ochildi. Jamoatning Qo'llab-quvvati: Platformada boshqa o'rganuvchilar bilan bog'lanish, fikrlarni almashish va hamkorlik qilish imkoniyati, foydalanuvchilarga o'rganish jarayonida yordam beradi va ularga motivatsiya olib keladi. Bilimdon, o'rganuvchilarga keng qamrovli va qiziq imkoniyatlar taqdim etish bilan, o'rganishni oson, qulay va samarali qilish uchun mo'ljallangan eng yangi mobil ilovalardan biridir. Bilimdonning maqsadi Bilimdon ilovasining asosiy maqsadi, o'rganishni oson va qiziqarli qilish orqali foydalanuvchilarga cheksiz imkoniyatlar taqdim etishdir. Bu ilova quyidagi maqsadlarga erishishni o'z ichiga oladi: O'rganishga Ko'rsatish: Bilimdon, har bir foydalanuvchiga turli mavzular bo'yicha zamonaviy, interaktiv darslar va materiallar taqdim etadi, bu esa o'rganishni qiziq va oson qiladi. 5 Shaxsiy Rivojlanishni Qo'llab-quvvatlash: Ilova, foydalanuvchilarga moslashtirilgan shaxsiy o'qish yo'nalishlari taqdim etadi, bu esa ularga o'zlarining maqsadlariga mos tushgan individual o'rganish yo'nalishini tashkil etish imkoniyatini beradi. Kasbiy Rivojlanish: Bilimdon, foydalanuvchilarga turli sohalar va kasblarda rivojlanishlari uchun zarur bilim va qobiliyatlar taqdim etadi, shuningdek, ularni kasbiy rivojlanishlariga yo'rdam beradi. Tajribalarni Almashtirish: Foydalanuvchilar Bilimdon ilovasini ishlatib, boshqa foydalanuvchilar bilan bog'lanish, fikrlarni almashish va tajribalarni almashtirish imkoniyatiga ega bo'lib, o'zlarining o'rganish jarayonini kengaytirishadi. O'quvchilar Bilan Bog'lanish: Ilova, o'quvchilar va o'qituvchilar uchun bir-biriga bog'lanish va o'rganishda hamkorlik qilish imkoniyatini taqdim etadi, bu esa o'quv jarayonini qo'llab-quvvatlaydi va o'quvchilar uchun motivatsiya olib keladi. Bilimdon ilovasi, foydalanuvchilarga cheksiz o'rganish imkoniyatlarini taqdim etib, ularni shaxsiy va professional hayotlarida rivojlanishlariga yo'ldosh bo'lishga o'z hissasini o'tkazadi. 6 Dastur ko’rinishi 7 8 9 10 Dastur kod qismi ==================== Dasturning algoritm bo’lim ========================== package com.example.myquizapp import android.annotation.SuppressLint import android.content.Intent import android.graphics.Color import android.graphics.Typeface import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.View import android.widget.Button import android.widget.ProgressBar import android.widget.TextView import android.widget.Toast import androidx.core.content.ContextCompat class QuizQuestionsActivity : AppCompatActivity(), View.OnClickListener { private var mCurrentPosition: Int = 1 private var mQuestionList: ArrayList<Question>? = null private var mSelectedOptionPosition: Int = 0 private lateinit var tv_option_one:TextView private lateinit var tv_option_two:TextView private lateinit var tv_option_three:TextView private lateinit var tv_option_four:TextView private lateinit var tv_question:TextView private lateinit var tv_progress:TextView private lateinit var btn_submit:Button private lateinit var progressBar:ProgressBar override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_quiz_questions) tv_option_one=findViewById(R.id.tv_option_one) tv_question=findViewById(R.id.tv_question) tv_option_two=findViewById(R.id.tv_option_two) tv_option_three=findViewById(R.id.tv_option_three) 11 tv_option_four=findViewById(R.id.tv_option_four) btn_submit=findViewById(R.id.btn_submit) tv_progress=findViewById(R.id.tv_progress) progressBar=findViewById(R.id.progressBar) mQuestionList = Constants.getQuestions() setQuestion() tv_option_one.setOnClickListener(this) tv_option_two.setOnClickListener(this) tv_option_three.setOnClickListener(this) tv_option_four.setOnClickListener(this) btn_submit.setOnClickListener(this) } @SuppressLint("SetTextI18n") private fun setQuestion() { val question = mQuestionList!!.get(mCurrentPosition - 1) defaultOptionsView() if (mCurrentPosition == mQuestionList!!.size) { btn_submit.text = "Finish" } else { btn_submit.text = "Submit" } progressBar.progress = mCurrentPosition tv_progress.text = "$mCurrentPosition" + "/" + progressBar.max tv_question.text = question.question tv_option_one.text = question.optionOne tv_option_two.text = question.optionTwo tv_option_three.text = question.optionThree tv_option_four.text = question.optionFour } 12 private fun defaultOptionsView() { val options = ArrayList<TextView>() options.add(0, tv_option_one) options.add(1, tv_option_two) options.add(2, tv_option_three) options.add(3, tv_option_four) for (option in options) { option.setTextColor(Color.parseColor("#7A8089")) option.typeface = Typeface.DEFAULT option.background = ContextCompat.getDrawable( this, R.drawable.default_option_border_bg ) } } override fun onClick(v: View?) { when (v?.id) { R.id.tv_option_one -> { selectedOptionView(tv_option_one, 1) } R.id.tv_option_two -> { selectedOptionView(tv_option_two, 2) } R.id.tv_option_three -> { selectedOptionView(tv_option_three, 3) } R.id.tv_option_four -> { selectedOptionView(tv_option_four, 4) } R.id.btn_submit -> { if (mSelectedOptionPosition == 0) { mCurrentPosition++ when { mCurrentPosition <= mQuestionList!!.size -> { 13 setQuestion() } else -> { Toast.makeText( this, "You have successfully completed the Quiz", Toast.LENGTH_SHORT ).show() val intent = Intent(this,MainActivity::class.java) startActivity(intent) } } } else { val question = mQuestionList?.get(mCurrentPosition - 1) if (question!!.correctOption != mSelectedOptionPosition) { answerView(mSelectedOptionPosition, R.drawable.wrong_option_border_bg) } answerView(question.correctOption, R.drawable.correct_option_border_bg) if (mCurrentPosition == mQuestionList!!.size) { btn_submit.text = "Finish" } else { btn_submit.text = "Go to next question" } mSelectedOptionPosition = 0 } } } } private fun selectedOptionView(tv: TextView, selectedOptionNum: Int) { defaultOptionsView() mSelectedOptionPosition = selectedOptionNum tv.setTextColor(Color.parseColor("#363A43")) tv.setTypeface(tv.typeface, Typeface.BOLD) tv.background = ContextCompat.getDrawable( this, 14 R.drawable.selected_option_border_bg ) } private fun answerView(answer: Int, drawableView: Int) { when (answer) { 1 -> { tv_option_one.background = ContextCompat.getDrawable( this, drawableView ) } 2 -> { tv_option_two.background = ContextCompat.getDrawable( this, drawableView ) } 3 -> { tv_option_three.background = ContextCompat.getDrawable( this, drawableView ) } 4 -> { tv_option_four.background = ContextCompat.getDrawable( this, drawableView ) } } } } ==================== Dasturning Ekran dizay bo’lim ======================= <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/ic_bg" 15 android:gravity="center" android:orientation="vertical" tools:context=".MainActivity"> <TextView android:id="@+id/tv_app_name" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="30dp" android:fontFamily="@font/roboto" android:gravity="center" android:text="@string/app_name" android:textColor="@android:color/white" android:textSize="30sp" android:textStyle="bold"> </TextView> <androidx.cardview.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="20dp" android:layout_marginEnd="20dp" android:text="Hello World!" app:cardBackgroundColor="@android:color/white" app:cardCornerRadius="10dp" app:cardElevation="5dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="16dp"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:fontFamily="@font/roboto_bold" 16 android:gravity="center" android:text="@string/welcome" android:textColor="#363A43" android:textSize="32sp" android:textStyle="bold" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:fontFamily="@font/roboto_light" android:gravity="center" android:text="@string/start_message" android:textColor="#7A8089" android:textSize="16sp" /> <Button android:id="@+id/btn_start" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:background="@color/colorPrimary" android:fontFamily="@font/roboto_bold" android:text="@string/start_button" android:textColor="@android:color/white" android:textSize="18sp"> </Button> </LinearLayout> </androidx.cardview.widget.CardView> </LinearLayout> ==================== Dasturning Sahifa dizay bo’lim ======================= <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" 17 xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true" tools:context=".QuizQuestionsActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="vertical" android:padding="16dp" > <TextView android:id="@+id/tv_question" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" android:fontFamily="@font/roboto" android:gravity="center" android:text="Which internet company began life as an online bookstore called &#039;Cadabra&#039;?" android:textColor="#363A43" android:textSize="22sp"> </TextView> <LinearLayout android:id="@+id/ll_progress_details" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:gravity="center_vertical" android:orientation="horizontal"> <ProgressBar android:id="@+id/progressBar" style="?android:attr/progressBarStyleHorizontal" android:layout_width="0dp" 18 android:layout_height="wrap_content" android:layout_weight="1" android:indeterminate="false" android:max="10" android:minHeight="50dp" android:progress="0"> </ProgressBar> <TextView android:id="@+id/tv_progress" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:padding="15dp" android:textColorHint="#7A8089" android:textSize="14sp" tools:text="0/10"> </TextView> </LinearLayout> <TextView android:id="@+id/tv_option_one" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" android:background="@drawable/default_option_border_bg" android:fontFamily="@font/roboto" android:gravity="center" android:padding="15dp" android:textColor="#7A8089" android:textSize="18sp" tools:text="Apple"> </TextView> <TextView android:id="@+id/tv_option_two" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" 19 android:background="@drawable/default_option_border_bg" android:fontFamily="@font/roboto" android:gravity="center" android:padding="15dp" android:textColor="#7A8089" android:textSize="18sp" tools:text="Apple"> </TextView> <TextView android:id="@+id/tv_option_three" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" android:background="@drawable/default_option_border_bg" android:fontFamily="@font/roboto" android:gravity="center" android:padding="15dp" android:textColor="#7A8089" android:textSize="18sp" tools:text="Apple"> </TextView> <TextView android:id="@+id/tv_option_four" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" android:background="@drawable/default_option_border_bg" android:fontFamily="@font/roboto" android:gravity="center" android:padding="15dp" android:textColor="#7A8089" android:textSize="18sp" tools:text="Apple"> </TextView> <Button android:id="@+id/btn_submit" 20 android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" android:background="@color/colorPrimary" android:fontFamily="@font/roboto_bold" android:text="@string/submit_button" android:textColor="@android:color/white" android:textSize="18sp" android:textStyle="bold"> </Button> </LinearLayout> </ScrollView> Mobil ilova (inglizcha: Mobile app) — maʼlum bir platforma (iOS, Android, Windows Phone va boshqalar) uchun ishlab chiqilgan smartfonlar, planshetlar va boshqa mobil qurilmalarda ishlashga moʻljallangan dastur. Koʻpgina mobil ilovalar qurilmaning oʻzida oldindan oʻrnatiladi yoki ularni App Store, Google Play va boshqalar kabi onlayn dastur doʻkonlaridan bepul yoki pullik bilan yuklab olish mumkin. Dastlab, mobil ilovalar elektron pochtani tezda tekshirish uchun ishlatilgan, ammo ularning yuqori talablari boshqa sohalarda ham kengayishiga olib keldi, masalan, mobil telefon va GPS oʻyinlari, suhbatlashish, video tomosha qilish va Internetdan foydalanish. Kalit so’zlar. Mobil ilova, MySQL, Flutter, Figma, iOS, Android, LAMP, SQL, Dart, ma’lumotlar bazasi, dasturlash tillari. Mobil ilovalarni ishlab chiqishda quyidagi ba’zi dasturlar kerak bo’ladi: 1-rasm. Mobil ilovalarni ishlab chiqishda foydalaniladigan dasturlar. MySQL— ochiq manbali relyatsion maʼlumotlar bazasini boshqarish tizimi. Uning nomi "My", Maykl Videniusning qizining ismi va "SQL", Strukturalangan soʻrovlar tilining qisqartmasidan iborat. Relyatsion ma'lumotlar bazasi ma'lumotlarni bir yoki bir 21 nechta ma'lumotlar jadvallarida tartibga soladi, ularda ma'lumotlar bir-biri bilan bog'liq bo'lishi mumkin; bu munosabatlar ma'lumotlarni tuzilishga yordam beradi. SQL dasturchilar relyatsion ma'lumotlar bazasidan ma'lumotlarni yaratish, o'zgartirish va chiqarish, shuningdek, ma'lumotlar bazasiga foydalanuvchi kirishini boshqarish uchun foydalanadigan til. Relyatsion ma'lumotlar bazalari va SQL-ga qo'shimcha ravishda, MySQL kabi RDBMS kompyuterning saqlash tizimida relyatsion ma'lumotlar bazasini amalga oshirish uchun operatsion tizim bilan ishlaydi, foydalanuvchilarni boshqaradi, tarmoqqa kirish imkonini beradi va ma'lumotlar bazasi yaxlitligini sinovdan o'tkazish va zaxira nusxalarini yaratishni osonlashtiradi. 2-rasm. MySQLda ma’lumotlar bazalarini o’zaro bog’lash. MySQL-da foydalanuvchilarga SQL-dan foydalangan holda MySQL ma'lumotlar bazasi bilan to'g'ridan-to'g'ri o'zaro ishlash imkonini beruvchi mustaqil mijozlari mavjud, lekin ko'pincha MySQL relyatsion ma'lumotlar bazasi qobiliyatiga muhtoj bo'lgan ilovalarni amalga oshirish uchun boshqa dasturlar bilan ishlatiladi. MySQL Linux, Apache, MySQL, Perl/PHP/Python so'zlarining qisqartmasi bo'lgan LAMP veb-ilovalar stekining (va boshqalar) tarkibiy qismidir. MySQL ko'plab ma'lumotlar bazasiga asoslangan veb-ilovalar, jumladan Drupal, Joomla, phpBB va WordPress tomonidan qo'llaniladi. MySQL-dan Facebook, Flickr, MediaWiki, Twitter va YouTube kabi mashhur veb-saytlar ham foydalanadi. MySQLni manba kodidan qo'lda qurish va o'rnatish mumkin, lekin maxsus sozlashlar talab qilinmasa, u odatda ikkilik paketdan o'rnatiladi. Ko'pgina Linux distributivlarida paketlarni boshqarish tizimi MySQL-ni minimal kuch bilan yuklab olishi va o'rnatishi mumkin, Ammo xavfsizlik va optimallashtirish sozlamalarini sozlash uchun ko'pincha qo'shimcha konfiguratsiya talab qilinadi. LAMP dasturiy taʼminot toʻplami, bu yerda Squid bilan birga koʻrsatiladi. MySQL kuchliroq mulkiy ma'lumotlar bazalariga past darajadagi muqobil sifatida boshlangan bo'lsa-da, u asta-sekin katta hajmdagi ehtiyojlarni qo'llab-quvvatlash uchun rivojlandi. U hali ham ko'pincha kichik va o'rta miqyosdagi bitta serverli joylashtirishda, LAMPga asoslangan veb-ilovaning komponenti sifatida yoki mustaqil ma'lumotlar bazasi serveri sifatida ishlatiladi. MySQLning ko'p jozibadorligi phpMyAdmin kabi ochiq manbali 22 vositalar ekotizimlari tomonidan faollashtirilgan nisbatan soddaligi va foydalanish qulayligidan kelib chiqadi . O'rta diapazonda MySQLni gigabayt xotiraga ega bo'lgan ko'p protsessorli server kabi kuchliroq uskunada o'rnatish orqali masshtablash mumkin. Biroq, bitta serverda unumdorlik qanchalik kengayishi mumkinligi ("kengaytirish") bo'yicha cheklovlar mavjud, shuning uchun yaxshilangan ishlash va ishonchlilikni ta'minlash uchun kattaroq miqyoslarda ko'p serverli MySQL ("kengaytirish") o'rnatilishi talab qilinadi. Oddiy yuqori darajadagi konfiguratsiya ma'lumotlarni yozish operatsiyalarini boshqaradigan va barcha o'qish operatsiyalarini bajaradigan bir nechta tobelarga takrorlanadigan kuchli asosiy ma'lumotlar bazasini o'z ichiga olishi mumkin. Asosiy server doimiy ravishda binlog hodisalarini ulangan tobelarga surib turadi, shuning uchun ishlamay qolganda toʻxtash vaqtini minimallashtirib, yangi master boʻlishi mumkin. Ishlashning keyingi yaxshilanishiga memcached yordamida ma'lumotlar bazasi so'rovlari natijalarini xotirada keshlash yoki ma'lumotlar bazasini kichikroq bo'laklarga bo'lish orqali erishish mumkin. Flutter - bu Google tomonidan yaratilgan ochiq manbali UI dasturiy ta'minot ishlab chiqish tizimi. U Android, iOS, Linux, macOS, Windows, Google Fuchsia, va Internet uchun yagona kod bazasidan oʻzaro platforma ilovalarini ishlab chiqishda foydalaniladi. Birinchi marta 2015-yilda ishlab chiqilgan. Flutter 2017-yilning may oyida chiqarilgan. Flutterning asosiy komponentlari quyidagilardan iborat: Dart platformasi Flutter dvigateli (Skia Graphics Engine) Fond kutubxonasi Dizayn uchun maxsus vidjetlar Flutter rivojlantirish vositalari (DevTools) 3-rasm. Flutterda iOS hamda Andoroid uchun mobil ilovalar yaratish mumkin. 23 Dart platformasi. Flutter ilovalari Dart tilida yozilgan va tilning ko‘plab ilg‘or funksiyalaridan foydalanadi. Ilovani yozish va disk raskadrovka qilishda Flutter Dart virtual mashinasida ishlaydi, u o'z vaqtida bajaruvchi vositaga ega. Bu tez kompilyatsiya vaqtlarini, shuningdek, "qayta yuklash" imkonini beradi, buning yordamida manba fayllariga o'zgartirishlar ishlaydigan dasturga kiritilishi mumkin. Flutter buni holatli qayta yuklashni qo‘llab-quvvatlash bilan kengaytiradi, bunda ko‘p hollarda manba kodidagi o‘zgarishlar qayta ishga tushirishni yoki holatni yo‘qotmasdan darhol ishlaydigan ilovada aks etadi. Yaxshiroq ishlash uchun Flutter ilovalarining barcha platformalardagi versiyalari oldindan (AOT) kompilyatsiyasidan foydalanadi. Figma - vektor grafik muharriri va prototiplash vositasi boʻlib, u asosan veb-ga asoslangan boʻlib, macOS va Windows uchun ish stoli ilovalari tomonidan yoqilgan qoʻshimcha oflayn funksiyalarga ega. Android va iOS uchun Figma mobil ilovasi real vaqtda mobil qurilmalarda Figma prototiplarini ko'rish va ular bilan ishlash imkonini beradi. Figma xususiyatlari to'plami foydalanuvchi interfeysi va foydalanuvchi tajribasini loyihalashda foydalanishga qaratilgan bo'lib, real vaqtda hamkorlikka urg'u beradi. Mustaqil MacOS ilovasi sifatida ishlaydigan Sketchdan farqli o'laroq, Figma butunlay brauzerga asoslangan va shuning uchun nafaqat Mac kompyuterlarida, balki Windows yoki Linux bilan ishlaydigan shaxsiy kompyuterlarda va hatto Chromebooklarda ham ishlaydi. Shuningdek, u veb-APIni taklif qiladi va u bepul. Figmaning yana bir katta afzalligi shundaki, u bir xil faylda real vaqtda ishlash imkonini beradi. Sketch va Photoshop kabi an'anaviy "oflayn" ilovalardan foydalanganda, agar dizaynerlar o'z ishlarini baham ko'rishni xohlasalar, odatda uni rasm fayliga eksport qilishlari kerak, keyin uni elektron pochta yoki tezkor xabar orqali yuborishlari kerak. 4-rasm. Figma dasturida UI ko’rinishini yaratish. Figmada, statik tasvirlarni eksport qilish o'rniga, mijozlar va hamkasblar brauzerida ochishlari uchun Figma fayliga havolani ulashamiz. Bu o'z-o'zidan dizaynerning ish jarayonida sezilarli vaqt va noqulayliklarni tejaydi. Ammo bundan ham muhimi, bu 24 mijozlar va hamkasblar ish bilan yanada boyroq muloqot qilishlari va faylning so'nggi versiyasini ko'rib chiqishlari mumkinligini anglatadi. Foydalanilgan adabiyotlar: 1. https://docs.flutter.dev/resources/faq 2. https://en.wikipedia.org/wiki/Figma_(software) 3. https://en.wikipedia.org/wiki/MySQL 4. https://designlab.com/figma-101-course/introduction-to-figma/ 5. Saloydinov, S. Q. (2021). Paxta tozalash zavodlarida energiya sarfini kamaytirishning texnik-iqtisodiy mexanizmini yaratish. “Academic research in educational sciences”, 2(9), 886-889. https://doi.org/10.24412/2181-1385-2021-9-886889 6. Saloydinov, S. Q. (2021). Creation of feasibility studies to reduce energy costs in ginneries. "Экономика и социум", 9(88), 147-149. 7. Caлойдинов, C. К. (2021). Образовательные кредиты в Узбекистане. "Экономика и социум", 12(91), 470-472. 25 8. Caлойдинов, C. К. (2021). Спрос на рынке дифференцированных продуктов. "Экономика и социум", 12(91), 473-476. 9. Салойдинов, С. К. (2022). С паровой турбиной 471 МВт на Талимарджанской ТЭЦ расчет электрических режимов при максимальной зимней нагрузке. “Central Asian Research Journal for Interdisciplinary Studies (CARJIS)”, Special issue, 116-121. 10. Сaрдoржoн Кoдиржoн Yгли Сaлoйдинoв. (2022). Иннoвaциoннoе решение для пoлyчения биoгaзa. “Central Asian Research Journal for Interdisciplinary Studies (CARJIS)”, 2(3), 280-285. https://doi.org/10.24412/2181-2454-2022-3-280-285 Astanaliev E. T. O. The Process Of Electronic Document Management In The System Of Railway Automation And Telemechanics //The American Journal of Interdisciplinary Innovations Research. – 2021. – Т. 3. – №. 05. – С. 76-80. 11. Astanaliev E. The formalization of the electronic document in railway automatics and telemechanics on the basis of simulation modeling //European Scholar Journal (ESJ). – Т. 2. – №. 3. 12. OGLI A. E. T. Software for Electronic Document Management System of Technical Documentation on Railway Automation and Telemechanics //JournalNX. – 2021. – Т. 7. – №. 1. – С. 204-209. 13. Astanaliev E. ELECTRONIC MODEL OF TECHNICAL DOCUMENT MANAGEMENT PROCESS //Збірник наукових праць ΛΌГOΣ. – 2021. 14. Baratov D., Astanaliev E. Functional Features of the Technical Documentation Control Program //International Journal on Orange Technologies. – 2021. – Т. 3. – №. 1. – С. 7-11. 15. Dadaboyev, Q. Q. (2021). Refrigerator in modern heating power stationstechnical water waste through reconstruction of the towerreduction. “International journal of philosophical studies and social sciences”, 1(3), 96-101. 16. Dadaboyev, Q. Q. (2022). Issiqlik elektr stansiyalarida texnik suv isrofini barataraf etish. “Academic research in educational sciences”, 3(1), 434-440. https://doi.org/10.24412/2181-2454-2022-1-41-47 17. Dadaboyev, Q. Q. (2022). Bug'-gaz qurilmasi gradirniyalaridagi aylanma suv isrofini kamaytirish “Central Asian Research Journal for Interdisciplinary Studies (CARJIS)”, Special issue, 15-21 26