#InheretedWidget
InheritedWidget, Flutterda widgetlar orqali ma'lumot almashish uchun ishlatiladigan vosita. Bu, boshqa widgetlarga ma'lumotni o'tkazishni ta'minlaydi. Oddiy holatda, sizning ilovangizdagi bir nechta widgetlarga bir xil ma'lumot kerak bo'lganda ishlatiladi va bu ma'lumotlarni har bir widget uchun alohida almashmasdan o'tkazishni ta'minlaydi.
InheritedWidget, Flutterda widgetlar orqali ma'lumot almashish uchun ishlatiladigan vosita. Bu, boshqa widgetlarga ma'lumotni o'tkazishni ta'minlaydi. Oddiy holatda, sizning ilovangizdagi bir nechta widgetlarga bir xil ma'lumot kerak bo'lganda ishlatiladi va bu ma'lumotlarni har bir widget uchun alohida almashmasdan o'tkazishni ta'minlaydi.
#ProxyWidget
ProxyWidget, Flutter'da foydalanuvchi interfeysning turli tomonlarini o'zgartirish uchun ishlatiladigan bir widgetdir.
Bu widget, mavjud bo'lgan bir widgetni qo'llab-quvvatlashadi va uning xulqini yoki ko'rinishini o'zgartiradi.
ProxyWidget, oddiy holatda bir widgetning mazmuni yoki xulqini o'zgartirish uchun ishlatiladi va unga to'liq qayta yaratishni istamaydigan holatlarda foydali bo'ladi.
ProxyWidget, quyidagi holatlarda foydalanilishi mumkin:
1) Bir widgetning xulqini yoki ko'rinishini o'zgartirishni xohlaganizda .
2) Bir widgetni qo'llab-quvvatlash va uning mazmuniga yoki xulqiga ta'sir qilishni kerak bo'lganda.
3) Bir widgetni kengaytirish yoki kamaytirishni istaysiz bo'lganda, ammo uni butunlay qayta yaratishni istamaysiz bo'lganda.
ProxyWidget foydalanishi misol quyidagi ko'rinishda bo'lishi mumkin:
——————————————————————-
dart
class MeningProxyWidgetim extends ProxyWidget {
MeningProxyWidgetim({
Key? key,
required Widget child,
required this.someData,
}) : super(key: key, child: child);
final String someData;
@override
void performRebuild() {
// Qayta yaratishni bajarish
super.performRebuild();
}
@override
void updateChild(Widget oldWidget, Widget newWidget) {
// Yangi bir widget oldinga keltirilganda bajariladigan harakatlar
super.updateChild(oldWidget, newWidget);
}
@override
Element createElement() {
// Element yaratish jarayoni
return MeningProxyElementim(this);
}
}
class MeningProxyElementim extends ProxyElement {
MeningProxyElementim(ProxyWidget widget) : super(widget);
// Element xususiyatlari va funksiyalari
}
——————————————————————-
Bu misolda, MeningProxyWidgetim deb nomlangan ProxyWidget yaratiladi. MeningProxyWidgetim widgeti, mavjud bo'lgan widgetni qo'llab-quvvatlaydi va uning xulqini yoki ko'rinishini o'zgartiradi. ProxyWidget foydalanuvchi interfeysi bo'yicha turli tomonlarni o'zgartirishda yordam beradi va bir widgetning mazmuniga ta'sir qilishni osonlashtiradi.
ProxyWidget, Flutter'da foydalanuvchi interfeysning turli tomonlarini o'zgartirish uchun ishlatiladigan bir widgetdir.
Bu widget, mavjud bo'lgan bir widgetni qo'llab-quvvatlashadi va uning xulqini yoki ko'rinishini o'zgartiradi.
ProxyWidget, oddiy holatda bir widgetning mazmuni yoki xulqini o'zgartirish uchun ishlatiladi va unga to'liq qayta yaratishni istamaydigan holatlarda foydali bo'ladi.
ProxyWidget, quyidagi holatlarda foydalanilishi mumkin:
1) Bir widgetning xulqini yoki ko'rinishini o'zgartirishni xohlaganizda .
2) Bir widgetni qo'llab-quvvatlash va uning mazmuniga yoki xulqiga ta'sir qilishni kerak bo'lganda.
3) Bir widgetni kengaytirish yoki kamaytirishni istaysiz bo'lganda, ammo uni butunlay qayta yaratishni istamaysiz bo'lganda.
ProxyWidget foydalanishi misol quyidagi ko'rinishda bo'lishi mumkin:
——————————————————————-
dart
class MeningProxyWidgetim extends ProxyWidget {
MeningProxyWidgetim({
Key? key,
required Widget child,
required this.someData,
}) : super(key: key, child: child);
final String someData;
@override
void performRebuild() {
// Qayta yaratishni bajarish
super.performRebuild();
}
@override
void updateChild(Widget oldWidget, Widget newWidget) {
// Yangi bir widget oldinga keltirilganda bajariladigan harakatlar
super.updateChild(oldWidget, newWidget);
}
@override
Element createElement() {
// Element yaratish jarayoni
return MeningProxyElementim(this);
}
}
class MeningProxyElementim extends ProxyElement {
MeningProxyElementim(ProxyWidget widget) : super(widget);
// Element xususiyatlari va funksiyalari
}
——————————————————————-
Bu misolda, MeningProxyWidgetim deb nomlangan ProxyWidget yaratiladi. MeningProxyWidgetim widgeti, mavjud bo'lgan widgetni qo'llab-quvvatlaydi va uning xulqini yoki ko'rinishini o'zgartiradi. ProxyWidget foydalanuvchi interfeysi bo'yicha turli tomonlarni o'zgartirishda yordam beradi va bir widgetning mazmuniga ta'sir qilishni osonlashtiradi.
Flutter
Flutter is a portable UI framework to build modern, native, and
reactive mobile applications for iOS and Android from a single
codebase. Flutter has also expanded development for desktop,
web, and embedded devices.
Flutter is a portable UI framework to build modern, native, and
reactive mobile applications for iOS and Android from a single
codebase. Flutter has also expanded development for desktop,
web, and embedded devices.
Skia
Flutter uses the Skia 2D rendering engine that works with different
hardware and software platforms
Flutter uses the Skia 2D rendering engine that works with different
hardware and software platforms
Dart
Dart - bu Flutter ilovalarini ishlab chiqish uchun ishlatiladigan til. Dart
tez ishlash uchun mahalliy kodga tuzilgan muddatidan oldin (AOT).
Dart kod o'zgarishlarini tezda ko'rsatish uchun o'z vaqtida (JIT) tuzilgan
Flutterning holatini qayta yuklash orqali.
Dart - bu Flutter ilovalarini ishlab chiqish uchun ishlatiladigan til. Dart
tez ishlash uchun mahalliy kodga tuzilgan muddatidan oldin (AOT).
Dart kod o'zgarishlarini tezda ko'rsatish uchun o'z vaqtida (JIT) tuzilgan
Flutterning holatini qayta yuklash orqali.
Deklarativ foydalanuvchi interfeysi (UI)
Flutter deklarativ xususiyatga ega va ilova holatini aks ettirish uchun foydalanuvchi interfeysini yaratadi. Holat o'zgarganda, UI qayta chiziladi. Flutter Dartdan foydalanadi
UI yaratish uchun.
Flutter deklarativ xususiyatga ega va ilova holatini aks ettirish uchun foydalanuvchi interfeysini yaratadi. Holat o'zgarganda, UI qayta chiziladi. Flutter Dartdan foydalanadi
UI yaratish uchun.
Widjet
Widjetlar Flutter ilovasining qurilish bloklari va har bir vidjet
foydalanuvchi interfeysining o'zgarmas deklaratsiyasi (UI).
Vidjetlar element yaratish uchun konfiguratsiyadir.
Widjetlar Flutter ilovasining qurilish bloklari va har bir vidjet
foydalanuvchi interfeysining o'zgarmas deklaratsiyasi (UI).
Vidjetlar element yaratish uchun konfiguratsiyadir.
Elementlar - bu ekranga o'rnatilgan (renderlangan) vidjetlar. Elementlar vidjet konfiguratsiyasi tomonidan yaratilgan.
Flutterda Element - widgetning hayotiy sikli davomida mavjud bo'lgan obyekt bo'lib, widgetni o'rnatadi va holatini saqlaydi. U widget va render obyektlar o'rtasidagi vositachi sifatida ishlaydi.
Asosiy funksiyalari:
Widgetni o'rnatish.
Widget daraxtida pozitsiyasini aniqlash.
Holatni saqlash (StatefulElement).
RenderObject yaratish va boshqarish.
Turlari:
StatelessElement: StatelessWidgetni o'rnatadi, holat yo'q.
StatefulElement: StatefulWidgetni o'rnatadi va holatni saqlaydi.
Elementlar widgetlarni o'rnatish, boshqarish va o'zgarishlarni kuzatib borish uchun ishlatiladi.
Flutterda Element - widgetning hayotiy sikli davomida mavjud bo'lgan obyekt bo'lib, widgetni o'rnatadi va holatini saqlaydi. U widget va render obyektlar o'rtasidagi vositachi sifatida ishlaydi.
Asosiy funksiyalari:
Widgetni o'rnatish.
Widget daraxtida pozitsiyasini aniqlash.
Holatni saqlash (StatefulElement).
RenderObject yaratish va boshqarish.
Turlari:
StatelessElement: StatelessWidgetni o'rnatadi, holat yo'q.
StatefulElement: StatefulWidgetni o'rnatadi va holatni saqlaydi.
Elementlar widgetlarni o'rnatish, boshqarish va o'zgarishlarni kuzatib borish uchun ishlatiladi.
RenderObject.
Flutterda RenderObject UI komponentlarini chizish, joylashtirish va o'lchash uchun javobgar bo'lgan asosiy qatlamdir. U uchta asosiy qatlamdan iborat render tizimining bir qismi bo'lib, ular:
Widgetlar: Interfeys dizayni va mantig'ini ifodalaydigan komponentlar.
Elementlar: Widgetlarni o'rnatish va ularga bog'langan holatlarni saqlash uchun ishlatiladi.
RenderObjectlar: Chizish, joylashtirish va o'lchashni amalga oshiradigan pastki qatlam.
RenderObject orqali Flutter UI komponentlarini ekranga chizadi va foydalanuvchi bilan interaktivlikni ta'minlaydi.
Dasturchilar odatda RenderObject bilan bevosita ishlamaydilar, chunki yuqori darajadagi widgetlar bu jarayonni o'z zimmasiga oladi. Lekin maxsus UI komponentlarini yaratishda RenderObject bilan ishlash zarur bo'lishi mumkin..
Flutterda RenderObject UI komponentlarini chizish, joylashtirish va o'lchash uchun javobgar bo'lgan asosiy qatlamdir. U uchta asosiy qatlamdan iborat render tizimining bir qismi bo'lib, ular:
Widgetlar: Interfeys dizayni va mantig'ini ifodalaydigan komponentlar.
Elementlar: Widgetlarni o'rnatish va ularga bog'langan holatlarni saqlash uchun ishlatiladi.
RenderObjectlar: Chizish, joylashtirish va o'lchashni amalga oshiradigan pastki qatlam.
RenderObject orqali Flutter UI komponentlarini ekranga chizadi va foydalanuvchi bilan interaktivlikni ta'minlaydi.
Dasturchilar odatda RenderObject bilan bevosita ishlamaydilar, chunki yuqori darajadagi widgetlar bu jarayonni o'z zimmasiga oladi. Lekin maxsus UI komponentlarini yaratishda RenderObject bilan ishlash zarur bo'lishi mumkin..
🔥1
Flutter 3.22 versiyasida quyidagi yangiliklar kiritildi:
Impeller Rendering Engine: Impeller rendering engine’ga katta takomillar kiritildi. Endi engine yangi blur effekt algoritmini ishlatadi, bu esa backdrop filtrlari uchun mipmaps’ni qo’llab-quvvatlaydi, bu esa vizual effektlarni yaxshilaydi. Bu iOS’da vizual effektlarni yaxshilaydi va CPU ishlatishini kamaytiradi.
WebAssembly Support: Hozirgi paytda Flutter’ning Web Assembly (Wasm) uchun qo’llab-quvvatlashi stabil holatga keldi.
Vertex AI for Firebase Integration: Bu yangi xususiyat ilovangizning samaradorligini va qobiliyatlarini oshirishingizga yordam beradi.
Deep Link Validator in DevTools: DevTools’ga yangi kuchli deep link validator kiritildi.
Android’s Predictive Back Gesture: Android’ning oldinga ko’rish darajasi bilan platforma navigatsiyasi kiritildi.
@mobileflutter
Impeller Rendering Engine: Impeller rendering engine’ga katta takomillar kiritildi. Endi engine yangi blur effekt algoritmini ishlatadi, bu esa backdrop filtrlari uchun mipmaps’ni qo’llab-quvvatlaydi, bu esa vizual effektlarni yaxshilaydi. Bu iOS’da vizual effektlarni yaxshilaydi va CPU ishlatishini kamaytiradi.
WebAssembly Support: Hozirgi paytda Flutter’ning Web Assembly (Wasm) uchun qo’llab-quvvatlashi stabil holatga keldi.
Vertex AI for Firebase Integration: Bu yangi xususiyat ilovangizning samaradorligini va qobiliyatlarini oshirishingizga yordam beradi.
Deep Link Validator in DevTools: DevTools’ga yangi kuchli deep link validator kiritildi.
Android’s Predictive Back Gesture: Android’ning oldinga ko’rish darajasi bilan platforma navigatsiyasi kiritildi.
@mobileflutter
🔥1
Forwarded from Asadbek Noyibjonov
O'zbek tilida Flutter bo'yicha sifatli ma'lumotlar juda kam. Ventions Teams kompaniyasida Senior Software Engineer bo'lib ishlovchi Abdulbosit aka, Junior darajasida Flutter dasturchilarni Senior darajaga olib chiqish uchun Flutter Geeks nomli blog ochibdilar.
Kanalda Flutter/Dart ga oid advanced mavzular yoritiladi.
👉 t.me/flutter_geek_uz
@asadbek
Kanalda Flutter/Dart ga oid advanced mavzular yoritiladi.
@asadbek
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Flutter Geeks
Biz junior Flutter dasturchilarni senior darajasiga olib chiqamiz!
1 .
Nima uchun Flutter boshqa mobil ilovalarni ishlab chiqish vositalaridan afzal?
Javobni yashirish
Flutter – bu bepul va ochiq manbali mobil UI tizimi bo‘lib, Google tomonidan 2017-yilning may oyida taqdim etilgan. Flutter faqat bitta kod bazasidan foydalangan holda mahalliy mobil ilovani ishlab chiqish imkonini beradi. Bu shuni anglatadiki, siz bir xil dasturlash tili va kod bazasidan (iOS va Android uchun) foydalangan holda ikkita alohida ilovani loyihalashingiz mumkin.
Flutter ko'p sabablarga ko'ra Java va React Native kabi boshqa mobil ilovalarni ishlab chiqish vositalaridan afzalroqdir. Ulardan bir nechtasi:
Flutter platformalararo rivojlanishni qo'llab-quvvatlaydi
Flutter-da dasturlash juda oson va moslashuvchan
Flutter-da qurilish jarayoni barcha raqobatchilarga qaraganda ancha tezroq
@mobileflutter
Nima uchun Flutter boshqa mobil ilovalarni ishlab chiqish vositalaridan afzal?
Javobni yashirish
Flutter – bu bepul va ochiq manbali mobil UI tizimi bo‘lib, Google tomonidan 2017-yilning may oyida taqdim etilgan. Flutter faqat bitta kod bazasidan foydalangan holda mahalliy mobil ilovani ishlab chiqish imkonini beradi. Bu shuni anglatadiki, siz bir xil dasturlash tili va kod bazasidan (iOS va Android uchun) foydalangan holda ikkita alohida ilovani loyihalashingiz mumkin.
Flutter ko'p sabablarga ko'ra Java va React Native kabi boshqa mobil ilovalarni ishlab chiqish vositalaridan afzalroqdir. Ulardan bir nechtasi:
Flutter platformalararo rivojlanishni qo'llab-quvvatlaydi
Flutter-da dasturlash juda oson va moslashuvchan
Flutter-da qurilish jarayoni barcha raqobatchilarga qaraganda ancha tezroq
@mobileflutter
Flutter-da paketlar va plaginlar nima?
Javobni yashirish
Paket - bu foydalanuvchilarga oson almashish mumkin bo'lgan modulli kod yaratish imkonini beruvchi sinflar, interfeyslar va pastki paketlar to'plami. Noldan boshlash o'rniga, paketlardan foydalanish ilovalarni tezda yaratishga yordam beradi. Flutter-da siz ilovaga yangi vidjetlar yoki funksiyalar qo‘shish uchun paketdan foydalanishingiz mumkin.
Boshqa tomondan, plagin ilovangizning funksionalligini yaxshilaydigan dasturiy ta'minotning bir qismidir. Plaginlar Flutter ekotizimida hal qiluvchi rol o'ynaydi.
@mobileflutter
Javobni yashirish
Paket - bu foydalanuvchilarga oson almashish mumkin bo'lgan modulli kod yaratish imkonini beruvchi sinflar, interfeyslar va pastki paketlar to'plami. Noldan boshlash o'rniga, paketlardan foydalanish ilovalarni tezda yaratishga yordam beradi. Flutter-da siz ilovaga yangi vidjetlar yoki funksiyalar qo‘shish uchun paketdan foydalanishingiz mumkin.
Boshqa tomondan, plagin ilovangizning funksionalligini yaxshilaydigan dasturiy ta'minotning bir qismidir. Plaginlar Flutter ekotizimida hal qiluvchi rol o'ynaydi.
@mobileflutter