Forwarded from IT with Bobur👨💻
Flutterda Debounce va Throttle haqida.
Ushbu usullar ilovamizni samaraliroq ishlashini taʼminlash va ortiqcha resurs iste'molini oldini olishda juda muhim o‘rin tutadi.
Debounce – bu funksiya qisqa vaqt ichida qayta-qayta chaqirilishining oldini olish uchun qo‘llaniladigan usul. Masalan, foydalanuvchi matn kiritayotganda, har bir belgini yozishi bilan API so‘rovlari yuborilsa, serverga keraksiz yuk tushadi. Debounce yordamida esa, foydalanuvchi ma'lum vaqt davomida yozishni to‘xtatgach, bitta so‘rov yuboriladi. Shu tarzda, APIga bo‘lgan murojaatlar sezilarli darajada kamayadi va ilovaning ishlash samaradorligi oshadi.
Throttle – bu funksiya belgilangan vaqt oralig‘ida maksimal bitta marta chaqirilishni kafolatlaydi. Bu usul ayniqsa scroll hodisalari yoki tugmani bosish kabi tez-tez yuz beradigan voqealarda qo‘llaniladi. Misol uchun, foydalanuvchi cheksiz scroll qilganda, ilova har kichik scroll uchun yangilanishni amalga oshirishi o‘rniga, throttle yordamida yangilanishlar ma'lum intervallarda yuz beradi. Natijada, ilovangizning javob berish tezligi va ishlash samaradorligi yanada barqaror bo‘ladi.
Ushbu yondashuvlar yordamida siz ilovangizdagi keraksiz va tez-tez yuz beradigan so‘rovlar sonini kamaytirib, tizim resurslarini optimal darajada ishlatishingiz mumkin.
#Flutter
Ushbu usullar ilovamizni samaraliroq ishlashini taʼminlash va ortiqcha resurs iste'molini oldini olishda juda muhim o‘rin tutadi.
Debounce – bu funksiya qisqa vaqt ichida qayta-qayta chaqirilishining oldini olish uchun qo‘llaniladigan usul. Masalan, foydalanuvchi matn kiritayotganda, har bir belgini yozishi bilan API so‘rovlari yuborilsa, serverga keraksiz yuk tushadi. Debounce yordamida esa, foydalanuvchi ma'lum vaqt davomida yozishni to‘xtatgach, bitta so‘rov yuboriladi. Shu tarzda, APIga bo‘lgan murojaatlar sezilarli darajada kamayadi va ilovaning ishlash samaradorligi oshadi.
Throttle – bu funksiya belgilangan vaqt oralig‘ida maksimal bitta marta chaqirilishni kafolatlaydi. Bu usul ayniqsa scroll hodisalari yoki tugmani bosish kabi tez-tez yuz beradigan voqealarda qo‘llaniladi. Misol uchun, foydalanuvchi cheksiz scroll qilganda, ilova har kichik scroll uchun yangilanishni amalga oshirishi o‘rniga, throttle yordamida yangilanishlar ma'lum intervallarda yuz beradi. Natijada, ilovangizning javob berish tezligi va ishlash samaradorligi yanada barqaror bo‘ladi.
Ushbu yondashuvlar yordamida siz ilovangizdagi keraksiz va tez-tez yuz beradigan so‘rovlar sonini kamaytirib, tizim resurslarini optimal darajada ishlatishingiz mumkin.
#Flutter
👏4🔥2👍1👎1
Flutter | Dev
https://play.google.com/store/apps/details?id=uz.tic_tac_toe&pcampaignid=web_share
Assalomu Alaykum hammaga vanihoyat keyingi app play marketga chiqdi🥳🎉🎉🎉🎉
bu O'sha mashxur Tic Tac Toe-infinite qisqacha qilib aytganda x 0 o'yini bir tortib o'ynab ko'ringlar sizlarga albatta yoqadi
bu O'sha mashxur Tic Tac Toe-infinite qisqacha qilib aytganda x 0 o'yini bir tortib o'ynab ko'ringlar sizlarga albatta yoqadi
👍4👏2👎1
Ertalab sahar turib, ro’za tutayotgan birodarim,
Ramazon muborak bo’lsin, qalbing nurga to’lsin,
Duolaringiz qabul bo’lib, sabringiz mukofot bo’lsin,
Allohning rahmati har doim sizga yor bo’lsin!😌
Ramazon muborak bo’lsin, qalbing nurga to’lsin,
Duolaringiz qabul bo’lib, sabringiz mukofot bo’lsin,
Allohning rahmati har doim sizga yor bo’lsin!😌
🥰7👎1
Forwarded from MobilDasturchi.Uz (Azizbek Asqaraliyev)
Dart 3.8 yangilik! 🚀
Endi Null-aware elements yordamida kolleksiyalarda null tekshiruvini ancha qisqartirish mumkin!
Masalan, quyidagi kod:
endi shunday yoziladi:
Yuqoridagi ?widget.child yozuvi null bo‘lmagan taqdirda faqat widget.child ni qo‘shadi. Kode ancha ixcham va tushunarli bo‘ldi!
Siz bu "shirin" imkoniyatni kutyapsizmi? 🫠
👍 – Ha, albatta!
👌 – Chiqqanda ko‘ramiz
👎 – Foydasini ko‘rmayapman
@dasturchiMobile
Endi Null-aware elements yordamida kolleksiyalarda null tekshiruvini ancha qisqartirish mumkin!
Masalan, quyidagi kod:
Stack(
fit: StackFit.expand,
children: [
const AbsorbPointer(),
if (widget.child != null) widget.child!,
],
)
endi shunday yoziladi:
Stack(
fit: StackFit.expand,
children: [
const AbsorbPointer(),
?widget.child,
],
)
Yuqoridagi ?widget.child yozuvi null bo‘lmagan taqdirda faqat widget.child ni qo‘shadi. Kode ancha ixcham va tushunarli bo‘ldi!
Siz bu "shirin" imkoniyatni kutyapsizmi? 🫠
👍 – Ha, albatta!
👌 – Chiqqanda ko‘ramiz
👎 – Foydasini ko‘rmayapman
@dasturchiMobile
👍4🆒3👎2
FutureBuilder Widgeti Haqida 🚀
FutureBuilder – Flutter’da Future obyektining natijasiga asoslangan UI yaratish uchun ishlatiladigan ajoyib widget! 🌟 U asinxron ma'lumotlarni yuklash va natijaga qarab turli xil UI elementlarini ko‘rsatishda sizga yordam beradi. ⏳
FutureBuilder Ishlash Tamoyili ⚙️
FutureBuilder berilgan Future obyektining holatiga qarab UI ni qayta chizadi:
ConnectionState.waiting – Ma’lumot yuklanayotgan bo‘lsa ⏳
ConnectionState.done – Ma’lumot yuklanib bo‘ldi ✅
snapshot.hasError – Agar xatolik yuz bersa ❌
snapshot.hasData – Agar muvaffaqiyatli natija qaytsa 🎉
FutureBuilder dan Foydalanish Misoli 💻
FutureBuilder Ning Afzalliklari 🌟
UI elementlarini dinamik yangilaydi 🔄
Asinxron ma'lumotlarni oson boshqaradi 🛠️
Yuklanish holatini ifodalashni soddalashtiradi ✨
Xulosa 📌
Agar ilovangizda Future yordamida ma’lumot olish kerak bo‘lsa va natijaga qarab UI ni dinamik tarzda yangilash zarur bo‘lsa, FutureBuilder eng yaxshi yechimdir! 🚀 Ushbu widget yordamida asinxron operatsiyalar bilan ishlash osonlashadi va foydalanuvchilarga qulay interfeys yaratish imkoniyati paydo bo‘ladi. 🎯
FutureBuilder – Flutter’da Future obyektining natijasiga asoslangan UI yaratish uchun ishlatiladigan ajoyib widget! 🌟 U asinxron ma'lumotlarni yuklash va natijaga qarab turli xil UI elementlarini ko‘rsatishda sizga yordam beradi. ⏳
FutureBuilder Ishlash Tamoyili ⚙️
FutureBuilder berilgan Future obyektining holatiga qarab UI ni qayta chizadi:
ConnectionState.waiting – Ma’lumot yuklanayotgan bo‘lsa ⏳
ConnectionState.done – Ma’lumot yuklanib bo‘ldi ✅
snapshot.hasError – Agar xatolik yuz bersa ❌
snapshot.hasData – Agar muvaffaqiyatli natija qaytsa 🎉
FutureBuilder dan Foydalanish Misoli 💻
future: response,
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return const CircularProgressIndicator(); // Yuklanmoqda ⏳
} else if (snapshot.hasError) {
return Text("Xatolik yuz berdi: ${snapshot.error}"); // Xatolik ❌
} else {
return Text(
snapshot.data ?? "Ma'lumot yo‘q", // Ma'lumot yo‘q bo‘lsa 😢
style: const TextStyle(fontSize: 18),
);
}
},
)
FutureBuilder Ning Afzalliklari 🌟
UI elementlarini dinamik yangilaydi 🔄
Asinxron ma'lumotlarni oson boshqaradi 🛠️
Yuklanish holatini ifodalashni soddalashtiradi ✨
Xulosa 📌
Agar ilovangizda Future yordamida ma’lumot olish kerak bo‘lsa va natijaga qarab UI ni dinamik tarzda yangilash zarur bo‘lsa, FutureBuilder eng yaxshi yechimdir! 🚀 Ushbu widget yordamida asinxron operatsiyalar bilan ishlash osonlashadi va foydalanuvchilarga qulay interfeys yaratish imkoniyati paydo bo‘ladi. 🎯
👍4👎2🆒2
🔥 Object-Oriented Programming (OOP) nima?
OOP – bu dart dasturlash tilining asosiy qismi bo‘lib, kodni obyektlar asosida tashkil qilishga imkon beradi. Har bir obyekt o‘zining xususiyatlari (properties) va metodlari (functions) ga ega bo‘ladi.
📌 OOPning asosiy afzalliklari:
✅ Katta loyihalarda kodni tartibli saqlash.
✅ Dasturiy ta’minotni oson kengaytirish.
✅ Kodni qayta foydalanish imkoniyati.
📌 OOP ning 4 asosiy prinsipi:
✅ Encapsulation (Inkapsulyatsiya) – Ma’lumotlarni va funksionallikni yashirish, faqat kerakli qismlarga ruxsat berish.
✅ Inheritance (Meros olish) – Bir sinfning boshqa sinfdan kodni meros qilib olishi va uni qayta ishlatishi.
✅ Polymorphism (Polimorfizm) – Bir xil metod yoki funksiyaning turli sinflarda har xil ishlashi.
✅ Abstraction (Abstraksiya) – Murakkab tafsilotlarni yashirib, faqat muhim qismlarni ochiq qoldirish.
🔥1️⃣ Encapsulation (Inkapsulyatsiya)
📌 Encapsulation foydalari:
✅ Ma’lumotlarni himoya qiladi.
✅ Kodni soddalashtiradi.
✅ Xatoliklarni kamaytiradi.
📝 Misol:
Tushuntirish:
🔹 _balance private (_ bilan boshlangan) – tashqaridan to‘g‘ridan-to‘g‘ri o‘zgartirib bo‘lmaydi.
🔹 deposit() va withdraw() metodlari orqali faqat ruxsat berilgan operatsiyalar bajariladi.
🔹 balance getter orqali hisobni faqat o‘qish mumkin.
OOP – bu dart dasturlash tilining asosiy qismi bo‘lib, kodni obyektlar asosida tashkil qilishga imkon beradi. Har bir obyekt o‘zining xususiyatlari (properties) va metodlari (functions) ga ega bo‘ladi.
📌 OOPning asosiy afzalliklari:
✅ Katta loyihalarda kodni tartibli saqlash.
✅ Dasturiy ta’minotni oson kengaytirish.
✅ Kodni qayta foydalanish imkoniyati.
📌 OOP ning 4 asosiy prinsipi:
✅ Encapsulation (Inkapsulyatsiya) – Ma’lumotlarni va funksionallikni yashirish, faqat kerakli qismlarga ruxsat berish.
✅ Inheritance (Meros olish) – Bir sinfning boshqa sinfdan kodni meros qilib olishi va uni qayta ishlatishi.
✅ Polymorphism (Polimorfizm) – Bir xil metod yoki funksiyaning turli sinflarda har xil ishlashi.
✅ Abstraction (Abstraksiya) – Murakkab tafsilotlarni yashirib, faqat muhim qismlarni ochiq qoldirish.
🔥1️⃣ Encapsulation (Inkapsulyatsiya)
📌 Encapsulation foydalari:
✅ Ma’lumotlarni himoya qiladi.
✅ Kodni soddalashtiradi.
✅ Xatoliklarni kamaytiradi.
📝 Misol:
double _balance = 0; // Private (yashirin) o‘zgaruvchi
// Getter - faqat o‘qish uchun
double get balance => _balance;
// Deposit - pul qo‘shish
void deposit(double amount) {
if (amount > 0) {
_balance += amount;
}
}
// Withdraw - pul yechish
void withdraw(double amount) {
if (amount > 0 && amount <= _balance) {
_balance -= amount;
}
}
}
void main() {
BankAccount account = BankAccount();
account.deposit(1000); // 1000 so‘m qo‘shildi
account.withdraw(500); // 500 so‘m yechildi
print("Hisobingiz: \${account.balance} so‘m"); // 500 so‘m
}
Tushuntirish:
🔹 _balance private (_ bilan boshlangan) – tashqaridan to‘g‘ridan-to‘g‘ri o‘zgartirib bo‘lmaydi.
🔹 deposit() va withdraw() metodlari orqali faqat ruxsat berilgan operatsiyalar bajariladi.
🔹 balance getter orqali hisobni faqat o‘qish mumkin.
🔥7👎2
🔥 2️⃣ Inheritance (Meros olish)
Inheritance – bitta sinf boshqa sinfning xususiyatlari va metodlarini meros qilib olishi.
📌 Inhertance foydalari
✅ Kodning qayta foydalanish imkonini beradi – Asosiy sinf (parent class) yaratib, undan boshqa sinflar meros olishi mumkin. Har safar yangi kod yozishga hojat qolmaydi.
✅ Loyiha tuzilmasini soddalashtiradi – Barcha umumiy xususiyatlar va metodlar bitta bazaviy sinfda jamlanadi.
✅ Dastur kengaytiriluvchan bo‘ladi – Yangi xususiyat qo‘shish osonlashadi.
📝 Misol:
🎯 Tushuntirish
✅ Animal – umumiy sinf bo‘lib, barcha hayvonlar uchun ishlatiladi.
✅ Dog va Cat – Animal sinfidan meros olgan va makeSound() metodini o‘ziga xos tarzda o‘zgartirgan (override).
✅ main() funksiyada har ikkala sinfning makeSound() metodi chaqirilganda, ularning o‘ziga xos ovozi chiqadi.
Inheritance – bitta sinf boshqa sinfning xususiyatlari va metodlarini meros qilib olishi.
📌 Inhertance foydalari
✅ Kodning qayta foydalanish imkonini beradi – Asosiy sinf (parent class) yaratib, undan boshqa sinflar meros olishi mumkin. Har safar yangi kod yozishga hojat qolmaydi.
✅ Loyiha tuzilmasini soddalashtiradi – Barcha umumiy xususiyatlar va metodlar bitta bazaviy sinfda jamlanadi.
✅ Dastur kengaytiriluvchan bo‘ladi – Yangi xususiyat qo‘shish osonlashadi.
📝 Misol:
class Animal {
void makeSound() {
print("Noma’lum tovush");
}
}
// Dog sinfi Animal dan meros oladi
class Dog extends Animal {
@override
void makeSound() {
print("Vov-vov!"); // Itning ovozi
}
}
// Cat sinfi ham Animal dan meros oladi
class Cat extends Animal {
@override
void makeSound() {
print("Miyov-miyov!"); // Mushukning ovozi
}
}
void main() {
Animal myDog = Dog();
Animal myCat = Cat();
myDog.makeSound(); // "Vov-vov!"
myCat.makeSound(); // "Miyov-miyov!"
}
🎯 Tushuntirish
✅ Animal – umumiy sinf bo‘lib, barcha hayvonlar uchun ishlatiladi.
✅ Dog va Cat – Animal sinfidan meros olgan va makeSound() metodini o‘ziga xos tarzda o‘zgartirgan (override).
✅ main() funksiyada har ikkala sinfning makeSound() metodi chaqirilganda, ularning o‘ziga xos ovozi chiqadi.
👍6❤🔥3👎2
🔥 3️⃣ Polymorphism (Polimorfizm)
Polimorfizm – bir xil metod turli sinflarda har xil tarzda ishlashi mumkinligini anglatadi. Bu prinsip kodni yanada moslashuvchan va kengaytiriladigan qiladi.
📌 Polimorfizmning foydalari
✅ Kodning moslashuvchanligi – Turli obyektlar bir xil metodni o‘z uslubida ishlatadi.
✅ Kodni qayta ishlatish – Bir xil interfeysdan foydalanib, har xil sinflarni yaratish imkonini beradi.
✅ Oson kengaytirish – Yangi sinflar qo‘shilganda, mavjud kodni o‘zgartirish shart emas.
📝 Misol:
🎯 Tushuntirish
🔹 Payment – abstrakt sinf bo‘lib, barcha to‘lov tizimlari uchun umumiy metod (processPayment) belgilaydi.
🔹 ClickPayment, PaymePayment, VisaPayment – har biri Payment sinfidan meros oladi va processPayment() metodini o‘z usulida override qiladi.
🔹 makePayment() funksiyasi har qanday to‘lov turini qabul qiladi, va shu obyektning processPayment() metodini chaqiradi.
✅ Endi yangi to‘lov tizimi qo‘shilsa, asosiy kodni o‘zgartirish shart emas! Faqat yangi sinf qo‘shamiz va polimorfizm ishlaydi. 🚀
Polimorfizm – bir xil metod turli sinflarda har xil tarzda ishlashi mumkinligini anglatadi. Bu prinsip kodni yanada moslashuvchan va kengaytiriladigan qiladi.
📌 Polimorfizmning foydalari
✅ Kodning moslashuvchanligi – Turli obyektlar bir xil metodni o‘z uslubida ishlatadi.
✅ Kodni qayta ishlatish – Bir xil interfeysdan foydalanib, har xil sinflarni yaratish imkonini beradi.
✅ Oson kengaytirish – Yangi sinflar qo‘shilganda, mavjud kodni o‘zgartirish shart emas.
📝 Misol:
abstract class Payment {
void processPayment(double amount);
}
// Click to‘lov tizimi
class ClickPayment extends Payment {
@override
void processPayment(double amount) {
print("✅ Click orqali $amount so‘m muvaffaqiyatli to‘landi.");
}
}
// Payme to‘lov tizimi
class PaymePayment extends Payment {
@override
void processPayment(double amount) {
print("📲 Payme orqali $amount so‘m to‘landi. Rahmat!");
}
}
// Visa kartasi orqali to‘lov
class VisaPayment extends Payment {
@override
void processPayment(double amount) {
print("💳 Visa orqali $amount so‘m yechildi. Xizmatdan foydalaning!");
}
}
// To‘lovni amalga oshirish uchun funksiya
void makePayment(Payment payment, double amount) {
payment.processPayment(amount);
}
void main() {
makePayment(ClickPayment(), 100000); // ✅ Click orqali 100000 so‘m muvaffaqiyatli to‘landi.
makePayment(PaymePayment(), 200000); // 📲 Payme orqali 200000 so‘m to‘landi. Rahmat!
makePayment(VisaPayment(), 150000); // 💳 Visa orqali 150000 so‘m yechildi. Xizmatdan foydalaning!
}
🎯 Tushuntirish
🔹 Payment – abstrakt sinf bo‘lib, barcha to‘lov tizimlari uchun umumiy metod (processPayment) belgilaydi.
🔹 ClickPayment, PaymePayment, VisaPayment – har biri Payment sinfidan meros oladi va processPayment() metodini o‘z usulida override qiladi.
🔹 makePayment() funksiyasi har qanday to‘lov turini qabul qiladi, va shu obyektning processPayment() metodini chaqiradi.
✅ Endi yangi to‘lov tizimi qo‘shilsa, asosiy kodni o‘zgartirish shart emas! Faqat yangi sinf qo‘shamiz va polimorfizm ishlaydi. 🚀
🔥8👎2🆒2
Flutter | Dev
Soon.. in playmarket
🚀 Google Play bilan navbatdagi sinov!
✅ 14 kunlik yopiq testdan o‘tdim! ilovam qachon chiqadi
⏳ Google: "Endi yana bir hafta kut..."
🙃 Men: "Tezroq chiqsin ilovam!"
😂 Google: "Bizda shoshilish yo‘q, sabrli bo‘l..."
📌 Xulosa: Dasturchilik nafaqat kod yozish, balki kutish bo‘yicha ham mahorat talab qilarkan! 😆
#Flutter #GooglePlay #DevLife
✅ 14 kunlik yopiq testdan o‘tdim! ilovam qachon chiqadi
⏳ Google: "Endi yana bir hafta kut..."
🙃 Men: "Tezroq chiqsin ilovam!"
😂 Google: "Bizda shoshilish yo‘q, sabrli bo‘l..."
📌 Xulosa: Dasturchilik nafaqat kod yozish, balki kutish bo‘yicha ham mahorat talab qilarkan! 😆
#Flutter #GooglePlay #DevLife
🤣7👎2
Flutter | Dev
🚀 Google Play bilan navbatdagi sinov! ✅ 14 kunlik yopiq testdan o‘tdim! ilovam qachon chiqadi ⏳ Google: "Endi yana bir hafta kut..." 🙃 Men: "Tezroq chiqsin ilovam!" 😂 Google: "Bizda shoshilish yo‘q, sabrli bo‘l..." 📌 Xulosa: Dasturchilik nafaqat kod yozish…
This media is not supported in your browser
VIEW IN TELEGRAM
😁4👎3
Do'stona maslaxat tinchgina eskiroq play console akk olavering qimmatroq bo'lsa ham
😎5👎3
Forwarded from IT with Bobur👨💻
Flutter interview uchun savollar:
Dart bilan bog'liq savollar
1. Dart tilida
2.
3. Dart'da null safety nima va u qanday amalga oshiriladi?
4.
5. Dart'da
Flutter asoslari
6. Flutter'da
7. Flutter'da
8.
9. Flutter'da widget tree nima va u qanday tuzilgan?
10.
UI va Layout
11. Flutter'da
12.
13. Flutter'da custom UI yaratish uchun
14.
15. Responsive dizaynni Flutter'da qanday amalga oshirasiz?
State Management
16. Flutter'da state management uchun qanday yondashuvlar mavjud? Eng mashhurlarini sanab o'ting.
17.
18. BLoC pattern nima va u Flutter'da qanday qo'llaniladi?
19.
20. State management uchun
Networking va API
21. Flutter'da
22. REST API bilan ishlashda JSON ma'lumotlarni qanday parse qilasiz?
23. Flutter'da
24. API chaqiruvlari natijasini caching qilish uchun qanday yondashuvlardan foydalanasiz?
25. WebSocket’lardan Flutter’da qanday foydalanish mumkin?
Ma'lumotlar bazasi va saqlash
26. Flutter'da
27.
28. Flutter'da Hive va Moor o'rtasidagi farqlarni tushuntiring.
29. Ma'lumotlarni local saqlash uchun qaysi usullarni afzal ko'rasiz va nima uchun?
30. Flutter'da fayllarni o'qish va yozishni qanday amalga oshirasiz?
Performans va optimizatsiya
31. Flutter'da ilova performansini qanday optimallashtirasiz?
32.
33. Flutter'da
34. Profilatsiya vositalaridan (masalan, Flutter DevTools) qanday foydalanasiz?
35. Flutter'da repaint va rebuild muammolarini qanday hal qilasiz?
Testing
36. Flutter'da unit testlarni qanday yozasiz? Misol keltiring.
37. Widget testlari va integration testlari o'rtasidagi farq nima?
38.
39. Flutter'da test coverage-ni qanday o'lchaysiz?
40. Test yozishda qanday best practicelarga amal qilasiz?
Ilova deploy va CI/CD
41. Flutter ilovasini Android uchun APK yoki AppBundle sifatida qanday build qilasiz?
42. iOS uchun Flutter ilovasini App Store’ga joylashtirish jarayonini tushuntiring.
43. Flutter'da `flavor`lardan qanday foydalanasiz va ular nima uchun kerak?
44. CI/CD uchun GitHub Actions bilan Flutter loyihasini qanday sozlaysiz?
45. Code signing muammolarini Flutter'da qanday hal qilasiz?
@ITwithBobur🚀
Dart bilan bog'liq savollar
1. Dart tilida
async va await qanday ishlaydi? Misol keltiring.2.
final va const o'rtasidagi farq nima? Qachon ishlatiladi?3. Dart'da null safety nima va u qanday amalga oshiriladi?
4.
List, Set va Map o'rtasidagi farqlarni tushuntiring.5. Dart'da
Future va Stream nimalar va ularning farqi nima?Flutter asoslari
6. Flutter'da
StatelessWidget va StatefulWidget o'rtasidagi farq nima? Misol bilan tushuntiring.7. Flutter'da
build metodi qanday ishlaydi va u nima uchun muhim?8.
setState funksiyasi nima qiladi va qachon ishlatiladi?9. Flutter'da widget tree nima va u qanday tuzilgan?
10.
MaterialApp va Scaffold widgetlarining vazifasi nima?UI va Layout
11. Flutter'da
Row va Column widgetlari qanday ishlaydi? MainAxisAlignment va CrossAxisAlignment nimalar?12.
Expanded va Flexible widgetlari o'rtasidagi farqni tushuntiring.13. Flutter'da custom UI yaratish uchun
CustomPainter qanday ishlatiladi?14.
Stack widgeti nima uchun ishlatiladi va qanday misollar keltira olasiz?15. Responsive dizaynni Flutter'da qanday amalga oshirasiz?
State Management
16. Flutter'da state management uchun qanday yondashuvlar mavjud? Eng mashhurlarini sanab o'ting.
17.
Provider paketidan foydalanishni qisqacha tushuntiring.18. BLoC pattern nima va u Flutter'da qanday qo'llaniladi?
19.
InheritedWidget qanday ishlaydi va qachon ishlatish kerak?20. State management uchun
Riverpod va GetX o'rtasidagi farqlarni taqqoslang.Networking va API
21. Flutter'da
http paketidan foydalanib API chaqiruvini qanday amalga oshirasiz?22. REST API bilan ishlashda JSON ma'lumotlarni qanday parse qilasiz?
23. Flutter'da
Dio va http paketlari o'rtasidagi farq nima?24. API chaqiruvlari natijasini caching qilish uchun qanday yondashuvlardan foydalanasiz?
25. WebSocket’lardan Flutter’da qanday foydalanish mumkin?
Ma'lumotlar bazasi va saqlash
26. Flutter'da
SharedPreferences qanday ishlaydi va qachon ishlatiladi?27.
sqflite yordamida SQLite bilan qanday ishlaysiz?28. Flutter'da Hive va Moor o'rtasidagi farqlarni tushuntiring.
29. Ma'lumotlarni local saqlash uchun qaysi usullarni afzal ko'rasiz va nima uchun?
30. Flutter'da fayllarni o'qish va yozishni qanday amalga oshirasiz?
Performans va optimizatsiya
31. Flutter'da ilova performansini qanday optimallashtirasiz?
32.
const konstruktorlar performansa qanday ta'sir qiladi?33. Flutter'da
ListView.builder va oddiy ListView o'rtasidagi farq nima?34. Profilatsiya vositalaridan (masalan, Flutter DevTools) qanday foydalanasiz?
35. Flutter'da repaint va rebuild muammolarini qanday hal qilasiz?
Testing
36. Flutter'da unit testlarni qanday yozasiz? Misol keltiring.
37. Widget testlari va integration testlari o'rtasidagi farq nima?
38.
mockito yordamida mock ob'ektlarni qanday yaratasiz?39. Flutter'da test coverage-ni qanday o'lchaysiz?
40. Test yozishda qanday best practicelarga amal qilasiz?
Ilova deploy va CI/CD
41. Flutter ilovasini Android uchun APK yoki AppBundle sifatida qanday build qilasiz?
42. iOS uchun Flutter ilovasini App Store’ga joylashtirish jarayonini tushuntiring.
43. Flutter'da `flavor`lardan qanday foydalanasiz va ular nima uchun kerak?
44. CI/CD uchun GitHub Actions bilan Flutter loyihasini qanday sozlaysiz?
45. Code signing muammolarini Flutter'da qanday hal qilasiz?
@ITwithBobur
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8😐2