Практическая работа-6 Тема: Установка и настройка Android Studio для программирования на фреймворке Flutter


Download 99.35 Kb.
Pdf ko'rish
bet1/7
Sana18.06.2023
Hajmi99.35 Kb.
#1583077
TuriПрактическая работа
  1   2   3   4   5   6   7
Bog'liq
пр6



 
 
Практическая работа-6 
 
 
Тема: 
Установка и настройка Android Studio для программирования на фреймворке 
Flutter.
 
 

FLUTTER FRAMEWORK 


Flutter - bu Dart dasturlash tilida ishlaydigan o'zaro platformali, yagona kodli 
asosli ramka. Google tomonidan faqat 2018-yilda ishga tushirilgan Flutter 
animatsiyalarni yaratish oson bo‘lgan qulay vositalar to‘plami ekanligini isbotladi. 
Foydalanuvchi interfeysining sifatli komponentlari: 
Google yaqinda kross- platformalardan foydalanishni boshlaganiga qaramay, Flutter 
silliq animatsiya va foydalanuvchilarga qulay interfeys elementlarini taqdim etadi 
[2]. Boshqacha aytganda, bu keng qamrovli dastur Dasturiy ta'minotni ishlab chiqish 
to'plami (SDK) vidjet bilan birga asboblar
U rivojlanishning qulayligi bilan yuqori ishlashni birlashtiradi. Bu ishlab 
chiquvchilarga vizual jihatdan jozibali narsalarni yaratish va joylashtirishning oson 
yo'lini beradi, mobil (iOS, Android), Internet va barchasi uchun yagona kod 
bazasidan foydalangan holda mahalliy kompilyatsiya qilingan ilovalar. 
Flutter-dan ob'ektga yo'naltirilgan (sinflar, usullar, o'zgaruvchilar va boshqalar) va 
imperativ (looplar, shartlar va boshqalar) dasturlash tushunchalari bilan tanish 
bo'lgan dasturchilar foydalanishi mumkin. 
Flutter to‘plami ekotizimi apparat (kamera, GPS, tarmoq, saqlash) va xizmatlarni 
(to‘lovlar, bulutli saqlash, autentifikatsiya, reklama) keng assortimentini qo‘llab-
quvvatlaydi [3]. 
Flutter mobil ilovalar yaratish uchun veb- brauzer texnologiyasiga yoki har bir 
qurilma bilan birga keladigan vidjetlar to‘plamiga tayanishi shart emasligi bilan 
ajralib turadi. Bundan tashqari, Flutter faqat C/C++ kodining yupqa qatlamiga ega. 
Flutter o'zining ko'pgina tizimining (kompozitsiya, imo- ishoralar, animatsiya,
ramka, vidjetlar va boshqalar) Dartda (zamonaviy qisqacha ob'ektga yo'naltirilgan 
til) amalga oshiradi, unga dasturchilar o'zgartirish kiritish uchun osongina kirishlari 
mumkin. 
kod. Bu ishlab chiquvchilarga tizim ustidan katta hajmdagi nazoratni beradi va 
shuningdek, aksariyat tizimlar uchun mavjudlik panelini sezilarli darajada 
pasaytiradi. Taxminan har uch oyda Flutter barqarorlik va unumdorlikni 
yaxshilaydigan yangilanishlarni taqdim etadi [3]. 


Flutter quyidagilarni o'z ichiga oladi: 
- oy uchun optimallashtirilgan 2D renderlash mexanizmi mukammal matn qo'llab-
quvvatlash bilan kaltaklar; 
React uslubidagi zamonaviy ramka; 
- materialni amalga oshiradigan katta vidjetlar to'plami yangi dizayn va iOS uslubi 
-
birlik va integratsiya testlari uchun API 
-
tizimga va uchinchi tomon SDK ga ulanish uchun API va plaginlarning o'zaro ta'siri 
-
Sinov, disk raskadrovka va pro uchun Dart DevTools 
arizangizni kodlash; 
-
yaratish uchun buyruq qatori vositalari, ilovalarni yaratish, sinovdan o'tkazish va 
kompilyatsiya qilish. 
Flutter tizimi Android Studio va Visual Studio Code kabi turli xil vositalarni 
qo'llab-quvvatlaydi. Shuningdek, u buyruq satridan ilovalar yaratish uchun yordam 
beradi. Yangi nosozliklarni tuzatish vositasi Dart DevTools yanada moslashuvchan. 
Inspektor vidjeti foydalanuvchi interfeysini ko'rsatish uchun ishlatiladigan daraxt
ierarxiyasini tasavvur qilish va o'rganishga yordam beradi. 
TIZIM ARXITEKTURASI 
Flutter C, C++, Dart va Skia (2D renderlash mexanizmi) kabi
dasturlash tillarida yaratilgan. Vidjetlar har qanday Flutter
ilovasining qurilish bloklari bo‘lib, ular mahalliy Android (Material)
yoki iOS (Cupertino) UI komponentlariga o‘xshab ko‘rinishi


mumkin. Vidjetlar Skia tuvalida ilg'or animatsiya va imoishoralarni aniqlashni 
qo'llab-quvvatlaydi (1- rasm) 
1-rasm. 
Ramkaning tizimli arxitekturas 
Flutter dvigateli Skia-ning asosiy texnologiyalarini o'z ichiga oladi. Muayyan 
platformada 2D grafiklarni ko'rsatish kutubxonasi va Dart VM tili. Har qanday qobiq 
tegishli platforma API-larini amalga oshiradi va tizim ilovasining hayot tsiklidagi 
voqealarni qayta ishlaydi [4]. meros, ya'ni faqat bitta tayanch sinf hosila sinfning 
ota-onasi sifatida harakat qilishi mumkin [5]. Shu bilan birga, Java yoki C#
dasturlash tilida bo'lgani kabi, sinf ko'plab interfeyslarni amalga oshirishi mumkin. 
Dart sintaksisi bo'yicha C oilasiga (C+ +, C#, Java, Kotlin va boshqalar) juda 
o'xshaydi. Dart null xavfsizligini qo'llab-quvvatlaydi, bu sizga topish qiyin bo'lgan 
bir qator nol xatolaridan qochish imkonini beradi. Dart tilidan foydalanish Flutterga 
dastlabki kodni o'z kodiga oldindan kompilyatsiya qilish imkonini beradi. Dvigatel 
kodi C/C++ Android NDK (Native Development Kit) yoki iOS LLVM (Past Level 
Virtual Machine) da tuzilgan. Ikkala qism ham Android va iOS loyihasi Runner-ga 
joylashtirilgan, natijada mos ravishda apk yoki ipa fayli paydo bo'ladi. Ilova ishga 
tushganda, har qanday renderlash, kiritish yoki hodisa kompilyatsiya qilingan
Flutter dvigateliga va dastur kodiga topshiriladi. Dvigatelni apk- yoki ipa- ilova fayli 
bilan paketlash zarurati hozirda dastur hajmini 4 MB ga oshirishga olib keladi. 
Ilovani tez ishga tushirish va bajarish manba kodini kompilyatsiya qilishning 
afzalliklari hisoblanadi. UI 60 kadr / s tezlikda (asosan GPU tomonidan) yangilanadi 
va ekrandagi har bir piksel Skia tuvallariga tegishli bo'lib, silliq UI paydo bo'ladi. 
Oraliq kodni kompilyatsiya qilish virtual mashina (VM) kontseptsiyasiga 
asoslangan bo'lib, u dasturiy ta'minot ichidagi apparatni taqlid qiluvchi ilg'or 
tarjimon hisoblanadi. Virtual mashina tilni yangi apparat platformalariga o'tkazishni
osonlashtiradi. Bunday holda, VM uchun kirish tili ko'pincha oraliq koddir. 
Masalan, dasturlash tilidagi kod (masalan, Java) oraliq kodga (Java baytkodi) 
kompilyatsiya qilinadi va keyin VM
(JVM) da bajariladi. 
DART DASTURLASH TILI 


Dart - ob'ektga yo'naltirilgan til. Dart dasturida ishlatiladigan barcha qiymatlar 
ob'ektlarni ifodalaydi. Dart ko'plikni qo'llabquvvatlamayd meros, ya'ni faqat bitta 
tayanch sinf hosila sinfning ota-onasi sifatida harakat qilishi mumkin [5]. Shu bilan 
birga, Java yoki C# dasturlash tilida bo'lgani kabi, sinf ko'plab interfeyslarni amalga
oshirishi mumkin. Dart sintaksisi bo'yicha C oilasiga (C+ +, C#, Java, Kotlin va 
boshqalar) juda o'xshaydi. Dart null xavfsizligini qo'llab-quvvatlaydi, bu sizga 
topish qiyin bo'lgan bir qator nol xatolaridan qochish imkonini beradi. 
Dart - bu bir qator cheklovlarni o'rnatadigan bir oqimli dasturlash tili. Asinxron 
kod yozish mumkin, lekin Thread klassi yo'q . Buning o'rniga Izolyatsiya 
tushunchasi qo'llaniladi. Oddiy oqimdan farqli o'laroq, "izolyatsiyalar" umumiy 
xotiraga ega emas, lekin xabarlar orqali bir-biri bilan o'zaro aloqada bo'lishi mumkin 
[6]. 
Dart o'zining paket menejeri pubga ega, bu sizga mavjud paketlarni omborga 
o'rnatish imkonini beradi. Aksariyat hollarda u bilan bevosita muloqot qilishning 
hojati yo'q. O'rnatilishi kerak bo'lgan paketni loyihaga bog'liqlik sifatida ro'yxatdan 
o'tkazish kifoya. 
Dart ish vaqti va kompilyatorlari Flutter uchun ikkita muhim xususiyatning 
kombinatsiyasini qo'llab-quvvatlaydi: JIT- ga asoslangan tez ishlab chiqish sikli, bu 
tilni davlat ma'lumotlarini o'zgartirish va kiritilgan tilda issiq qayta yuklash imkonini 
beradi va tezkor ishga tushirish uchun samarali ARM kodini yaratuvchi AOT 
kompilyatori va ishlab chiqarishni joylashtirishning prognoz qilinadigan ishlashi 
[7]. 
JIT kompilyatorlari (ing. Just-in- Time - kompilyatsiya "aynan to'g'ri vaqtda") 
kompilyatsiya usulidan dastur ishlayotgan paytda, "hozirda" foydalanadi. Ular 
rivojlanish tsiklini sezilarli darajada tezlashtiradi, lekin dastur to'xtab qolishi va 
sekinroq ishlashi mumkin. JIT kompilyatori bilan u sekinroq ishga tushadi, chunki
kodni bajarish bilan bir vaqtda uni tahlil qilish va kompilyatsiya qilish uchun vaqt 
kerak bo'ladi. 
AOT kompilyatorlari (ing. Ahead-of-Time - oldindan kompilyatsiya) ishlab 
chiqish siklini sekinlashtiradi - dastur bajarilishidan oldin kompilyatsiya qilinadi, 
natijada bajariladigan fayl paydo bo'ladi. Biroq, AOT kompilyatsiyasi natijasida 
ishlab chiquvchi ish vaqtida tahlil qilish va kompilyatsiya qilish uchun 
tanaffuslarsiz, oldindan taxmin qilinadigan tarzda ishlaydigan dasturni oladi. 
Bunday dasturlar tezroq ishlaydi, chunki ular allaqachon kompilyatsiya qilingan [7] 
Issiq qayta yuklash xususiyati faqat disk raskadrovka rejimida ishlab chiquvchilar 
tomonidan qo'llaniladi. Hot Reload yangilangan manba kodli fayllarni ishlaydigan 
Dart VM-ga kiritish orqali ishlaydi. Bu nafaqat yangi sinflarni qo'shadi, balki 
mavjud sinflarga usullar va maydonlarni qo'shadi va mavjud funktsiyalarni 
o'zgartiradi. 
Hot Reload sizga koddagi barcha o'zgarishlarni bir zumda ishlaydigan emulyator 
yoki ulangan qurilmaga o'tkazish imkonini beradi [8]. 


