Techie's Blog πŸ‘¨πŸ»β€πŸ’»
111 subscribers
595 photos
190 videos
5 files
96 links
Flutter Engineer, talks about MobileDev.
Works at https://aros.uz

Likes books and cats πŸ˜„.
Sharing my journay to become a senior.
Enthusiastic about technology.

Here me : @iamtechie
Download Telegram
#question
Riverpod + TDD vs BLoC + GetIt + TDD

Qaysi biri yaxshi deb o'ylesizlar va nima uchun o'zilarni fikrilarni yozilar.
Assalomu alekum hammaga.
Arafa hamda kirib kelayotkan Qurbon Hayit bayrami barchaga muborak bo’lsin πŸŒ™
Please open Telegram to view this post
VIEW IN TELEGRAM
Techie's Blog πŸ‘¨πŸ»β€πŸ’»
#question Riverpod + TDD vs BLoC + GetIt + TDD Qaysi biri yaxshi deb o'ylesizlar va nima uchun o'zilarni fikrilarni yozilar.
#subektiv
BLoC+GetIt vs Riverpod

Flutterda juda ko'plab State Managementlar (SM) va Dependency Injection (DI) servislar mavjud. Har birining juda ko'plab avfzallik va kamchilikari bor. Kelilar bugun bularni bir qator ko'rib chiqamiz. Lekin qay biridan foydalanish hammaning o'zining subektiv fikri.

Birinchi navbatda SM larni ko'rib chiqsak : BLoC (Business Logic of Component) vs Riverpod

- BLoC (7,7k favorite, 2.4M download, 34 days ago updated) bloclibrary.dev tomonidan qo'llab quvvatlanadigan doimiy tarzda qo'llab quvvatlanadi. Juda ham ko'plab katta kompanyalar tomondan ishlatilinadi va ko'plab dasturchilar tomonidan tavsiya etiladigan, Stream'ga asoslanga, business logic hamda UI ni bir biridan ajratgan, State,Event ga ajratilgan clean hamda testable state managament hisoblanadi. Ushbu SM katta va murakkab loyihalarga juda ham mos chunki UI ning hohlagan qismini statelar bilan boshqarish mumkin. O'rganishga oson hamda ishlatish juda qulay. Bundan tashqari BLoC ning minimallashtirilgan Cubit formati ham juda qulayligi bilan mashxur.
BLoC bilan widgetlarni qayta yozish shart emas chunki BlocBuilder orqali istalgan qismning stateini boshqarish mumkin.

- Riverpod (3.6k favorite, 2.19M download, 7 months ago updated) dash-overflow.net tomonidan qo'llab quvvatlanadigan reaktiv caching hamda data-binfing framework SM, Ya'ni Errorlarni avtomatik cach qiladigan, business logic UI dan ajratilgan, testable, scaleable, hamda reusable. Ushbu SM ham ko'plab communitiylar tomonidan qo'llab quvvatlanadi hamda keng miqyosda ishlatilinadi. O'rnatish birmuncha qiyin hamda ishlatish uchun widgetlarni qayta yozish kerak masalan ConsumerWidget kabi widgetlardan extend qilish lozim. Provider ustiga qurilgan hamda uning ko'plab kamchiliklarini tuzatgan. Statelarni boshqarish ChangeNotifierProvider lar orqali amalga oshiriladi. Kichik hamda o'rta darajadagi projectlar uchun qulay.

Ikkinchi navbatda DI larni ko'rib chiqsak : GetIt vs Riverpod

- GetIt (4.4k favorite, 1.86M download, 5 months ago updated) fluttercommunity.dev tomonidan qo'llab quvvatlanadigan Service Locator bo'lib Provider hamda InheritedWidget o'rnida obektlarga kirish uchun qo'llaniladigan package. Uning avfzallik tomoni obektlarga kirish uchun hech qanday context shart emas. Ihtiyoriy joydan turib obektlarni chaqirish va ishlatish mumkin. O(1) tezilikda hamda o'rganish uchun oson. Ushbu package aynan DI muammosni hal qilish uchun yaratilgan. Lekin obektlarni dispose qilish manually. Test jarayonlarida ham bazi kamchiliklarga ega.

- Riverpod yuqoridagi malumotlarga qo'shimcha ravishda riverpod o'zining DI ga ham ega bu uni bir package bilan ham SM ham DI o'rnida ishlatishga yordam beradi. Uning yana bir avfzalligi compile-time safety ya'ni compile timeda type checking qiladi hamda bu runtime errorlarni olidin oladi. Automatik dispose obektlarni keraksiz vaqtda hotiradan o'chirib tashlaydi. Test jarayonlari uchun juda ham qulay.


