Endi Microsoft Clarity SDK Flutter uchun ham mavjud.
Bu SDK orqali biz:
1. User sessiyalari va ekrandagi interaksiyalarni kuzatish (screen flows, taps, scrolls).
2. Ekrandagi ko'p va kam bosiladigan yoki tashrif buyuriladigan joylarni aniqlash (heapmaps).
3. UX muammolarini analiz qilish.
4. Muhim malumotlarni yashirish imkoniyati (ClarityMask).
Manbalar:
1. Article: Link
2. SDK doc: Link
3. Package: Link
Bu SDK orqali biz:
1. User sessiyalari va ekrandagi interaksiyalarni kuzatish (screen flows, taps, scrolls).
2. Ekrandagi ko'p va kam bosiladigan yoki tashrif buyuriladigan joylarni aniqlash (heapmaps).
3. UX muammolarini analiz qilish.
4. Muhim malumotlarni yashirish imkoniyati (ClarityMask).
Manbalar:
1. Article: Link
2. SDK doc: Link
3. Package: Link
👍3🔥3
Oramizda Google Play-dan shunday habarni olganlar bo'lsa kerak.
31 Avgustgacha Android dasturlarimizda target SDK-ni 35 ga o'zgartirish kerakligi aytilgan.
target SDK-ni 35 ga o'zgartirish bilan Google Play talabi bajarilgan bo'ladi, ammo Android 15 va undan yuqori qurilmalarda UI-ning top va bottom qismlarida o'zgarishlar yuz beradi.
Bu o'zgarishlarni to'g'irlash uchun bazi manbalar:
1. Official doc: Link
31 Avgustgacha Android dasturlarimizda target SDK-ni 35 ga o'zgartirish kerakligi aytilgan.
target SDK-ni 35 ga o'zgartirish bilan Google Play talabi bajarilgan bo'ladi, ammo Android 15 va undan yuqori qurilmalarda UI-ning top va bottom qismlarida o'zgarishlar yuz beradi.
Bu o'zgarishlarni to'g'irlash uchun bazi manbalar:
1. Official doc: Link
Padding(
padding: EdgeInsets.only(
top: MediaQuery.of(context).viewPadding.top,
bottom: MediaQuery.of(context).viewPadding.bottom,
),
child: YourContent(),
)
🔥8👍1
Forwarded from Flutter Uzbek | Mobil dasturlash (Abbos Bobomurodov)
Endi ishga kirishdan oldin shu komaniya haqida shuyerda ishlab ketgan ishchilarning anonim shaklidagi fikrlarini o'qib kirish yoki kirmaslikni o'ylab ko'rsangiz bo'ladi.
Ishlagan joylaringizga anonim shaklda baho va sharh yozib qo'ysangiz bo'ladi. Agar ichingizda yig'ilgan rahmat va g'azab yozib qo'ysangiz bo'ladi.
ps: etik qoidalarga amal qilish kerak.
https://ishdex.uz/companies
Ishlagan joylaringizga anonim shaklda baho va sharh yozib qo'ysangiz bo'ladi. Agar ichingizda yig'ilgan rahmat va g'azab yozib qo'ysangiz bo'ladi.
ps: etik qoidalarga amal qilish kerak.
https://ishdex.uz/companies
👍1
Forwarded from MobilDasturchi.Uz (Azizbek Asqaraliyev)
🇺🇿 Flutter dasturchilar — Android’ning yashirin harakatlaridan ehtiyot bo‘ling!
Mana sizni hayratda qoldirishi mumkin bo‘lgan holat:
🚨 Android ilovani o‘chirib tashlash har doim ham ma’lumotlarni tozalamaydi!
Flutter ilovalarimdan birida test o‘tkazayotganimda, ilovani qayta o‘rnatganimda SharedPreferences va SQLite ma’lumotlari hanuzgacha joyida ekanini sezib qoldim. 😳
🔎 Ma’lum bo‘lishicha, Android avtomatik tarzda ilova ma’lumotlarini (masalan, lokal saqlash va sozlamalarni) foydalanuvchining Google akkauntiga zaxiralab qo‘yadi — va keyin bu ilova yana o‘rnatilganda, jimgina qayta tiklaydi.
🧯 Buni o‘chirib, har safar toza o‘rnatishni ta’minlamoqchimisiz?
Unda AndroidManifest.xml faylida quyidagicha yozing:
✅ Bu avtomatik zaxira qilishni o‘chiradi — ayniqsa test versiyalarida yoki foydalanuvchiga butunlay yangilangan holatda ilovani taqdim qilmoqchi bo‘lsangiz juda foydali.
💬 Flutter dasturchilar: Android tizimi orqasida qanday ishlar sodir bo‘layotganini osonlikcha e’tiborsiz qoldirish mumkin. Faqat bir necha qator konfiguratsiya sizni soatlab xatolik izlashdan qutqaradi.
Mana sizni hayratda qoldirishi mumkin bo‘lgan holat:
🚨 Android ilovani o‘chirib tashlash har doim ham ma’lumotlarni tozalamaydi!
Flutter ilovalarimdan birida test o‘tkazayotganimda, ilovani qayta o‘rnatganimda SharedPreferences va SQLite ma’lumotlari hanuzgacha joyida ekanini sezib qoldim. 😳
🔎 Ma’lum bo‘lishicha, Android avtomatik tarzda ilova ma’lumotlarini (masalan, lokal saqlash va sozlamalarni) foydalanuvchining Google akkauntiga zaxiralab qo‘yadi — va keyin bu ilova yana o‘rnatilganda, jimgina qayta tiklaydi.
🧯 Buni o‘chirib, har safar toza o‘rnatishni ta’minlamoqchimisiz?
Unda AndroidManifest.xml faylida quyidagicha yozing:
<application
android:allowBackup="false"
android:fullBackupContent="false">
</application>
✅ Bu avtomatik zaxira qilishni o‘chiradi — ayniqsa test versiyalarida yoki foydalanuvchiga butunlay yangilangan holatda ilovani taqdim qilmoqchi bo‘lsangiz juda foydali.
💬 Flutter dasturchilar: Android tizimi orqasida qanday ishlar sodir bo‘layotganini osonlikcha e’tiborsiz qoldirish mumkin. Faqat bir necha qator konfiguratsiya sizni soatlab xatolik izlashdan qutqaradi.
👍8👏3
AGP vs Gradle farqlari.
Gradle - bu umumiy maqsadli qurilishni avtomatlashtirish vositasi (build automation tool). U Java/Kotlin va Android kabi ko'plab tillar va platformalar uchun kodni kompilyatsiya qilish, qurish (build), bog'liqliklarni boshqarish va paketlash uchun ishlatiladi.
AGP (Android Gradle Plugin) - bu Gradle uchun plagin bo'lib, Android ilovalarini yaratish uchun zarur boʻlgan mantiq va vazifalarni taqdim etadi, masalan, resurslarni kompilyatsiya qilish, APK-larni imzolash (signing apk), AndroidManifest faylni boshqarish va boshqalar.
AGP va Gradle versiyalari bir-biriga mos bo'lishi juda muhim. Quyidagi sahifa orqali mos versiyalarni ko'rishingiz mumkin.
Gradle va AGP versiyalari quyidagi fayllarda ko'rsatilgan bo'ladi:
Gradle:
AGP:
Flutter ikkalasini ham ishlatadi. Flow esa quyidagicha:
Qo'shimcha manbalar:
1. Gradle - Link
2. AGP - Link
3. Article - Link
#Flutter
Gradle - bu umumiy maqsadli qurilishni avtomatlashtirish vositasi (build automation tool). U Java/Kotlin va Android kabi ko'plab tillar va platformalar uchun kodni kompilyatsiya qilish, qurish (build), bog'liqliklarni boshqarish va paketlash uchun ishlatiladi.
AGP (Android Gradle Plugin) - bu Gradle uchun plagin bo'lib, Android ilovalarini yaratish uchun zarur boʻlgan mantiq va vazifalarni taqdim etadi, masalan, resurslarni kompilyatsiya qilish, APK-larni imzolash (signing apk), AndroidManifest faylni boshqarish va boshqalar.
AGP va Gradle versiyalari bir-biriga mos bo'lishi juda muhim. Quyidagi sahifa orqali mos versiyalarni ko'rishingiz mumkin.
Gradle va AGP versiyalari quyidagi fayllarda ko'rsatilgan bo'ladi:
Gradle:
// gradle/wrapper/gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip
AGP:
// build.gradle (Project-level)
classpath 'com.android.tools.build:gradle:8.1.4'
Flutter ikkalasini ham ishlatadi. Flow esa quyidagicha:
Flutter (calls) → Gradle (uses) → AGP (builds Android)
Qo'shimcha manbalar:
1. Gradle - Link
2. AGP - Link
3. Article - Link
#Flutter
🔥1
Flutterda Deep Link.
Deep Link (custom URI schemes)
Bu havolalar ilovangizni ochish va muayyan sahifalarga yo'naltirish uchun "myapp://profile?id=123" kabi maxsus URI sxemalaridan foydalanadi.
Androidda bu Deep link deb ataladi, iOS-da esa maxsus URL sxemasi (custom URL scheme) deb ataladi. Agar siz domenga ega bo'lmasangiz, lekin deep link kuchidan foydalanmoqchi bo'lsangiz, bu usul qulay.
Ilovangizda o'zingizga yoqqan har qanday maxsus sxemani tanlashingiz mumkin. Ammo salbiy tomoni shundaki, u xavfsizligi past, chunki har qanday ilova sizning shaxsiy sxemangizni o'g'irlashi va havolalaringizni ochishga urinishi mumkin.
Web Link (Android App Link / IOS Universal Link).
Android-da App Link va iOS-da Universal Link sifatida tanilgan bu usul mobil ilovangizga Deep Link yordamini qo'shishning eng xavfsiz usulini ta'minlaydi.
Bu sizdan domenga ega bo'lishingizni va ikkala tomondan tekshirishni amalga oshirishingizni talab qiladi. Domeningizni ilova kodi (Androiddagi manifest fayli va iOSʼdagi Associated Domains) ichida roʻyxatdan oʻtkazishingiz va server tomonida mobil ilovangizni tasdiqlashingiz kerak.
Ushbu vazifani bajarish orqali ilovangiz domenni taniydi va domen ilovangizni tasdiqlaydi. Ushbu ikki tomonlama tekshirish Deep Link-larning yaxlitligi va haqiqiyligini ta'minlaydi va uni xavfsiz qiladi.
Manbalar:
1. Official doc: Link
2. Medium: Link
3. Article: Link
#Flutter
Deep Link (custom URI schemes)
Bu havolalar ilovangizni ochish va muayyan sahifalarga yo'naltirish uchun "myapp://profile?id=123" kabi maxsus URI sxemalaridan foydalanadi.
Androidda bu Deep link deb ataladi, iOS-da esa maxsus URL sxemasi (custom URL scheme) deb ataladi. Agar siz domenga ega bo'lmasangiz, lekin deep link kuchidan foydalanmoqchi bo'lsangiz, bu usul qulay.
Ilovangizda o'zingizga yoqqan har qanday maxsus sxemani tanlashingiz mumkin. Ammo salbiy tomoni shundaki, u xavfsizligi past, chunki har qanday ilova sizning shaxsiy sxemangizni o'g'irlashi va havolalaringizni ochishga urinishi mumkin.
Web Link (Android App Link / IOS Universal Link).
Android-da App Link va iOS-da Universal Link sifatida tanilgan bu usul mobil ilovangizga Deep Link yordamini qo'shishning eng xavfsiz usulini ta'minlaydi.
Bu sizdan domenga ega bo'lishingizni va ikkala tomondan tekshirishni amalga oshirishingizni talab qiladi. Domeningizni ilova kodi (Androiddagi manifest fayli va iOSʼdagi Associated Domains) ichida roʻyxatdan oʻtkazishingiz va server tomonida mobil ilovangizni tasdiqlashingiz kerak.
Ushbu vazifani bajarish orqali ilovangiz domenni taniydi va domen ilovangizni tasdiqlaydi. Ushbu ikki tomonlama tekshirish Deep Link-larning yaxlitligi va haqiqiyligini ta'minlaydi va uni xavfsiz qiladi.
Manbalar:
1. Official doc: Link
2. Medium: Link
3. Article: Link
#Flutter
Learning to write clean code is hard work. It requires more than just the knowledge of principles and patterns. You must sweat over it. You must practice it yourself, and watch yourself fail. You must watch others practice it and fail. You must see them stumble and retrace their steps. You must see them agonize over decisions and see the price they pay for making those decisions the wrong way.
Robert C. Martin "Clean Code"