Практическая работа-6 Тема: Установка и настройка Android Studio для программирования на фреймворке Flutter
Download 99.35 Kb. Pdf ko'rish
|
пр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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling