Flutter Notes


Channel's geo and language: not specified, not specified
Category: not specified


Avval bajaring.
Keyin to'g'ri bajaring.
Undan keyin esa yaxshiroq bajaring.
Android Notes : @android_notes_bek
Muallif : @Otabek_Nabijonov

Related channels  |  Similar channels

Channel's geo and language
not specified, not specified
Category
not specified
Statistics
Posts filter


Flutter in Action.pdf
15.3Mb
Flutter in action by Eric Windmill.

Kitob muallifining sayti : Link

Mabodo kimgadir kerak bo'lsa.


Dartda Stream turlari haqida.

Stream (oqim)-lar Dart tilining asosiy qismidir va Flutter asinxron dasturlashni boshqarish uchun ulardan foydalanadi.

Stream asinxron hodisa (event)-lar ketma-ketligi bo'lib, asosiy ish (execution)-ni bloklamasdan Flutter ilovasida user input, tarmoq so‘rovlari va boshqa asinxron vazifalarni bajarish uchun juda muhimdir.

Dart-da Stream-ning ikki turi mavjud :
1. Single Subscription Stream.
2. Broadcast Stream.

Single Subscription. (yagona ulanish).
Bu turdagi Stream-lar faqat bitta tinglovchi (listener)-ga stream-ni tinglash imkonini beradi. Tinglovchi ulanganidan keyin boshqa hech bir tinglovchi bir xil stream-ga ulana olmaydi.

Broadcast.
Boshqa tomondan, Broadcast Stream-lar bir nechta tinglovchilarga bir xil stream-ga ulanish imkonini beradi. Bu bir vaqtning o'zida dasturingizning bir nechta qismlariga voqea (event)-larni translyatsiya qilmoqchi bo'lsangiz foydali bo'ladi.

Manba : Link

#Flutter


Flutterda matn hajmini o'zgarmas qilish.

Qurilma parametri orqali matn hajmini o'zgartirish orqali dasturimizda ham o'zgarishlar bo'ladi. Buni oldini olish uchun esa biz MediaQuery-ning "textScaleFactor" parametriga 1.0 qiymat beramiz.

Manba : Link

#Flutter


Flutterda Freezed package haqida.

@android_bek/flutterda-freezed-package-haqida-845666b77f84' rel='nofollow'>https://medium.com/@android_bek/flutterda-freezed-package-haqida-845666b77f84

#Flutter




Flutterda Wrap vidjet haqida.

Wrap o'z bolalarini birma-bir, Row yoki Column-ga o'xshatib qo'yadi. Ammo bo'sh joy tugagach, u keyingi qatorga o'tadi.

Masalan, bizda Row-da 3 ta Container bor, lekin gorizontal joy yetarli bo'lmay qolganda "Overflowed by xxx Pixels" xabariga duch keldik, chunki flutter vidjetni ekranda tartibga sola olmadi.

Wrap vidjeti barcha bolalarni berilgan yo'nalishga (hor/ver) qarab tartibga soladi va bo'sh joy tugasa, keyingi qatorga o'tadi.

Parametrlari :

1. direction - Wrap ichidagi vidjetlar gorizontal yoki vertikal joylashishini belgilaydi.
2. alignment - bola vidjetlar Wrap ichida qanday holatda joylashishini belgilaydi.
3. spacing - bola vidjetlar asosiy o'q (main axis) bo'yicha joy ajratilishi uchun.
4. runspacing - bola vidjetlar ko'ndalang o'q (cross axis) bo'yicha joy ajratilishi uchun qiymat qabul qiladi.

Manba : @apmntechdev/flutter-wrap-widget-c4fa670ed277' rel='nofollow'>Link

#Flutter


Flutterda Expanded, Flexible va Spacer vidjetlar haqida.

Flutter-da bu 3 ta vidjetlar responsiv mobil ilovalarni yaratish uchun ishlatiladi, ammo ba'zi farqli tomonlari bor.

Flexible.
Bu vidjet o'zidan tepadagi ota vidjetdagi barcha mavjud bo'sh joyni egallaydi. flex parametriga qiymat berish orqali qancha joyni egallashini belgilash mumkin.

Expanded.
Bu vidjet Flexible vidjetdan voris olgan (extend) va o'zidan tepadagi ota vidjetdagi barcha mavjud bo'sh joyni egallaydi. Flexible va Expanded vidjetlar o'rtasidagi muhim farqlardan biri shundaki, Flexible o'z farzand (ichidagi bola vidjet)-larini o'zi bilan bir xil o'lchamni olishga majburlamaydi, Expanded esa aksincha.

Spacer.
Bu vidjet Expanded vidjetga o‘xshaydi, chunki u barcha mavjud bo‘sh joyni egallaydi. Asosiy farq shundaki, u bola (child) vidjet olmaydi, shunchaki bo'sh joyni egallaydi.

