Learning Flutter 📱💻
5 subscribers
117 photos
35 videos
3 files
67 links
Download Telegram
❤2🔥1🤩1
5 ta eng yaxshi API test qilish vositasi

API’larni test qilish — bu dastur va server o‘rtasidagi aloqani sinovdan o‘tkazish degani. Quyidagi vositalar bu ishni tez, aniq va qulay bajaradi

1️⃣ Postman – eng mashhur va qulay vosita. So‘rov yuborish, javoblarni tahlil qilish va test skriptlarini yozish imkonini beradi.

2️⃣ Insomnia – yengil interfeysga ega, REST va GraphQL API’larini sinash uchun ideal.

3️⃣ Hoppscotch – brauzer orqali ishlaydigan bepul, ochiq manbali alternativa. Tezkor testlar uchun juda qulay.

4️⃣ Swagger – API hujjatlari va testlarini bir joyda boshqarish imkonini beradi. Katta loyihalar uchun mos.

5️⃣ SoapUI – REST va SOAP API’larini chuqur sinovdan o‘tkazish uchun kuchli professional vosita.

💡 Agar siz API bilan ishlayotgan bo‘lsangiz, Postman yoki Insomnia dan boshlashni tavsiya qilaman.

💻 @dasturlash_hayoti — dasturchilar uchun eng kerakli maslahatlar, vositalar va foydali kontent!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1👏1
✅
❤1🔥1👏1
Yoshligimda  internet rivojlanmagan vaqtida bluetoothga ismiga ismi.gmail.com (ali@gmail.com misol) dep yozib olar edik 
U vaqtda internetga kirgan odam alohida hurmati baland bolgan hammani ishi unga tushadi kino,mp3 ,rasm , referat va internett bilan nma qilish bolsa qilib berar edi
bilmaganlar ha buni o'zini (web sayti )  bor ekan dep o'ylardi u vaqtda  hamma ham dasturlash bilan. shug'ullanmagan lekin biz uchun qiziq edi 11 yoshingda hammasi qiziq bo'ladgan  vaqti, 1 oyga 50 MB ishlatar edim  atigi 1500 so'm edi narxi (2011) yilda
asosan o'yin o'ynash uchun hamma saytga kirar qanaqa yangi o'yin bolsa o'ynardim
🔥1👏1😁1
Status Code
Kerak bo'lib qoladi meni esmda tez tez chiqib qoladi
🔥2❤1👏1
Dasturlash tillariga mos IDE
Flutter uchun Android Studio va Vs code
👍1🔥1👏1
Forwarded from MobilDasturchi.Uz (Azizbek Asqaraliyev)
Flutterda UI thread va Raster thread haqida


1. UI thread

Flutter ilovasida Dart kodlari (siz yozadigan kodlar) asosan UI threadda ishlaydi.

Bu thread vazifasi:

Widget tree’ni qurish (build method’lar)

Layout (elementlarning joylashishi)

Animatsiyalarni hisoblash

State management logikasi

UI thread oxirida natija sifatida Scene yaratadi (SceneBuilder) → bu layer tree bo‘lib, unda qaysi element qayerda, qanday bo‘lishi kerakligi aniqlanadi.

Bu layer tree raster threadga yuboriladi.

👉 Demak, sizning setState(), Bloc, Provider, animatsiyalar — barchasi UI threadda.

2. Raster thread

Raster thread (ba’zan "GPU thread" deb ham atashadi) engine tarafida ishlaydi.

Uning vazifasi:

UI threaddan kelgan Sceneni olib, Skia grafik kutubxonasi yordamida piksellarga (rastr) aylantirish.

Yani GPU yordamida ekranga chizish.

Raster thread siz yozgan Dart kodni bilmaydi, faqat UI threaddan tayyor "qurilgan sahna"ni oladi va uni ekranga chiqaradi.

👉 Masalan, siz 1000 ta widget qo‘shsangiz, UI thread ularni hisoblaydi, raster thread esa tayyor resultni chizadi.

3. Threadlararo muammo

Agar UI threadda og‘ir ish qilsangiz (masalan, katta JSON parse, kriptografiya, video processing) → UI thread band bo‘ladi → frame drop/jank (lag) bo‘ladi.

Agar Raster thread juda ko‘p ishlasa (masalan, juda katta rasmlar yoki gradientlar, ko‘p effektlar) → chizish sekinlashadi → ham lag.

4. FPS va vsync

Flutter maqsadi: har 16ms (60FPS uchun) yoki 8ms (120FPS uchun) da bitta frameni tayyorlash.

Bu jarayon ikki bosqichda:

UI thread → layer tree

Raster thread → ekran chizish

Agar UI thread 20ms ishlasa → raster thread keyin ham kechikadi → stutter paydo bo‘ladi.

5. Qanday optimallashtiramiz?

UI threadni yengillashtirish:

Og‘ir hisob-kitoblarni isolate (yoki compute())ga tashlang.

Build methodlarni qisqa qiling.

const widgetlardan foydalaning.

Raster threadni yengillashtirish:

Juda katta rasmlar ishlatmang (resize qiling).

