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
3 .
Flutterning cheklovlari qanday?
Javobni yashirish
Flutter hali ham nisbatan yangi vosita bo'lgani uchun u ba'zi cheklovlarga ega. Ular quyidagichadir:
Uchinchi tomon kutubxonalari soni juda oz
Flutterning chiqarilish hajmi kutilganidan kattaroq
Flutter boshqa OOP tili, Java, C# kabi boshqa OOP tillari bilan raqobatlasha olmaydigan Dart bilan birga ishlatilishini talab qiladi.
Flutterning cheklangan murakkabligi tufayli mobil reklama platformalari uni qo‘llab-quvvatlamaydi
Flutter hali ham keng auditoriya tomonidan qo'llanilmaydi
@mobileflutter
Flutterning cheklovlari qanday?
Javobni yashirish
Flutter hali ham nisbatan yangi vosita bo'lgani uchun u ba'zi cheklovlarga ega. Ular quyidagichadir:
Uchinchi tomon kutubxonalari soni juda oz
Flutterning chiqarilish hajmi kutilganidan kattaroq
Flutter boshqa OOP tili, Java, C# kabi boshqa OOP tillari bilan raqobatlasha olmaydigan Dart bilan birga ishlatilishini talab qiladi.
Flutterning cheklangan murakkabligi tufayli mobil reklama platformalari uni qo‘llab-quvvatlamaydi
Flutter hali ham keng auditoriya tomonidan qo'llanilmaydi
@mobileflutter
5 .
Kalitlar nima va ulardan qanday foydalanasiz?
Javobni yashirish
Vidjetlar, elementlar va semantika tugunlari uchun identifikatorlar to'plami kalit sinfini tashkil qiladi. Kalitlar vidjet daraxti ichida yangilanganda vidjetlar holatini saqlash uchun javobgardir. Kalitlardan bir xil turdagi va belgilangan holatlardagi vidjetlar to'plamini o'zgartirish va qayta tartiblash uchun ham foydalanish mumkin.
Aks holda, kalitlar hech qanday tarzda zararli bo'lmasa ham, kod uchun ortiqcha bo'lishi mumkin. Kalitlar vidjet daraxtini davlat vidjetlari bilan tahrirlash kerak bo‘lganda foydali bo‘ladi, lekin daraxt butunlay fuqaroligi bo‘lmagan vidjetlardan iborat bo‘lganda emas.
@mobileflutter
Kalitlar nima va ulardan qanday foydalanasiz?
Javobni yashirish
Vidjetlar, elementlar va semantika tugunlari uchun identifikatorlar to'plami kalit sinfini tashkil qiladi. Kalitlar vidjet daraxti ichida yangilanganda vidjetlar holatini saqlash uchun javobgardir. Kalitlardan bir xil turdagi va belgilangan holatlardagi vidjetlar to'plamini o'zgartirish va qayta tartiblash uchun ham foydalanish mumkin.
Aks holda, kalitlar hech qanday tarzda zararli bo'lmasa ham, kod uchun ortiqcha bo'lishi mumkin. Kalitlar vidjet daraxtini davlat vidjetlari bilan tahrirlash kerak bo‘lganda foydali bo‘ladi, lekin daraxt butunlay fuqaroligi bo‘lmagan vidjetlardan iborat bo‘lganda emas.
@mobileflutter
6 .
What are the different types of streams in Dart?
6 .Dartdagi oqimlarning qanday turlari bor?
Javobni yashirish
Oqimlar ma'lumotlarning asinxron ketma-ketligini ta'minlaydi. Asinxron dasturlash oqimlar g'oyasidan foydalanadi. Ular dasturning ma'lumotlar hodisalarining asinxron ketma-ketligiga ishora qiladi. Quvurga o'xshash bir uchiga qiymat, ikkinchisiga esa tinglovchi qo'yamiz. Bir nechta tinglovchilarni bitta oqimga birlashtirish mumkin va ular quvur liniyasiga joylashtirilganda, ularning barchasi bir xil ma'lumotlarni oladi. Yangi oqimlarni yaratish yoki mavjudlarini boshqarish uchun SteamController-dan foydalanish mumkin. Ikki turdagi oqim mavjud:
Yagona obuna oqimlari
Bu oqimlar voqealarni xronologik tartibda uzatadi. Ular ko'proq umumiylik ichidagi individual ketma-ketliklar sifatida ko'rib chiqiladi. Hodisalarni qabul qilish ketma-ketligi muhim bo'lganda, masalan, faylni o'qiyotganda, bu oqimlardan foydalaniladi. Butun ketma-ketlikda faqat bitta tinglovchi bo'lishi mumkin va agar u bo'lmasa, voqea ishga tushmaydi.
Translyatsiya oqimlari
Ushbu eshittirishlar obunachilarga bo'lajak voqealar haqida ma'lumot beradi. Obunachilar ularga obuna bo'lgandan so'ng darhol voqealarni tinglashni boshlashlari mumkin. Bu bir nechta tinglovchilarga bir vaqtning o'zida tinglash imkonini beruvchi moslashuvchan oqimlardir. Bundan tashqari, oldingi a'zolikni bekor qilgandan keyin ham yana tinglash mumkin.
@mobileflutter
What are the different types of streams in Dart?
6 .Dartdagi oqimlarning qanday turlari bor?
Javobni yashirish
Oqimlar ma'lumotlarning asinxron ketma-ketligini ta'minlaydi. Asinxron dasturlash oqimlar g'oyasidan foydalanadi. Ular dasturning ma'lumotlar hodisalarining asinxron ketma-ketligiga ishora qiladi. Quvurga o'xshash bir uchiga qiymat, ikkinchisiga esa tinglovchi qo'yamiz. Bir nechta tinglovchilarni bitta oqimga birlashtirish mumkin va ular quvur liniyasiga joylashtirilganda, ularning barchasi bir xil ma'lumotlarni oladi. Yangi oqimlarni yaratish yoki mavjudlarini boshqarish uchun SteamController-dan foydalanish mumkin. Ikki turdagi oqim mavjud:
Yagona obuna oqimlari
Bu oqimlar voqealarni xronologik tartibda uzatadi. Ular ko'proq umumiylik ichidagi individual ketma-ketliklar sifatida ko'rib chiqiladi. Hodisalarni qabul qilish ketma-ketligi muhim bo'lganda, masalan, faylni o'qiyotganda, bu oqimlardan foydalaniladi. Butun ketma-ketlikda faqat bitta tinglovchi bo'lishi mumkin va agar u bo'lmasa, voqea ishga tushmaydi.
Translyatsiya oqimlari
Ushbu eshittirishlar obunachilarga bo'lajak voqealar haqida ma'lumot beradi. Obunachilar ularga obuna bo'lgandan so'ng darhol voqealarni tinglashni boshlashlari mumkin. Bu bir nechta tinglovchilarga bir vaqtning o'zida tinglash imkonini beruvchi moslashuvchan oqimlardir. Bundan tashqari, oldingi a'zolikni bekor qilgandan keyin ham yana tinglash mumkin.
@mobileflutter
35 .
Nima uchun HTTP paketi Flutterda ishlatiladi?
Javobni yashirish
HTTP paketi Flutter-da veb-serverlarga HTTP so'rovlarini yuborish uchun ishlatiladi. Bu Flutter dasturchilariga HTTP so'rovlarini yuborish va API yoki veb-serverlardan HTTP javoblarini olish imkonini beradi. Flutter ilovalari maʼlumotlarni olish yoki serverga joʻnatish uchun API yoki veb-serverlar bilan bogʻlanishi kerak. HTTP paketi Flutter-da HTTP so'rovlarini amalga oshirishning qulay va ishlatish uchun qulay usulini taqdim etadi.
@mobileflutter
Nima uchun HTTP paketi Flutterda ishlatiladi?
Javobni yashirish
HTTP paketi Flutter-da veb-serverlarga HTTP so'rovlarini yuborish uchun ishlatiladi. Bu Flutter dasturchilariga HTTP so'rovlarini yuborish va API yoki veb-serverlardan HTTP javoblarini olish imkonini beradi. Flutter ilovalari maʼlumotlarni olish yoki serverga joʻnatish uchun API yoki veb-serverlar bilan bogʻlanishi kerak. HTTP paketi Flutter-da HTTP so'rovlarini amalga oshirishning qulay va ishlatish uchun qulay usulini taqdim etadi.
@mobileflutter
Android operatsion tizimida ishlaydigan Flutterning birinchi versiyasi nima edi?
Sky Flutter-ning Android operatsion tizimida ishlaydigan birinchi versiyasidir. Bu 2015 yildagi Dart ishlab chiquvchilari sammitida e'lon qilingan edi, uning maqsadi sekundiga 120 kadr tezlikda doimiy ravishda ko'rsatish imkoniyatiga ega bo'lish.
@mobileflutter
Sky Flutter-ning Android operatsion tizimida ishlaydigan birinchi versiyasidir. Bu 2015 yildagi Dart ishlab chiquvchilari sammitida e'lon qilingan edi, uning maqsadi sekundiga 120 kadr tezlikda doimiy ravishda ko'rsatish imkoniyatiga ega bo'lish.
@mobileflutter