Flutter Performance Tip: keepAlive bilan silliqroq skroll qilish
Nega keepAlive muhim?
Agar keepAlive ishlatilmasa, ekrandan chiqib ketgan vidjetlar dispose bo‘lib, qayta skroll qilinganda yana build bo‘ladi. Bu quyidagi muammolarga olib keladi:
• Scroll pozitsiyasi yo‘qoladi
• Keraksiz rebuild’lar yuz beradi
• Kontent titraydi yoki miltillaydi
• Animatsiyalar to‘xtab qoladi
✅ keepAlive dan foydalaning, agar:
• Element ichki holat (state) saqlab qolishi kerak bo‘lsa
• Vidjet initsializatsiyasi og‘ir (expensive) bo‘lsa
• UI animatsiyalar yoki transition’lar ishlatsa
• Foydalanuvchi eski elementlarga qayta skroll qilish ehtimoli yuqori bo‘lsa
❌ keepAlive dan foydalanmang, agar:
• Ro‘yxatda yuzlab yoki minglab elementlar bo‘lsa
• Elementlar juda oddiy va stateless bo‘lsa
• Xotira (memory) muammosi bo‘lsa
@alixr @flutterorg
Nega keepAlive muhim?
Agar keepAlive ishlatilmasa, ekrandan chiqib ketgan vidjetlar dispose bo‘lib, qayta skroll qilinganda yana build bo‘ladi. Bu quyidagi muammolarga olib keladi:
• Scroll pozitsiyasi yo‘qoladi
• Keraksiz rebuild’lar yuz beradi
• Kontent titraydi yoki miltillaydi
• Animatsiyalar to‘xtab qoladi
✅ keepAlive dan foydalaning, agar:
• Element ichki holat (state) saqlab qolishi kerak bo‘lsa
• Vidjet initsializatsiyasi og‘ir (expensive) bo‘lsa
• UI animatsiyalar yoki transition’lar ishlatsa
• Foydalanuvchi eski elementlarga qayta skroll qilish ehtimoli yuqori bo‘lsa
❌ keepAlive dan foydalanmang, agar:
• Ro‘yxatda yuzlab yoki minglab elementlar bo‘lsa
• Elementlar juda oddiy va stateless bo‘lsa
• Xotira (memory) muammosi bo‘lsa
@alixr @flutterorg
👍5
Flutter Optimization Hack: const bilan rebuild’larni kamaytiring
Nega const muhim?
const o‘zgaruvchilar va vidjetlar Flutter’da bir marta yaratiladi va qayta ishlatiladi, bu esa:
✅ CPU yuklamasini kamaytiradi
✅ Rebuild’larni minimallashtiradi
✅ UI’ning tezroq ishlashiga yordam beradi
Qanday ishlaydi?
❌ Yomon yondashuv:
Har safar build() chaqirilganda, TextStyle obyekti qayta yaratiladi.
✅ Yaxshi yondashuv:
Bu yerda TextStyle obyekti const bo‘lgani uchun Flutter uni qayta ishlatadi va keraksiz rebuild’larning oldi olinadi.
Qachon const ishlatish kerak?
• O‘zgarmas (immutable) vidjetlar bilan (Text, Icon, SizedBox, Padding, etc)
• build() metodi tez-tez ishlaydigan joylarda
• Statik va o‘zgarmas matn yoki ikonka elementlarida
• Stateless vidjetlarda imkon qadar ko‘proq
@alixr @flutterorg
Nega const muhim?
const o‘zgaruvchilar va vidjetlar Flutter’da bir marta yaratiladi va qayta ishlatiladi, bu esa:
✅ CPU yuklamasini kamaytiradi
✅ Rebuild’larni minimallashtiradi
✅ UI’ning tezroq ishlashiga yordam beradi
Qanday ishlaydi?
❌ Yomon yondashuv:
Text(
"Hello, Flutter!",
style: TextStyle(fontSize: 16),
)
Har safar build() chaqirilganda, TextStyle obyekti qayta yaratiladi.
✅ Yaxshi yondashuv:
const Text(
"Hello, Flutter!",
style: TextStyle(fontSize: 16),
)
Bu yerda TextStyle obyekti const bo‘lgani uchun Flutter uni qayta ishlatadi va keraksiz rebuild’larning oldi olinadi.
Qachon const ishlatish kerak?
• O‘zgarmas (immutable) vidjetlar bilan (Text, Icon, SizedBox, Padding, etc)
• build() metodi tez-tez ishlaydigan joylarda
• Statik va o‘zgarmas matn yoki ikonka elementlarida
• Stateless vidjetlarda imkon qadar ko‘proq
@alixr @flutterorg
💯3👍1
setState ni qachon ishlatmaslik kerak?
setState – Flutter’dagi eng oddiy state management usuli, lekin noto‘g‘ri ishlatilsa, quyidagi muammolarga olib keladi:
❌ Keraksiz rebuild’lar – Butun widget qayta chiziladi, hatto kichik o‘zgarishlar bo‘lsa ham.
❌ Ma’lumotlarning yo‘qolishi – Widget dispose() bo‘lsa, state ham yo‘qoladi.
❌ Kod murakkablashishi – Katta state’larni setState bilan boshqarish chalkash bo‘ladi.
❌ Yomon usul:
Bu kod har safar setState chaqirilganda butun widgetni qayta chizadi, bu esa samaradorlikni pasaytiradi.
✅ Yaxshi usul: ValueNotifier bilan optimallashtirish
ValueNotifier faqat Text widget’ini qayta chizadi va ortiqcha resurs sarfini oldini oladi.
Qachon setState dan foydalanmaslik kerak?
• Global yoki kompleks state’lar uchun → Provider, Riverpod, Bloc and etc ishlating.
• Ma’lumotlarni saqlash kerak bo‘lsa → Hive, SharedPreferences, Isar yoki SQLite and etc ishlating.
• Ko‘p qayta chiziladigan UI elementlari bo‘lsa → ValueNotifier yoki ChangeNotifier ishlating.
@alixr
setState – Flutter’dagi eng oddiy state management usuli, lekin noto‘g‘ri ishlatilsa, quyidagi muammolarga olib keladi:
❌ Keraksiz rebuild’lar – Butun widget qayta chiziladi, hatto kichik o‘zgarishlar bo‘lsa ham.
❌ Ma’lumotlarning yo‘qolishi – Widget dispose() bo‘lsa, state ham yo‘qoladi.
❌ Kod murakkablashishi – Katta state’larni setState bilan boshqarish chalkash bo‘ladi.
❌ Yomon usul:
Bu kod har safar setState chaqirilganda butun widgetni qayta chizadi, bu esa samaradorlikni pasaytiradi.
✅ Yaxshi usul: ValueNotifier bilan optimallashtirish
ValueNotifier faqat Text widget’ini qayta chizadi va ortiqcha resurs sarfini oldini oladi.
Qachon setState dan foydalanmaslik kerak?
• Global yoki kompleks state’lar uchun → Provider, Riverpod, Bloc and etc ishlating.
• Ma’lumotlarni saqlash kerak bo‘lsa → Hive, SharedPreferences, Isar yoki SQLite and etc ishlating.
• Ko‘p qayta chiziladigan UI elementlari bo‘lsa → ValueNotifier yoki ChangeNotifier ishlating.
@alixr
👍3🆒1
📌 Dart’da final va const – Qachon qaysi biri ishlatiladi?
Dart’da final va const o‘zgaruvchilari immutable (o‘zgarmas) ma’lumotlar bilan ishlash uchun ishlatiladi. Lekin ular orasida farq bor.
🔹 final – runtime-da belgilanadi
final o‘zgaruvchi faqat bir marta qiymat qabul qilishi mumkin, lekin u runtime (dastur ishlayotgan payt) da aniqlanadi.
✅ To‘g‘ri ishlatish:
❌ Xatolik:
🔹 const – compile-time da belgilanadi
const esa mutlaqo o‘zgarmas qiymat bo‘lib, u dastur kompilyatsiya qilinayotganda aniqlanib, hech qachon o‘zgartirilmaydi.
✅ To‘g‘ri ishlatish:
❌ Xatolik:
🎯 const bilan immutable obyektlar
const faqat oddiy o‘zgaruvchilarga emas, balki obyektlarga ham qo‘llanilishi mumkin.
🔥 final vs const – Qachon qaysini ishlatish kerak?
✅ Agar qiymat dastur ishlashi davomida o‘zgarishi mumkin bo‘lsa, final ishlating.
✅ Agar qiymat butunlay o‘zgarmas bo‘lsa va oldindan aniqlansa, const ishlating.
Siz final va const ni qachon ishlatasiz? Kommentariyada fikrlaringizni qoldiring!
@alixr
Dart’da final va const o‘zgaruvchilari immutable (o‘zgarmas) ma’lumotlar bilan ishlash uchun ishlatiladi. Lekin ular orasida farq bor.
🔹 final – runtime-da belgilanadi
final o‘zgaruvchi faqat bir marta qiymat qabul qilishi mumkin, lekin u runtime (dastur ishlayotgan payt) da aniqlanadi.
✅ To‘g‘ri ishlatish:
void main() {
final int yil = DateTime.now().year; // Runtime-da aniqlanadi
print(yil);
}❌ Xatolik:
void main() {
final int x = 10;
x = 20; // Xatolik: final o‘zgaruvchining qiymati o‘zgartirilmaydi!
}🔹 const – compile-time da belgilanadi
const esa mutlaqo o‘zgarmas qiymat bo‘lib, u dastur kompilyatsiya qilinayotganda aniqlanib, hech qachon o‘zgartirilmaydi.
✅ To‘g‘ri ishlatish:
const double pi = 3.1415; // Compile-time constant
❌ Xatolik:
void main() {
const yil = DateTime.now().year; // Xatolik: runtime qiymatni const-ga berib bo‘lmaydi!
}🎯 const bilan immutable obyektlar
const faqat oddiy o‘zgaruvchilarga emas, balki obyektlarga ham qo‘llanilishi mumkin.
class Person {
final String name;
const Person(this.name); // const konstruktor
}
void main() {
const p1 = Person("Ali");
const p2 = Person("Ali");
print(identical(p1, p2)); // true – bir xil obyekt yaratildi
}🔥 final vs const – Qachon qaysini ishlatish kerak?
✅ Agar qiymat dastur ishlashi davomida o‘zgarishi mumkin bo‘lsa, final ishlating.
✅ Agar qiymat butunlay o‘zgarmas bo‘lsa va oldindan aniqlansa, const ishlating.
Siz final va const ni qachon ishlatasiz? Kommentariyada fikrlaringizni qoldiring!
@alixr
👍6
ValueNotifier va ChangeNotifier – Farqi nimada?
Flutter-da ValueNotifier va ChangeNotifier reaktiv holat boshqarish uchun ishlatiladi. Ikkalasi ham UI-ni yangilash uchun ishlatiladi, lekin ularning ishlash mexanizmi farqlanadi.
⸻
ValueNotifier – Soddalashtirilgan reaktiv yondashuv
Agar faqat bitta qiymat (value) ni kuzatish kerak bo‘lsa, ValueNotifier eng optimal yechim. U notifyListeners() chaqirmasdan ham UI-ni avtomatik yangilaydi.
Misol: Counter App
Foydalanish:
➡️ ValueNotifier faqat bitta o‘zgaruvchini kuzatish uchun ishlatiladi.
⸻
ChangeNotifier – Bir nechta o‘zgaruvchilarni boshqarish
Agar bir nechta qiymatlarni boshqarish kerak bo‘lsa, ChangeNotifier ishlatish tavsiya etiladi. notifyListeners() chaqirish orqali barcha Consumer yoki Provider bog‘langan widgetlarni yangilaydi.
Misol: Todo List App
Foydalanish (Provider bilan):
➡️ ChangeNotifier bir nechta qiymatlarni boshqarish uchun mos keladi.
⸻
Xulosa
✅ Agar faqat bitta qiymatni kuzatish kerak bo‘lsa – ValueNotifier ishlatish osonroq va engillashtirilgan.
✅ Agar bir nechta qiymat yoki murakkab holat bo‘lsa – ChangeNotifier yaxshiroq tanlov.
Siz qaysi birini ishlatgansiz? Fikrlaringizni kutaman!
@alixr
Flutter-da ValueNotifier va ChangeNotifier reaktiv holat boshqarish uchun ishlatiladi. Ikkalasi ham UI-ni yangilash uchun ishlatiladi, lekin ularning ishlash mexanizmi farqlanadi.
⸻
ValueNotifier – Soddalashtirilgan reaktiv yondashuv
Agar faqat bitta qiymat (value) ni kuzatish kerak bo‘lsa, ValueNotifier eng optimal yechim. U notifyListeners() chaqirmasdan ham UI-ni avtomatik yangilaydi.
Misol: Counter App
class CounterModel {
final ValueNotifier<int> counter = ValueNotifier<int>(0);
void increment() {
counter.value++;
}
}Foydalanish:
ValueListenableBuilder<int>(
valueListenable: counterModel.counter,
builder: (context, value, child) {
return Text('$value', style: TextStyle(fontSize: 24));
},
);
➡️ ValueNotifier faqat bitta o‘zgaruvchini kuzatish uchun ishlatiladi.
⸻
ChangeNotifier – Bir nechta o‘zgaruvchilarni boshqarish
Agar bir nechta qiymatlarni boshqarish kerak bo‘lsa, ChangeNotifier ishlatish tavsiya etiladi. notifyListeners() chaqirish orqali barcha Consumer yoki Provider bog‘langan widgetlarni yangilaydi.
Misol: Todo List App
class TodoModel extends ChangeNotifier {
List<String> todos = [];
void addTodo(String todo) {
todos.add(todo);
notifyListeners();
}
}Foydalanish (Provider bilan):
Consumer<TodoModel>(
builder: (context, todoModel, child) {
return ListView.builder(
itemCount: todoModel.todos.length,
itemBuilder: (context, index) {
return ListTile(title: Text(todoModel.todos[index]));
},
);
},
);
➡️ ChangeNotifier bir nechta qiymatlarni boshqarish uchun mos keladi.
⸻
Xulosa
✅ Agar faqat bitta qiymatni kuzatish kerak bo‘lsa – ValueNotifier ishlatish osonroq va engillashtirilgan.
✅ Agar bir nechta qiymat yoki murakkab holat bo‘lsa – ChangeNotifier yaxshiroq tanlov.
Siz qaysi birini ishlatgansiz? Fikrlaringizni kutaman!
@alixr
1👍5
“Container bilan qilinmaydigan 5 narsa”
Flutter o‘rganayotganlar orasida Container — universal vosita, “hamma narsa shu bilan hal bo‘ladi”, degan noto‘g‘ri tushuncha bor.
Lekin aslida, professional UI qilaman desangiz, Containerni faqat zarur joyda ishlatish kerak.
Keling, nima uchunligini 5ta misolda ko‘rib chiqamiz:
⸻
1. Containerda onTap ishlamaydi.
Ko‘pchilik Containerga onTap yozib qo‘yadi va hayron qoladi: “Nega ishlamayapti?”
❌ Noto‘g‘ri:
✅ To‘g‘ri:
Agar bosilganda animatsiya ko‘rinishini xohlasangiz, InkWell yoki GestureDetector ishlating.
⸻
2. color va BoxDecoration birga ishlamaydi.
Agar Containerda decoration ishlatayotgan bo‘lsangiz, color:ni ishlatmang.
Chunki color:ni decoration: ichida berish kerak.
❌ Noto‘g‘ri:
✅ To‘g‘ri:
3. Performance uchun Container har doim yaxshi emas.
Container — bu multi-purpose widget. U padding, margin, color, align, size… hammasini o‘zida jamlagan.
Lekin Flutter’da minimal widget tree ishlatish yaxshi odat.
Masalan:
Padding(child: Text())
ColoredBox(color: ..., child: ...)
Align(alignment: ..., child: ...)
SizedBox(height: ..., width: ...)
Shularni to‘g‘ri joyda ishlatsangiz, build time ham, rebuild time ham kamayadi.
⸻
4. Container ba’zi joylarda infinite size beradi.
Agar parent widget size bermasa, Container “cheksiz” bo‘lib qolishi mumkin.
Bu esa layout error, overflow yoki scroll bug’lariga sabab bo‘ladi.
⸻
5. Ripple effekt ko‘rinmaydi, agar Material bo‘lmasa
Agar siz InkWell ishlatayotgan bo‘lsangiz, lekin bosilganda effekt (splash/ripple) ko‘rinmayotgan bo‘lsa — bu ko‘pincha Material widget yo‘qligidan bo‘ladi.
InkWell faqat Material ichida turganida chiroyli effekt beradi.
Bu holatda GestureDetector yaxshiroq variant bo‘lishi mumkin, lekin unda ripple yo‘q.
⸻
Professional kod yozish — bu kerakli joyda kerakli widget tanlay olish.
Container – yomon emas. Lekin faqat Container – yomon odat.
⸻
Siz ham hozirgacha Containerdan ko‘p foydalangansizmi?
Kommentda Container bilan bog‘liq biron “LOL” holatingiz bo‘lsa, yozib qoldiring!
@alixr
Flutter o‘rganayotganlar orasida Container — universal vosita, “hamma narsa shu bilan hal bo‘ladi”, degan noto‘g‘ri tushuncha bor.
Lekin aslida, professional UI qilaman desangiz, Containerni faqat zarur joyda ishlatish kerak.
Keling, nima uchunligini 5ta misolda ko‘rib chiqamiz:
⸻
1. Containerda onTap ishlamaydi.
Ko‘pchilik Containerga onTap yozib qo‘yadi va hayron qoladi: “Nega ishlamayapti?”
❌ Noto‘g‘ri:
Container(
onTap: () => print("Tapped"), // bu hech qachon ishlamaydi
)
✅ To‘g‘ri:
InkWell(
onTap: () => print("Tapped"),
child: Container(...),
)
Agar bosilganda animatsiya ko‘rinishini xohlasangiz, InkWell yoki GestureDetector ishlating.
⸻
2. color va BoxDecoration birga ishlamaydi.
Agar Containerda decoration ishlatayotgan bo‘lsangiz, color:ni ishlatmang.
Chunki color:ni decoration: ichida berish kerak.
❌ Noto‘g‘ri:
Container(
color: Colors.red,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
),
)
✅ To‘g‘ri:
Container(
decoration: BoxDecoration(
color: Colors.red,
borderRadius: BorderRadius.circular(10),
),
)
3. Performance uchun Container har doim yaxshi emas.
Container — bu multi-purpose widget. U padding, margin, color, align, size… hammasini o‘zida jamlagan.
Lekin Flutter’da minimal widget tree ishlatish yaxshi odat.
Masalan:
Padding(child: Text())
ColoredBox(color: ..., child: ...)
Align(alignment: ..., child: ...)
SizedBox(height: ..., width: ...)
Shularni to‘g‘ri joyda ishlatsangiz, build time ham, rebuild time ham kamayadi.
⸻
4. Container ba’zi joylarda infinite size beradi.
Agar parent widget size bermasa, Container “cheksiz” bo‘lib qolishi mumkin.
Bu esa layout error, overflow yoki scroll bug’lariga sabab bo‘ladi.
⸻
5. Ripple effekt ko‘rinmaydi, agar Material bo‘lmasa
Agar siz InkWell ishlatayotgan bo‘lsangiz, lekin bosilganda effekt (splash/ripple) ko‘rinmayotgan bo‘lsa — bu ko‘pincha Material widget yo‘qligidan bo‘ladi.
InkWell faqat Material ichida turganida chiroyli effekt beradi.
Bu holatda GestureDetector yaxshiroq variant bo‘lishi mumkin, lekin unda ripple yo‘q.
⸻
Professional kod yozish — bu kerakli joyda kerakli widget tanlay olish.
Container – yomon emas. Lekin faqat Container – yomon odat.
⸻
Siz ham hozirgacha Containerdan ko‘p foydalangansizmi?
Kommentda Container bilan bog‘liq biron “LOL” holatingiz bo‘lsa, yozib qoldiring!
@alixr
6👍5
🌀 Dart'da Future va async/await — nima, qanday ishlaydi, va qanday ishlatilmasligi kerak?
💡 Dastur ishlayotgan paytda ba'zida natija hoziroq emas, kelajakda tayyor bo'lishi mumkin. Masalan:
📡 serverdan ma'lumot kelishi,
🗂 fayl o'qilishi,
🌐 internet orqali so‘rov yuborilishi...
Shunday holatlarda Future ishlatiladi.
🔹 Future — bu nima?
Future — bu “kelajakdagi natija”.
U hozircha yo‘q, lekin bir payt kelib tayyor bo‘ladi — yoki xatolik bilan tugaydi.
👉 Bu funksiya 2 sekunddan keyin 'Alimardon' qiymatini qaytaradi.
🔹 Async/Await — bu qanday ishlaydi?
async funksiyani asinxron qiladi — ya’ni uning ichida await ishlatish mumkin bo'ladi.
➡️ await — Future'ni kutadi. U holda kod “pauza” qiladi, lekin UI muzlamaydi.
⚠️ Nima qilmaslikni maslahat beraman?
🚫 Future ichidagi then() bilan callbacklar zanjiri yasab, kodni spaghetti holga keltirmang:
Bu o‘qish qiyin, debug qilish ham charchatadi.
✅ Nima qilishingiz mumkin?
✅ async/await dan foydalaning. Kodingiz toza, tushunarli va maintainable bo‘ladi:
📌 Yodda tuting:
• await faqat async funksiyada ishlaydi.
• Future<void> bu “natijasiz” Future.
• Har bir await UI ni muzlatmaydi, lekin kod oqimini kutdiradi.
• try/catch bilan xatoliklarni tuting:
Agar ushbu post foydali bo‘lsa, ulashing, savollaringiz bo‘lsa kommentda yozing
@alixr @flutterorg
💡 Dastur ishlayotgan paytda ba'zida natija hoziroq emas, kelajakda tayyor bo'lishi mumkin. Masalan:
📡 serverdan ma'lumot kelishi,
🗂 fayl o'qilishi,
🌐 internet orqali so‘rov yuborilishi...
Shunday holatlarda Future ishlatiladi.
🔹 Future — bu nima?
Future — bu “kelajakdagi natija”.
U hozircha yo‘q, lekin bir payt kelib tayyor bo‘ladi — yoki xatolik bilan tugaydi.
Future<String> getUserName() {
return Future.delayed(Duration(seconds: 2), () => 'Alimardon');
}👉 Bu funksiya 2 sekunddan keyin 'Alimardon' qiymatini qaytaradi.
🔹 Async/Await — bu qanday ishlaydi?
async funksiyani asinxron qiladi — ya’ni uning ichida await ishlatish mumkin bo'ladi.
Future<void> greetUser() async {
final name = await getUserName();
print('Salom, $name!');
}
➡️ await — Future'ni kutadi. U holda kod “pauza” qiladi, lekin UI muzlamaydi.
⚠️ Nima qilmaslikni maslahat beraman?
🚫 Future ichidagi then() bilan callbacklar zanjiri yasab, kodni spaghetti holga keltirmang:
getUserName().then((name) {
getUserAge().then((age) {
print('Name: $name, Age: $age');
});
});
Bu o‘qish qiyin, debug qilish ham charchatadi.
✅ Nima qilishingiz mumkin?
✅ async/await dan foydalaning. Kodingiz toza, tushunarli va maintainable bo‘ladi:
Future<void> showUserData() async {
final name = await getUserName();
final age = await getUserAge();
print('Name: $name, Age: $age');
}
📌 Yodda tuting:
• await faqat async funksiyada ishlaydi.
• Future<void> bu “natijasiz” Future.
• Har bir await UI ni muzlatmaydi, lekin kod oqimini kutdiradi.
• try/catch bilan xatoliklarni tuting:
try {
final data = await fetchData();
} catch (e) {
print('Xatolik: $e');
}Agar ushbu post foydali bo‘lsa, ulashing, savollaringiz bo‘lsa kommentda yozing
@alixr @flutterorg
1💯3
📲 Flutter developerlar uchun mini-lifehack:
Agar siz ham Flutter loyihangizda uzoq build time yoki lag sezasizmi? Mana bitta oddiy lekin kuchli tip:
Hot restart o‘rniga “Flutter DevTools” profilingdan foydalaning.
👉 Performance Overlay yoqib, real FPS va render time’ni ko‘ring.
👉 Qaysi widgetlar rebuild bo‘layotganini
Ba’zida kichkina optimizatsiyalar – jiddiy o‘zgarishlarga sabab bo'ladi!
@alixr
Agar siz ham Flutter loyihangizda uzoq build time yoki lag sezasizmi? Mana bitta oddiy lekin kuchli tip:
Hot restart o‘rniga “Flutter DevTools” profilingdan foydalaning.
👉 Performance Overlay yoqib, real FPS va render time’ni ko‘ring.
👉 Qaysi widgetlar rebuild bo‘layotganini
flutter run --track-widget-creation bilan tahlil qiling.Ba’zida kichkina optimizatsiyalar – jiddiy o‘zgarishlarga sabab bo'ladi!
@alixr
👍5🆒1
🎯 Android Widget
Android uchun widget yozishim kerak bo‘lib qoldi. Avvallari bunday ishga qo‘l ursam, birinchi navbatda documentation o‘qib, keyin boshlardim. Bu safar esa erinib, birinchi navbatda chatgpt’ga murojaat qildim.
Chatgpt odatdagidek: “O‘ylama ukam, problema bo‘midi,” dedi. Mayli deb boshladim. Har xil xatolar chiqishi boshlandi. O‘zim esa documentation o‘qimaganman, nimaga xato berayotganini tushunmayman, faqat chatgpt’ga yozaman: “Bunaqa xato chiqyapti, unaqasi chiqyapti...” — deb.
Oxir-oqibat, o‘zim sezmay chatgpt’ga qaram bo‘lib qolibman. 3 haftadan oshib ketdi, natija esa hali ko‘ngildagidek emas.
Lekin hozir sabrim tugab, documentation topib o'qiganimda, animation qo‘shish ham bo‘larkan! Chatgpt Animatsiya qo‘shib bo‘lmaydi — degandi.
Keyin stackoverflow’ni kovlasam, 13 yil oldingi postda “yaqinda animatsiya uchun support qo‘shiladi” deb muhokama bo‘lgan ekan. Aldandim. Documentation o‘qimasdan, chatgpt bilan tezroq hal qilaman deb o‘ylab, aksincha ko‘proq vaqtim ketib qoldi.
💡 Xulosa:
To‘g‘ri, foydasi ham bo‘ldi:
— Native Android’da UI chizish,
— Componentlar bilan ishlash,
— Va UI’ni logikaga bog‘lashni o‘rgandim.
Chatgpt zo‘r, lekin faqat yordamchi sifatida.
👉 Xullas asosiy ishni o‘zingiz qiling. Documentation o‘qing. Faqat qiyin joylarda chatgpt’dan so‘rang. Shunda vaqt va asabni tejaysiz!
@alixr
Android uchun widget yozishim kerak bo‘lib qoldi. Avvallari bunday ishga qo‘l ursam, birinchi navbatda documentation o‘qib, keyin boshlardim. Bu safar esa erinib, birinchi navbatda chatgpt’ga murojaat qildim.
Chatgpt odatdagidek: “O‘ylama ukam, problema bo‘midi,” dedi. Mayli deb boshladim. Har xil xatolar chiqishi boshlandi. O‘zim esa documentation o‘qimaganman, nimaga xato berayotganini tushunmayman, faqat chatgpt’ga yozaman: “Bunaqa xato chiqyapti, unaqasi chiqyapti...” — deb.
Oxir-oqibat, o‘zim sezmay chatgpt’ga qaram bo‘lib qolibman. 3 haftadan oshib ketdi, natija esa hali ko‘ngildagidek emas.
Lekin hozir sabrim tugab, documentation topib o'qiganimda, animation qo‘shish ham bo‘larkan! Chatgpt Animatsiya qo‘shib bo‘lmaydi — degandi.
Keyin stackoverflow’ni kovlasam, 13 yil oldingi postda “yaqinda animatsiya uchun support qo‘shiladi” deb muhokama bo‘lgan ekan. Aldandim. Documentation o‘qimasdan, chatgpt bilan tezroq hal qilaman deb o‘ylab, aksincha ko‘proq vaqtim ketib qoldi.
💡 Xulosa:
To‘g‘ri, foydasi ham bo‘ldi:
— Native Android’da UI chizish,
— Componentlar bilan ishlash,
— Va UI’ni logikaga bog‘lashni o‘rgandim.
Chatgpt zo‘r, lekin faqat yordamchi sifatida.
👉 Xullas asosiy ishni o‘zingiz qiling. Documentation o‘qing. Faqat qiyin joylarda chatgpt’dan so‘rang. Shunda vaqt va asabni tejaysiz!
@alixr
👍10
IT olamida yangiliklar shunchalar ko’pki, barchasini o’zim o’rganib qo’llab chiqaman deb, bir muddat kanalim haqida unutdim.
Shijoat bilan post yozishga o’tirib, buglar olamiga sho’ng’ib ketganimdan yana kalan esdan chiqdi.
Bo’ldi bugundan yana yangi update da nimalar qo’shilganu, eski kodlardan yangisiga o’tish source code larni yozishni boshliman deb, o’zim yangilolmay chalkashib ketdim.
Hullas bahonalar bir talay, muhimi natija deganlaridek, Men yana sizlarga foydali postlar yozishga qaytdim, agar foydali bo’lsa albatta 😁😁
@alixr
Shijoat bilan post yozishga o’tirib, buglar olamiga sho’ng’ib ketganimdan yana kalan esdan chiqdi.
Bo’ldi bugundan yana yangi update da nimalar qo’shilganu, eski kodlardan yangisiga o’tish source code larni yozishni boshliman deb, o’zim yangilolmay chalkashib ketdim.
Hullas bahonalar bir talay, muhimi natija deganlaridek, Men yana sizlarga foydali postlar yozishga qaytdim
@alixr
👍7