Vidjetlar ob'ektlardir. Ularning ko'plari bor va ular har bir kod o'zgarishi bilan 
juda katta tezlikda qayta yaratiladi. Yagona StatelessWidget juda koÿp turli 
BuildContexts (vidjet daraxtidagi vidjet oÿrni tavsifi)ni oÿz ichiga olishi mumkin. 
StatefulWidget yangi obyekt yaratadi.Flutter dvigateli Skia-ning asosiy 
texnologiyalarini o'z ichiga oladi -Har bir BuildContext uchun holat ( 2-rasm) 
( 2-rasm) Vidjetning hayot aylanishi 
Dasturlashda axlat yig'ish xotirani avtomatik boshqarish shaklidir. Axlat yig'uvchi 
deb ataladigan maxsus jarayon ilovalar uchun endi talab qilinmaydigan ob'ektlarni 
olib tashlash orqali vaqti- vaqti bilan xotirani chiqaradi. 
Dart ilg'or axlat yig'ish sxemasidan va ob'ekt avlodlariga asoslangan xotirani 
ajratishdan foydalanadi. U xotirani ayniqsa qisqa muddatga ega bo'lgan ko'p sonli 
ob'ektlar uchun tez ajratadi. Bu Flutter kabi reaktiv foydalanuvchi interfeyslari 
uchun juda mos keladi, bu erda o'zgarmas vidjet daraxti har bir kadrda qayta 
tiklanadi. 
Ushbu quruvchi bilan Flutter foydalanuvchi interfeyslarini deklarativ uslubda 
ishlab chiqish uchun yaxshi. Biz ob'ektlarni yaratish uchun konstruktorlardan 
foydalanamiz va ulardan tartibni tasvirlash uchun foydalanamiz. Bundan tashqari, 
vidjetlarning o'zi juda engil va faqat ko'rsatish uchun ma'lumot beradi. 
Renderlashning o'zi boshqa qatlamlar tomonidan boshqariladi. 

Download 99.35 Kb.

Do'stlaringiz bilan baham:
  1   2   3   4   5   6   7




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