Overdraw (bir ustiga bir necha marta chizish)dan saqlaning.

Juda murakkab shaderlar va gradientlardan ehtiyot bo‘ling.

RepaintBoundary bilan keraksiz qayta chizishlarni bloklang.

🔑 Xulosa:

UI thread → sizning Dart logika va widget qurishingiz.

Raster thread → tayyor sahnani GPU’da pikselga aylantirish va ekranga chiqarish.

Ikki thread ham vaqtida bitishi kerak, aks holda FPS tushadi.
Geminidan yaxshi maslahat

# analysis_options.yaml

include: package:flutter_lints/flutter.yaml

linter:
rules:
# ----------------------------------------------------
# ✅ const bilan bog'liq asosiy qoidalar
# ----------------------------------------------------

# Mumkin bo'lgan har bir joyda const konstruktorlardan foydalanishni talab qiladi.
# Bu barcha widgetlarni o'z ichiga oladi.
prefer_const_constructors: true

# Final maydonlarni boshlashda const konstruktorlardan foydalanishni talab qiladi.
prefer_const_constructors_in_initializers: true

# Const bo'lishi mumkin bo'lgan o'zgaruvchilarni const qilishni talab qiladi.
prefer_const_declarations: true

# const bo'lishi mumkin bo'lgan o'zgaruvchilarni final qilishni talab qilmaydi (chunki const undan kuchliroq).
prefer_final_locals: false

# ----------------------------------------------------
# Boshqa foydali Performance (Samaradorlik) qoidalari
# ----------------------------------------------------

# Container bo'lishi mumkin bo'lgan Sizedbox yoki Align kabi widgetlardan qochish (Container eng og'ir).
use_decorated_box: true

# Qayta tiklashni minimallashtirish uchun StatelessWidget da final dan foydalanishni talab qiladi.
prefer_final_fields: true

# ----------------------------------------------------
# Xohishga ko'ra boshqa foydali qoidalar (tavsiya etiladi)
# ----------------------------------------------------

# Oddiy bo'lsa, widgetni o'rniga funksiyadan foydalanish (kodni tozalaydi)
avoid_function_literals_in_foreach_calls: false

# Implicitly dynamic turlaridan qochish
always_specify_types: true
Agar hammasini to'gri bo'lsa shunday yozuv chiqadi
bu esa 16 kb ga o'tkazish kerak degan consol qismida ham yozuv chiqarib qoyilgan
Mac da eng ko'p uchraydigan muammo xotirada joy qolmasligi menda eski loyihalar bor kerakli lekin ishlatilmayotgan ularni

flutter clean


qilish orqali 30 GB joy ochdim vaqtim bo'lsa git ga chiqarib yana 60 GB joy bo'shatish mumkin ekan
hullas joy ochish uchun flutter clean qilish yaxshi natija beradi
🚀 Flutter ilova hajmini kamaytirish — advanced optimization

Ko‘pchilik --release build bilan cheklanadi, lekin haqiqiy optimizatsiya undan ancha chuqurroq 👇


---

⚙️ 1. Split build (ABI & density) Har arxitektura uchun alohida APK:

flutter build apk --split-per-abi

Agar --split-per-density qo‘llasangiz, ekran zichligiga qarab rasm resurslari ham bo‘linadi.
👉 Natija: foydalanuvchiga faqat kerakli fayllar ketadi.


---

🧠 2. Obfuscation + Split Debug Info Kod hajmini qisqartirish va xavfsizlikni oshirish:

flutter build appbundle --release \
--obfuscate --split-debug-info=build/info/

Bu Dart kodini siqadi va dekompilyatsiyani qiyinlashtiradi.


---

🧹 3. Proguard + R8 (Native optimizatsiya) android/app/build.gradle:

minifyEnabled true
shrinkResources true

Java/Kotlin kodlarini minifikatsiya qiladi va keraksiz resurslarni o‘chiradi.
⚠️ Ba’zi pluginlar uchun proguard-rules.pro faylini sozlash talab qilinadi.


---

📦 4. Asset & dependency audit flutter build apk --analyze-size bilan aniq tahlil qiling.
Ko‘pincha 10–20 MB hajmni keraksiz package yoki og‘ir asset egallaydi.
SVG, WebP ishlating, flutter_svg va lottie afzal.


---

🪶 5. Font subset To‘liq shrift o‘rniga kerakli qismni (latin/cyrillic) import qiling.
font-subset tool bilan 1 MB shriftni 200 KB gacha tushirish mumkin.


---

💡 Xulosa: Real hajmni kamaytirish — bu “release build” emas, analiz + selective inclusion jarayoni.
Toza konfiguratsiya → kichik APK → tez yuklanish ⚡️

#flutter #appsize #optimization #onlyflutter

@only_flutter
❤1
No comment
Backend uchun yaxshi service topdim
Deploy qilish ham oson gitga push qilib repositoryni renderga ulanadi , branch tanlanadi (misol Main )
misol git ga pull qilinsa
render avtomatik build qiladi
serverni ishga tushiradi
faqat yangilanishni git ga push qilinadi render deploy qiladi o'zi


https://dashboard.render.com/