Ushbu kombinatsiya to'qnashuvida ya'ni BLoC+GetIt vs Riverpod in TDD da har biri o'zining yutuq va kamchiliglariga ega bo'ldi. Qay birini ishlatishdan qatiy nazar ko'dining sifati hamda dasturing ishlash tezligi tez bo'lishi eng muhumi hisoblanadi.

Ushbu solishtiruv haqida ko'plab maqolalar va maslahatlar oldim. Kimdir unisini maqtasa kimdir boshqasini maqtaydi. Menimcha kim qay birini yaxshi bilsa, muammolarga u bilan yechim topa olsa menimcha shunisi muhum. Lekin bu qolgan birini butunlay ishlatmaslik kerak degani emas. Shunchaki projectga qarab kerakli kominatsiyadan foydalana olish bu dasturchining ijodiga havola.

P.s/ "Eng yaxshi dasturlash tili ustozing senga o'rgatgani" deyilgandek eng yaxshisi o'zing bilgan hamda u bilan muammolarni hal qila oladigan tool. Bu yerda o'zidan keyin keladigan dasturchilarni ham o'ylash kerak albatta πŸ˜‰
Assalomu alekum. Eid ul Adha hamda Juma bayrami hammaga muborak bo’lsinπŸŒ™
Please open Telegram to view this post
VIEW IN TELEGRAM
Bazida widgetlarni body/children qismlari kattalashib ketsa ko’pchilik ularni widget qaytaradigan function yoki methodlarga ajratadi.
Ushbu articleda nega ularni function/method emas aynana statefull yoki stateless widgetlarga ajratish kerakligi haqida maslahatlar berilgan.

https://medium.com/@heshamerfan97/stop-using-widget-function-in-flutter-29c0029e415e
#question
Hayot yo’liz uchun eng zo’r hulosa olgan 3 ta kitob va aynana nima ?
KISS'ning manosini tushunib yetkaningda 😱
Please open Telegram to view this post
VIEW IN TELEGRAM
#urgent
Yana bir martta aytaman.
Siz qanchalik ishizi zo'r qilmang, interviewga tayyorlanmas ekansiz baribir katta kompanyalarga kira olmaysiz.
Interview savollari oddiy va zerikarliga o'xshab tuyiladi. Bazi savollarni deyarli savol beruvchi ham bilmasligi mumkin lekin bariga nazariy tayyorlanish ham kerak.
Interview huddi davlat tashkilotlarida diplom so'rashga o'xshaydi - uni olish qanchalik manosiz bo'lgan bo'lsa ham olgan bo'lishiz kerak.
This media is not supported in your browser
VIEW IN TELEGRAM
Techie's Blog πŸ‘¨πŸ»β€πŸ’»
#question Hayot yo’liz uchun eng zo’r hulosa olgan 3 ta kitob va aynana nima ?
Hozirgacha o'qigan kitoblarimdan o'z hayotimga ta'sir o'tkaza olganlarini sanab o'taman.

1. Savdogarlar ustozi(1-qism) - Ushbu kitobdan mol-dunyoni qanday boshqarish, Ota-ona, oila va farzandlarga qanday munosabatda bo'lishni, sahiy bo'lishini, ham dunyo ham ohirat uchun qanday zahira yig'ishni o'rgandim. Menga bu kitobda Ibn Muborakning umri so'ngida boyliklarini ohirati uchun sariflagani juda yoqqan. Ya'ni farzandlarini to'g'ri tarbiyalab ilmli qilgach ularga katta boylik qoldirmadi balki ular o'z ishlarini yuritadigan darajada boylik berib qolganini o'z ohirati uchun sadaqa va ehsonga ajratdi. Bizda qanday bo'lishini o'zilar bilasizlar.

2. Molxona - Albatta bu kitob ko'pchilikka yoqmaydi lekin u juda ham keskin va bazilarda mavjud tuzumga nisbatan qarshilik harakatini ham keltirib chiqarishi mumkin. Ammo buni to'g'ri maqsadda qo'llay olish ham kerak. Bu kitobdab nimalar olganimni bu yerda ochiqlay olmayman lekin o'qisangiz o'zingizda ham his qilasiz bu g'oyalarni.