Manba : @nkshah2/flutter-flexible-widgets-flexible-and-expanded-348854227a2a' rel='nofollow'>Link

#Flutter


Flutterda Screenshot olishni taqiqlash.

Android uchun MainActivity fayl ichini 1-chi rasmdagidek o'zgartiramiz.

IOS uchun esa AppDelegate.swift fayl ichini 2-chi rasmdagidek.

Flutterda Screenshot olishni taqiqlash uchun flutter_windowmanager paket ham mavjud ammo u faqat Android uchun ishlaydi.

Manba : Link

#Flutter


Flutterda Stack va IndexedStack vidjet haqida.

Stack - vidjeti bizga bir nechta vidjetlarni bir-biriga ustma-ust joylashtirish imkonini beradi. Bu vidjet bir nechta bola (children) vidjetlarni o'z ichiga oladi.

Birinchida turgan bola vidjet qatlamning eng tagida, Oxirida turgan bola vidjet esa qatlamning eng boshida joylashadi.

Stack ichida vidjetlarni Align yoki Positioned vidjetlar orqali joylashuvini belgilashimiz mumkin. Default holatda esa vidjet top-left burchakga joylashadi.

IndexedStack - vidjeti index qiymatiga ko'ra bir vaqtda bola vidjet listidan faqat bittasini ekranda joylashtiradi. Bu vidjet asosan dasturda turli xil ekran yoki sahifalar (pages) bilan ishlaganda foydalidir.

Qo'shimcha manbalar :
1. Link
2. Link

#Flutter


Dartda "mixin", "mixin class" va "abstract mixin class" haqida.

Mixin - bu o'zida o'zgaruvchi va metodlarga ega bo'lgan oddiy class-ga o'xshash lekin ba'zi farqli tomonlari mavjud.

Mixin-dan obyekt olib bo'lmaydi. Bir class, "with" kalit so'zi orqali, bir nechta Mixin-larni qo'shib olishi mumkin, bu orqali kodni qayta ishlatish va toza kodga ega bo'lish mumkin. Mixin-ni chegaralash uchun "on" kalit so'zi orqali chegaralashimiz mumkin.

Mixin class - bu oddiy class-ga mixin imkoniyati berilganidir.

Abstract mixin class - bu mixin class-da abstract-lik xususiyati, ya'ni abstract metodlarga ega bo'lish imkonini beradi.

Official doc : Link

#Dart


Dartda "static" kalit so'zi haqida.

Static kalit so'z xotirada malumotning yagonaligini taminlaydi. Static kalit so'z class-ning maydonlari va metodlariga qo'llanilishi mumkin.

Statik o'zgaruvchilar va metodlar class-ga tegishli, obyektga emas va class ichida e'lon qilinadi. Class-ning nomi bilan static o'zgaruvchi va metodlarga murojaat qilish mumkin.

Static metod ichida faqatgina class-ning static o'zgaruvchilariga murojaat qilish mumkin.

Official doc : Link

#Dart


Flutterda orientatsiya o'zgarishlarini aniqlash.

Flutter dasturimizda orientatsiya o'zgarishlarini handle qilishning 2 usuli mavjud.

1. usul :
OrientationBuilder widget (yuqoridagi rasm).

2. usul :
MediaQuery.of(context).orientation

Agar orientatsiyani o'chirib qo'ymoqchi bo'lsangiz, main metod ichida, runApp-dan oldin :

SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
Manba : Link

#Flutter


Dartda Sealed class haqida.

Dart 3-dan boshlab sealed class-lar taqdim etilgan. Sealed class, dasturchilarga cheklangan sinf ierarxiyasini yaratishga imkon beradi. Oddiy class-dan farqli o'laroq, sealed class, faqat bitta fayl ichida extend qilish mumkin.

Sealed class cheklangan class-lar to'plami uchun asosiy (base) class bo'lib xizmat qiladi va uning barcha pastki class-lari, sealed class bilan bir xil faylda e'lon qilinishi kerak.

Cheklangan meros (limited inheritance) : sealed class, meros ierarxiyasini cheklaydi, bu esa kompilyatsiya vaqtida barcha mumkin bo'lgan kichik sinflar (subclass) ma'lum bo'lishini ta'minlaydi.

Enum-dan farqli tomonlaridan yana biri, sealed class-lar, a'zo (member) o'zgaruvchilari va funksiyalariga ham ega bo'lishingiz mumkin.

Official doc : Link

#Dart


Flutterda Getit yordamida bog’liqlikni davolaymiz.

