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
SUI o'rganish jarayonidan.

Hozirgi paytgacha ko'p dasturlash tillarida kod yozganman:
- Java va Kotlin'da Native Android'larga dastur yozganman;
- C# .Net Framework'da Windows desktop dasturlar yozganman;
- PHP da backend ham yozganman.
Va mana hozirda Dart&Flutter da ham Android ham iOS va vaqt kelsa windows desktoplarga dasturlar yozib kelyapman. Barchasida o'zining qulaylik va kamchilik taraflari bor.
Men uchun boshidan buyon Mobile development juda qiziqarli bo'lgan. Chunki ko'pchilikda smartfon bor va undagi dasturlar qanday ishlashi haqida o'ylamaydi. Menga esa bunga juda ham qiziqarli jarayon.
Macbook kompyuter olgach iOS haqida ham ko'p o'yladim lekin Flutterda yetarli darajaga chiqmay turib yana boshqasiga "burun" suqish yaxshi oqibatga olib kelmasligini bildim va sabr qildim. Hozirda esa vaqt ajratib Swift$SUI ni o'rganmoqdaman va menga juda ham yoqmoqda. To'g'ri uni ham o'z kamchiliklari bor.
- XCode yolg'iz tanlov bo'lgani uchun unda yozish uchalik ham qulay emas. Balki bu men Android Studioga o'rganib qolganimdandir yana kim bilsin.
+ Lekin Swift language menga juda yoqdi, SUI esa juda ham oson va qulay. SUI'da ko'plab komponentlar juda ham preformant va versatile qilib qilingan. Bazi "widget" lar shunday qulayliklarga egaki uni Flutter yoki Androidda qilish uchun ancha vaqt ketadi. XCode yozishga noqulay bo'lsada o'zining bitmuncha qulay toollari bor. Hozirgacha o'rgangan jarayonimda SUI Flutterdan ham ko'ra osonroq turildi. Balki uni hali men bilmagan "sovg'a"lari bordir πŸ˜†. Yaxshasak ko'raveramiz 🀣.
Hozirda YouTubedan tutorial ko'rib chiqyapman. Ular tugagach bitta mini app qilib ko'ramiz.
😴 Uhlashli havo bo'lyaptimi aa ?
Please open Telegram to view this post
VIEW IN TELEGRAM
Come back soon 🀫
Please open Telegram to view this post
VIEW IN TELEGRAM
Finally Dark Mode soon.
Tavakkul bo'lsa shunchalikda πŸ˜‡
Yaxshi xotiralarni eslatuvchi shahar πŸ™‚
Toshqondlikning qishloqdagi kunlari 🀣🀣
β€œUydan online ishleman” deganimni Onam qanday tushunadi:
- Haa uyda kompyuterga tikilib o’tiradi, undan ko’ra uydegi ishlarni qildirvolaman πŸ˜….

P.s/ shuchun ham uydan online ishlash umman option emas ekan 😁
#openWork
Aytgancha men Buchetdan ketyapman.
O’rnimga yaxshi nomzodlar bo’lsa refer qilaman, o’zim interview ham qilarman.
Resumelar bo’lsa o’zilarga ishonselar lichkaga tashlab qo’yselar bo’ladi.
I’m also β€œlook at these” kind of person πŸ™‚
πŸ’―
Please open Telegram to view this post
VIEW IN 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