3. Qo'rqma - XXI asrda yozilgan va har bir o'quvchining qon-qoniga singib undagi mudroq tuyg'ularni uyg'ota oladigan asar deb bilaman. Bu men o'qigan va Jadidlar haqidagi tasavvurimni tubdan o'zgartirgan, vatan, o'z yerni, kelajak avlodni qutqarish uchun qilingan haqiqiy qahramonliklarni menga bildirgan asar bo'ldi. Insonda qorin va bola g'amidan ham kattaroq tashvishlar bo'lishi kerakligi haqidagi asar. Albatta bu asardagi voqealar har bir yosh kitobxonga ta'sir qilmay qolmaydi albatta.

Menda hozircha shular. Lekin bular orasiga hozir qo'shishim mumkin bo'lgan yana bir asar ham bor. Hali oxirlamadi lekin albatta qo'shishga arziydi.
"Qarzga olingan umr" Remark. Nega ayanan bu kitob. Chunki bu kitobda o'limi muqarrar bemor qizning hayotga, yashashga bo'lgan qarashlari o'zgargani haqida hikoya qilinadi. Agar sizni o'limnigiz yaqinligini sezganingizda hozirda e'tibor berayotkan mayda-chuda narsalarga e'tibor bergan bo'larmidiz ?. Kimlar bilandir tortishib bebaxo vaqtingizni sariflagan bo'larmidingiz. Albatta bunday holatda o'lchovlar ham o'zgaradi. Anashu o'zgargan o'lchovlarni kitob o'qish davomida albatta topasiz degan umiddaman.
Ko’rvorish kerak πŸ˜‰
Techie's Blog πŸ‘¨πŸ»β€πŸ’»
Ko’rvorish kerak πŸ˜‰
Liquid Glass'ni sevdim. Ko'ramiz on-device qande ko'rinarkin.
O'zi blurry effect iOS'chalik hech qaysi platformada performance emas edi.
Ob-havo zo’r bo’lyaptimi ?
Hahahahaa.
O’zim hursand bo’lsam bo’ldida. Brovlar bilan meni nima ishim bor πŸ˜‚.
#savol
Dartda static hamda dynamic listlarning farqi nimada ?

- Ularing asosiy farqi type safety'sida. Ya'ni
static listlar - compile-time type check bo'ladi, performance va code safety uchun ham ancha qulay;
dynamic listlar - ixtiyoriy type'ni qabul qilishi mumkin, compile-time emas balki runtime'da va hatoliklar chiqish ehtimoli juda katta, qulay lekin havfli.

Endi ular xotirada qanday joylashishi haqida gaplashadigan bo'lsak:

static list - type aniqligi hisobiga xotiradan bir hilda joy ajratadi, dart vm (JIT yoki AOT) vaqtida ham bu type aniq bo'ladi, joylash va o'qish tez chunki hech qanday type checking shart emas.

dynamic list - har bir elementning reference saqlanadi, VM qo'shimcha qanday typeligi va qayerda joylashgani haqida metadata saqlaydi, sekin o'qiladi chunki runtime type checking bor, shular sabab xotiraga yuklama ko'p tushadi.

Shuning uchun har doim o'zgaruvchi type'ini aniq berib ketish tavsiya etiladi.
Yangilikni qabul qila olmagan odam o'sishdan to'xtagan odam hisoblanadi.

Dasturlashda "Ishlayaptimi tegam" degan termin juda mashxur hisoblanadi lekin qo'lidan kelsa uni optimallashtirish kerak deb bilaman. Bu o'sishni qabul qilmaslik deb bilaman. Bu sohada har kuni qandaydir yangliliklar qilinadi. Dasturchi bulardan habardor bo'lishi va agar foydali bo'lsa o'z ishiga tadbiq qilishi kerak.

p.s/ Siz "Ishlayaptimi tegma" turidagi odammisiz ?

@techiesBlog
Techie's Blog πŸ‘¨πŸ»β€πŸ’»
Ko’rvorish kerak πŸ˜‰
iOS26'ning Liquid Glass effekti e'lon qilingach ko'pchilik bu flutterda bo'lmaydi deyishgandi lekin liquid_glass_renderer package orqali ushbu effekni osson hal qilishingiz mumkin bo'ladi.
Forwarded from Ilhomjon | Blog
17-iyundan boshlab Yandex Go va Yandex Maps ilovalari orqali avtobuslarning real time rejimidagi harakati Oβ€˜zbekistonning 13 ta shahrida mavjud boβ€˜ldi.

deya xabar berdi Sardor Qodirov o'zining LinkedIn tarmog'idagi sahifasida

Avvallari poytaxtga borganimizda havas qilar edik, endi bu xizmat 11 ta shaharda joriy qilinibdi: Angren, Andijon, Buxoro, Jizzax, Guliston, Qarshi, Navoiy, Namangan, Nukus, Urganch, Fargβ€˜ona.

@ilhomjon_asraqulov