tgindex
Ali Xr
@alixrВидеоанглийский

Flutter tips, IT memes & coding news — all in one place. Join the fun and grow with us! 🕊️ channel: @flutterorg 📹 youtube: youtube.com/@alixr_ 🤝 support: tirikchilik.uz/alixr

Последний пост
23 июл.
Последнее чтение
23:25
Постов за неделю
0
Всего постов
20
Тип
открытый
Язык
английский
Категория
Видео
В каталоге с
13 авг.
Подписчики
262
+1 за 4 дн.
Сутки
0
0,00%
Неделя
 
Месяц
 
Просмотров на пост
821
20 постов
Вовлечённость
313,4%
к подписчикам
Постов в день
0,0
всего 20
Упоминаний
1
каналов
Охват размещения
оценка
1/24сутки в ленте
147
1/48двое суток
168
1/72трое суток
181

Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.

Посты

  • Kod yozishni bilish endi yetarli emas. AI bilan ishlashni bilish ham kerak. Bir narsani kuzatdim. Bir xil ChatGPT'dan foydalanadigan ikki odamning natijasi mutlaqo boshqacha bo'ladi. Biri: - "Menga CV yozib ber." Ikkinchisi esa: - "Sen 10 yillik HR mutaxassisisan. Men Junior UI/UX dizaynerman. CV'mni ATS tizimidan o'tadigan qilib qayta yoz. Kuchli va kuchsiz tomonlarimni ham alohida yoz." Natijani taxmin qila olasiz. Ko'pchilik sun'iy intellektni oddiy qidiruv tizimidek ishlatadi. Aslida esa AI — bu yordamchi xodim. Agar yangi ishchiga: - "Bor, qil." desangiz, u ham nima qilishni tushunmaydi. Lekin: • vazifani tushuntirsangiz, • maqsadni aytsangiz, • qanday natija kutayotganingizni ko'rsatsangiz, u ancha yaxshi ishlaydi. AI ham xuddi shunday. Shuning uchun yaqin kelajakda eng qimmat ko'nikmalardan biri kod yozish emas, AI bilan to'g'ri muloqot qila olish bo'ladi. Bu ko'nikma: • talabani boshqalardan tezroq o'qitadi; • marketologni tezroq kontent yozishga yordam beradi; • dasturchining unumdorligini bir necha baravar oshiradi; • tadbirkorning vaqtini tejaydi. Sun'iy intellekt hech kimning o'rnini to'liq egallamaydi. Lekin AI'dan foydalana oladigan odam, foydalana olmaydigan odamning o'rnini egallashi mumkin. @alixr

  • Ko'pchilik kod yozishni o'rganadi. Lekin juda kam odam kod o'qishga vaqt ajratadi. Har kuni yangi dars. Yangi framework. Yangi loyiha. Lekin ko'pchilik o'zidan kuchli dasturchining kodini ochib, uni tahlil qilishga vaqt ajratmaydi. Aslida esa eng tez o'sish yo'li shu. Bir hafta davomida kuchli dasturchi yozgan kodni o'qisangiz, bir oy kurs ko'rgandan ko'proq narsa o'rganishingiz mumkin. Chunki u yerda siz: • nima yozilganini emas, • nega aynan shunday yozilganini ko'rasiz. Yaxshi kod sizga sintaksisni emas, fikrlash usulini o'rgatadi. Shuning uchun bugundan bitta odat qiling. Har kuni kamida 20 daqiqa GitHub'dagi kuchli open source loyihalardan birini o'qing. Hamma kod yozadi. Lekin kodni tushunadigan dasturchilar juda kam. Ana shu farq sizni boshqalardan ajratadi. Oxirgi marta qachon birovning kodini shunchaki o'rganish uchun ochgansiz? @alixr

  • AI endi kod yozishni emas, dasturchining fikrlash usulini o'zgartiryapti Bir paytlar Stack Overflow'ga kirib javob qidirardik. Keyin ChatGPT chiqdi va kod yozishni tezlashtirdi. Hozir esa AI boshqa bosqichga o'tyapti. Endi u shunchaki kod yozmaydi. U bilan birga arxitektura qurasiz, muammoni tahlil qilasiz, refaktor qilasiz, test yozasiz va hatto PR review ham qilasiz. Lekin bitta muammo bor. Ko'pchilik hali ham AI'dan faqat: - "Mana bu kodni yozib ber" deb foydalanyapti. Aslida esa eng katta foyda kod yozdirishda emas. To'g'ri savol berishda. Bir xil AI, bir xil model. Lekin ikki xil dasturchi mutlaqo boshqa natija oladi. Farq promptda ham emas. Farq muammoni qanday tahlil qila olishda. Shuning uchun bugungi kunda eng qimmat skill faqat Flutter, Java yoki Python emas. Muammoni to'g'ri qo'ya olish va AI bilan samarali ishlay olish. Kelgusi yillarda aynan shu odat eng katta ustunliklardan biriga aylanadi. @alixr

  • Oxirgi marta bu kanalga yozganimga ancha bo'libdi. Shu vaqt ichida hayotimda ko'p narsa o'zgardi. Yangi davlatlarni ko'rdim. Yangi odamlar bilan tanishdim. O'nlab kompaniyalarga intervyu topshirdim, coding tasklar bajardim va software engineer sifatida o'zimni qayta kashf qildim. Bu davr menga bitta narsani juda aniq tushuntirdi. Dasturchi sifatida o'sish faqat yangi framework yoki yangi til o'rganish bilan bo'lmaydi. Eng katta o'zgarish — fikrlash tarzi va ishlash usulida bo'larkan. Ayniqsa, AI kirib kelganidan keyin. Shu sabab bu kanal ham biroz o'zgaradi. Flutter bu kanalning bir qismi bo'lib qoladi. Lekin endi bu yerda faqat Flutter emas. Bu yerda AI, software engineering, intervyularda olgan tajribalarim, real loyihalarda duch kelgan muammolar va ularning yechimlari haqida ham yozaman. Qisqasi, yana boshladik. Bu safar biroz boshqacharoq. 🚀 @alixr

  • 23 окт.1 450101

    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

  • Uydan eski buyumlar orasidan topib oldim. Kim ishlatgan bu buyumni? ;) @alixr

  • без подписи

  • 🎯 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

  • 📲 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 flutter run --track-widget-creation bilan tahlil qiling. Ba’zida kichkina optimizatsiyalar – jiddiy o‘zgarishlarga sabab bo'ladi! @alixr

  • Assalomu alaykum do’stlar! Sizlarni ulugʻ ayyom — Qurbon hayiti bilan chin qalbimdan tabriklayman! @alixr

  • Kun fotosi 😼 @alixr

  • 🌀 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. 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

  • “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: 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

  • Imkon qadar shu usuldan foydalaning ;) @alixr

  • 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 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

  • 📌 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: 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

  • без подписи

  • 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

  • без подписи

  • Menham el qatori trenddan qolmay deb Ghibli style ga qiziqib ko’rdim. Ajoyib tog’rimi 😊 @alixr