@android_bek/flutterda-getit-yordamida-bogliqlikni-davolaymiz-3a088bb7101b' rel='nofollow'>https://medium.com/@android_bek/flutterda-getit-yordamida-bogliqlikni-davolaymiz-3a088bb7101b

#Flutter


Flutterda funksional xatoliklarni boshqarish.

@android_bek/flutterda-funksional-xatoliklarni-boshqarish-8cb0ae8831dc' rel='nofollow'>https://medium.com/@android_bek/flutterda-funksional-xatoliklarni-boshqarish-8cb0ae8831dc

#Flutter


Dartda Generic haqida qisqacha.

Dart-dagi Generic-lar xavfsizlik turi (type safety)-ni yo'qotmasdan har xil turlar bilan ishlashi mumkin bo'lgan qayta foydalanish mumkin bo'lgan kodni yozish usulini taqdim etadi.

1. Dart konventsiya sifatida E, T, S, K va V kabi turdagi o'zgaruvchilar uchun bir harfli nomlardan foydalanadi.

2. Generic ko'pincha type-safety uchun talab qilinadi. Generic turlarni to'g'ri belgilash kodni yaxshiroq bo'lishiga olib keladi va ular kodning takrorlanishini kamaytirish uchun ham ishlatiladi.

3. Generic-lar odatda Collection, Stream va Future-lar kabi Dartning asosiy kutubxonalarida keng qo'llaniladi. To'plamlarda generic-lardan foydalanish to'plamdagi har bir element kutilgan turdagi bo'lishini ta'minlashga yordam beradi.

4. Dart kompilyatsiya vaqtida generic metodning generic toifasini berishni majburlash imkonini beradi. Toifa parametridagi cheklovlarni belgilash uchun "extends" dan foydalanishingiz mumkin.

Official doc : Link

#Dart






"WidgetsFlutterBinding.ensureInitialized" o'zi nega kerak ?

kod :
WidgetsFlutterBinding.ensureInitialized();

Flutter proyektda, odatda yuqoridagi kodni kiritish tavsiya etiladi. "main()" funksiyasida, "runApp()" ni chaqirishdan oldin yoziladi. Biroq, texnik jihatdan ushbu kodsiz dasturni ishga tushirish mumkin.

WidgetsFlutterBinding.ensureInitialized() - Ilovani ishga tushirishdan oldin Flutter framework to'g'ri ishga tushirilganligini ta'minlash uchundir. Ilovaning to'g'ri ishlashi uchun zarur bo'lgan GestureBinding, ServicesBinding va SchedulerBinding kabi turli xil ulanishlar (bindings)-ni ishga tushiradi.

Bu kod ba'zi hollarda, kutilmagan xatti-harakatlar (behavior) yoki error-larga olib kelishi mumkin, ayniqsa ilovangiz Flutter framework-ni to'liq ishga tushirishni talab qiladigan ba'zi xususiyatlar yoki plugin-larga tayangan bo'lsa.

Yuqoridagi kodni qo'shmasangiz, duch kelishingiz mumkin bo'lgan ba'zi muammolar :

1. Firebase Initialization : Agar ilovangiz Firestore yoki Autentifikatsiya kabi Firebase xizmatlaridan foydalansa, yuqoridagi kodni yozmaslik, "No Firebase App "[DEFAULT]" has been created" kabi xatolarga olib kelishi mumkin. Firebase ishga tushirilishi odatda "Firebase.initializeApp()"-ni chaqirishdan oldin Flutter framework-ni to'liq ishga tushirishni talab qiladi.

2. Platform channels : Agar ilovangiz native kod bilan bog'lanish uchun platforma channel-dan foydalansa, yuqoridagi kodni yozmaslik, platformaga xos xususiyatlar yoki API-larga kirishga urinishda muammolarga olib kelishi mumkin.

3. App check : Agar ilovangiz Firebase App Check-dan foydalansa, yuqoridagi kodni yozmaslik, App check-ni yoqishga urinayotganda xatoliklarga olib kelishi mumkin.

Dasturni yuqoridagi kodsiz ishga tushirish texnik jihatdan mumkin bo'lsa-da, Flutter framework-ning to'g'ri ishga tushirilishini ta'minlash hamda plugin-lar yoki platformaga xos xususiyatlar bilan bog'liq yuzaga kelishi mumkin bo'lgan muammolarni oldini olish uchun odatda uni qo'shish tavsiya etiladi.

Official doc : Link

#Flutter


Dart-da Iterable metodlari (5-qism).

1. where()
- maxsus holatga mos keladigan barcha elementlarni alohida Iterable sifatida olish uchun ishlatiladi.

2. map() - metod orqali Iterable-dagi har bir element bo'ylab yurib chiqib, yangi qiymat bilan almashtirish imkonini beradi.

Manba : Link

#Dart

20 last posts shown.

34

subscribers
Channel statistics