Flutter Dev | Uzbekistan πΊπΏ
ΠΡΠΊΡΡΡΡ Π² Telegram
Flutter bu - hozirgi kundagi eng yetuk kross platformali dasturlash vositasidir! Bu kanal Flutterning o'zbek zabon vakillari uchun. Blog avtori: Β© Muhammad Aziz (@mamasodikoff) π₯ Ayron olib bering: tirikchilik.uz/cosmos - Web sayt: flutterdev.uz
ΠΠΎΠ»ΡΡΠ΅383
ΠΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΈ
ΠΠ΅Ρ Π΄Π°Π½Π½ΡΡ
24 ΡΠ°ΡΠ°
-37 Π΄Π½Π΅ΠΉ
-230 Π΄Π½Π΅ΠΉ
ΠΡΡ
ΠΈΠ² ΠΏΠΎΡΡΠΎΠ²
Flutterni 1 kun o'rganib, u xaqida fikirim:
β
Menga yoqqan taraflari:
-Xamma narsa tayyor ekan, o'zimiz ishlatedigan
Componentlar xam tayyor ekan (MaterialUI ekan, qiziqganlar uchun)
-React Nativedan ancha tez ekan, kompyuterni unchali qiynamas ekan xam
-Katta projectlar uchun ekan
-"Dart" dasturlash tilini o'zi TypeScriptli ekan, o'zi bilan birga yani
-Optimizatsiya uchun xar bir joyini "const"ga olib qo'ysa bo'lar ekan, lekin bu, JS dagi const emas
π Yoqmagan taraflari:
-React Nativedan ko'ra ko'proq narsa yozish kerak ekan (yani, sintaksisi ozgina qiyinroq ekan, manimcha endi boshlaganim uchun lekin)
-Boshqa aybi yo'q, faqat, refresh qilishi React Nativedan ko'ra pastroq ( balki mani kompyuterimni depdir )
π Qisqa qilib aytganda, zo'r narsa ekan, xali men 1 kun o'rgandim xolos buni, rasmda esa, 1 kunni ichida qilgan projectim...
Manba
@flutterblogsBe PUNCTUAL! π―
Dokumentatsiyani yaxshi yozilgani mana nimaga kerak. Siz ketasiz boshqalar qiynalmasligi uchun ular tushunadigan darajada kodlarni tafsiflovchi qoβllanma, ketma-ketlik yozish kerak.
PS: Bizda dokumentatsiya yozadiganlar kamyob. Shuning uchun har yangi kelgan dasturchi bu kod ahlat, buni qayta yozish kerak deydi. Clean code boβlishi muhim clean code boβlganidan tashqari dokumentatsiya ham muhim kattaroq loyihalarda.
β @flutter_uzbekβ
10 000 dollar kerak bo'lgan startaplarga murojaat!
Sizda startap uchun ajoyib g'oya bor, lekin uni hayotga tatbiq etish uchun kerakli mablag'ingiz yo'qmi?
Xavotir olmang, IT Park sizga kerakli investorlarni topishda yordam beradi!
IT Park startaplarga investorlardan 10 000 AQSH dollari jalb qilish, shuningdek, loyihani ishga tushirish uchun zarur yordam olish imkoniyatini beradi.
IT Park bilan siz startapingiz uchun zarur bo'lgan mablag'ni olishga yordam beradigan keng sarmoyadorlar tarmog'iga kirishingiz mumkin bo'ladi. Biz mos investorlarni topishdan tortib investitsiyalar bo'yicha muzokaralar olib borishgacha bo'lgan butun jarayon davomida yordam beramiz.
Ushbu shaklni to'ldiring va bizning mutaxassislarimiz startapingiz haqida ko'proq ma'lumot olish uchun siz bilan bog'lanishadi va IT Park orzuingizni ro'yobga chiqarishga qanday yordam berishi haqida aytib berishadi.
Google Forms π
#startup #idea
@flutterblogs
Sharing is caring! - Bo'lishish bu g'amxo'rlik!
Kanaldagi postlarni o'z blogingizda yoki boshqa tematik bloglarda/kanallarda bo'lishing va boshqalarga ham foydali ma'lumotlar yetib borishiga hissa qo'shing!
@flutterblogs
Purchases in Flutter
The term "Anonymous" means "(of a person) not identified by name; of unknown name." --> We don't know anything about that person (Name, Phone Number, e-mail id.. etc..) We have not collected any details about him.
Scenario:
Consider a website like Amazon (Without sign-in) where you add some products to the cart enter address, get OTP to confirm your mobile, make payment - or - opt for Cash On Delivery. Under these scenarios you will be considered as an Anonymous user and usually an random user id is generated to monitor the order process. I have also used Anonymous Sign-in option in Firebase.
Now Lets consider Revenue Cat: User has just downloaded your app and wants to use you app as "Anonymous" and wants to have some subscription by making payment. Here you don't provide an App User ID when instantiating the Purchases SDK, At that time RevenueCat will generate a new random App User ID for you and cache it on the device. In the event that the user deletes and re-installs the app, a new random App User ID will be generated.
Add this package in pubspec.yaml - https://pub.dev/packages/purchases_flutter
Sample Code:
package:purchases_flutter/purchases_flutter.dart
Future<void> anonymous() async {
await Purchases.setDebugLogsEnabled(true);
await Purchases.setup("public_sdk_key");
}
Explanation:
package:purchases_flutter/purchases_flutter.dart
Future setup( String apiKey, {String? appUserId, bool observerMode = false, String? userDefaultsSuiteName, })
Containing class: Purchases
Type: Future<void> Function(String, {String? appUserId, bool observerMode, String? userDefaultsSuiteName})
Sets up Purchases with your API key and an app user id.
"public_sdk_key" is the apiKey RevenueCat API Key.
appUserID An optional unique id for identifying the user.
observerMode An optional boolean. Set this to TRUE if you have your own IAP implementation and want to use only RevenueCat's backend. Default is FALSE.
userDefaultsSuiteName iOS-only, will be ignored for Android. Set this if you would like the RevenueCat SDK to store its preferences in a different NSUserDefaults suite, otherwise it will use standardUserDefaults. Default is null, which will make the SDK use standardUserDefaults.
More here: https://medium.com/codimis/in-app-purchase-in-flutter-e3ab5a4fad60
#purchase #inapp
@flutterblogs
In App Purchases in Flutter
Watch online: https://youtu.be/NWbkKH-2xcQ
@flutterblogs
Flutter In App Purchases & Subscriptions for iOS & Android [2022] RevenueCat
Watch online: https://youtu.be/TrkiSZ2mnlo
@flutterblogs
#interview #questions
EPAMning intervyu jarayoni:
1) Dastlab, O'zbekistonda yashashimni bilgani uchun qaysi tilda gapirishimni afzal ko'rishimni so'rardi (rus yoki ingliz).
2) Bo'ladigan intervyu haqida qisqacha ma'lumot berib o'tildi. Unga ko'ra, intervyu uch qismga: tanishish, texnik intervyu va kod yozish qismlariga bolinishi aytildi.
~ Tanishuv qismi:
3) Qayerlarda ishlaganim, qanday proyektlarda qatnashganim (agar proyektlar maxfiy saqlanishi kerak bo'lsa, aytsangiz tushunishadi), Flutterni nega tanlaganim va Software Engineering bilan qancha vaqtdan beri shug'ullanishimni so'rashdi. Proyektlarda mening ahamiyatim, kim sifatida qatnashishim, jamoada va yolg'iz ishlaganda qanday ishlashim haqida qiziqishdi.
~ Texnik Intervyu
4) Test Driven Development:
- Testlarning proyektdagi ahamiyati
- Test qachon yozilishi kerakligi
- Mockito
- Unit Test va Widget Test orasidagi farq
5) Static Analysis (Linter qoidalari) - ahamiyati, qanday ishlatilishi, undagi qoidalar. Masalan, info, warning, error va hokazo
6) Git.
- Git haqida
- merge va rebase orasidagi asosiy farq
7) State Managements
- BLoC, Provider va GetX haqida fikrimni so'rashdi (agar middle kerak bo'lsa, GetX haqida ular istayotgan narsani ayting)
8) REST API, GraphQL, WebSocket
9) Dio va http package'lar haqida
10) Dio va http orasidagi farq. Qaysi biri afzalroq va buning sabablari haqida
11) Retrofit
12) Interceptors
13) Lokal ma'lumotlar omborlari uchun paketlar. SharedPreference, SQFlite, ObjectBox, Hive.
14) Relational va NoSQL ma'lumotlar omborlari orasidagi farq.
15) Deeplinks. Navigator 2.0 orqali deeplinking qilishning yo'li haqida
16) Native Code ni implement qilish -> Method Channels, Event Channels
17) App LifeCycle for deeplinking (foreground, background, cool restart)
18) Flutterni mobil ilovalardan boshqa maqsadlarda foydalanish haqida
19) SOLID haqida
20) Dependency Inversion va Dependency Injection orasidagi farq π
21) Stateful Widget Lifecycle.
22) Stateful Widget Lifecycle bosqich-bosqich tushunchasi (rebuilding va boshqalar).
Qolgan texnik savollar esimda emas.
~ Koding qismi:
1) Data memberlari hashlanmagan klasslar orasida comparing (equations)
2) Future, Future microtask, async await, sync vs async kodlash, logging qilish
Qolgan savollar aniq esimda emas. Yodimdan ko'tarilibdi.
Recruiter menga yuborgan xabardan parcha:
"Hello!
Thank you for taking time to pass a technical interview in our company. Our expert have estimated you as a middle Flutter developer. Unfortunately, now we are looking for senior+ developers and can not make you an offer. Let's be in touch so that in the future we will be able to connect with and offer an interesting position for you!!!"
(2022 yil, Iyul oyi)
Β©οΈ Jasur Jaxongirov
@flutterblogs
Widgetlar yoki Yordamchi metodlar?
Flutterni endi o'rganib, application yozishni boshlagan dasturchilarda File Structure yoki Architecture zo'r bo'lsa ham UI tomonlama kodda best practiselarga amal qilmasliklarini ko'raman.
Takrorlanadigan elementlarni alohida class yoki methodga olish, qaysi biri performance jihatdan foydaliroq? Afzallik va kamchiliklar haqida umuman o'ylab ko'rmagan va qaysi biridan foydalanish to'g'riligini bilmasangiz, ushbu videoni albatta ko'ring.
https://youtu.be/IOyq-eTRhvo
#flutter #tips
@asadbekdev
Yoshlar sizlarga nima boΚ»lgan? Miyangiz zanglab qolganmi? Google, stackoverflow, chatGPT degan narsalarni eshitganmisizlar? Har kuni 10-20 ta shunday xabar shaxsiydan keladi. Guruhda yozganlari sanoqsiz.
BoΚ»ldida endi, sal miyani ham ishga solinglar. Elementar narsalar uchun ham shaxsiydan yozib, javob bermasa "alooo", "...", "???" xabarlar yuborib, meni va eng yomoni oΚ»zingizni vaqtingizni ogΚ»irlab.
GOOGLE QILING!
#qalbnolasi @sariqdev
LifeHack:
- GetX Navigation -
O'zim bu state managementni qoralasam va ishlatmasam ham, uni afzalliklaridan foydalanib turaman. Masalan, shunday "case" da uning navigatori avvalgi stackni "muzlatib" saqlaydi va qayta qurilishiga yo'l qo'ymaydi.
Sog' bo'lasla!
@flutterblogs
Buni bilarmidingiz?!
Flutter "widget stack" idagi ierarxiyani tirik saqlab qoladi!
Flutterda bir "Route" ustiga ikkinchisini bosganingizda avvalgi "Page" lar qurilishdan to'xtamasligni bilasizmi?
Flutter dokumentatsiyasida bu haqida shunday eslab o'tilgan: "Back-Stack dagi widgetlar istalgan paytda qayta qurilishi mumkin"
(Klaviatura ochilib yopilganda ham butun bir stek qayta quriladi)
Shu sabab build yoki init metodlarida, umuman widget UI qismi qurilishi kerak bo'lgan joyda biznes mantiqlarini amalga oshirmang! Aks holda siz boshqa sahifada bo'lsangiz ham tasklar orqada bajarilaveradi.
Bu haqida githubda ham issue ochilgan:
https://github.com/flutter/flutter/issues/11655
Push - metodi ishlatilganda avvalgi widgetni qurilishdan to'xtadadigan
maintainState:false argumenti bor. Lekin shaxsan menda ishlamadi. Sababi menda klaviatura ishlaydigan case edi.
Issue: https://github.com/flutter/flutter/issues/37878
@flutterblogsπ₯π±Responsive Dashboard UI β’ FLUTTER Tutorial (Flutterda kengayuvchi dashboard UI)
Online ko'rish: https://youtu.be/9bo1V9STW2c
Docs: https://docs.flutter.dev/ui/layout/building-adaptive-apps#layout-widgets
#responsive #UI
@flutterblogs
Flutterda "Apple Vision Pro" AR qurilmasiga ham dastur yoza olasiz!
Bu haqida Tim Sneath o'zining twitlarida retwit qildi va Timga yo'llangan xazilona twitlar ham bo'ldi:
"Tim, men hamjamiyat sifatida Flutter qanchalik kengayib borayotganini hisobga olib, biz yangi martabalarni rasmiylashtirishimiz kerak deb o'ylayman. Misollar: Flutter mobil dasturchisi, Flutter veb-ishlab chiqaruvchisi, Flutter full stek, Flutter kir yuvish mashinasi developeri. "
Bunga javoban Tim:
"Flutter kir yuvish mashinasi developeri -- lol π€£π€£ Men toza (clean) kodni ko'rishni yaxshi ko'raman... #HotReload #HotWash "
- deya javob qoldirdi.
#flutter #visionpro
@flutterblogs
Dasturchilik jahannamining 9 doirasi!
1-doira: Bu meni kompyuterimda ishlaydi!
2-doira: Hech kim tushunmaydigan foydalanuvchi konfiguratsiyalarini qo'llash
3-doira: Kod snippetlarini "import" larsiz chiqarish
4-doira: Deyarli bo'sh yoki foydasiz kommit xabarlarini qoldirish
5-doira: Hordiqlardan avval qilingan o'zgarishlarni yuklamaslik (push qilmaslik)
6-doira: Freymworkshunos vs. Freymworkxunob
7-doira: Ma'nosiz nomlardan foydalanish
8-doira: Refaktorlash kerak bo'lgan koddan imkon boricha qochish
9-doira: Hamma narsani bilaman!
#coding #flutter
@flutterblogs
Internet ahli uchun sinovli kunlar bo'layabdi.
Subredditlar "black-out" da.
Stackoverflow esa "qulagan" - https://www.stackstatus.net/
O'zing sabr ber....
#blackout
@flutterblogs
INKAPSULYATSIYA
Inkapsulyatsiyaga misol:
- Shashlik yemoqchisiz, shashlikchini oldiga bordingiz
- Mana 2 kg go'sht,1kg qiyma,1kg jaz shashlik bo'lsin
- Go'shtni berasiz, u sizga tayyor shashlik qilib beradi
Nimasi inkapsulyatsiya?
- Shashlikchi - Class
- Unga go'sht berasiz - constructor
- Shashlikka qo'shiladigan ziravorlar - property
- Shashlik qilish uchun myasarovkadan chiqaradi, marinovka qilish, muzlatadi - bular methodlar
- Shashlikga qo'shadigan ziravori bor, uni faqat shashlikchi biladi - private property
- Shashlik sixdan oqib tushmaslik uchun xxx ishni qiladi, bu ham uni siri - private method
- Shashlikchi shu sirlarini faqat farzandlariga o'rgatgan, ular ham bu shashlik qilish usulidan foydalanishadi - protected method
Siz shashlikchini qanday tayyorlaganiyu nimalar qo'shganini, hammasini bilolmaysiz, lekin shashlik tayyor.
U shu private va protected sirlarini tashqariga chiqarishni xohlamaydi - manashu inkapsulyatsiya, ya'ni sirlarini himoyalaydi.
Shashlikchi - ota bobolaridan shashlik qilish sirlarini avlodlariga meros qilib qoldiradi - Inheritance
O'sha shashlikchi kerak paytda somsa ham tayyorlay oladi.
Bunisi polymorphism.
Xato misol bo'lsa iltimos to'g'rilang.
Β©οΈ Sardor Dushamov
P.s. Yaxshi o'xshatish.
Tasavvur qilib o'rganish ancha oson albatta.
@elboyev
Snippet!
Loyihangizda
AutomaticKeepAliveClientMixin ni ishlating va har safar TabView bolalarini (children) almashtirganingizda ularni qayta qurilishini oldini olasiz!
Foydali bo'gan bo'sa like boooosing! Terqating!
#snippet #code
@flutterblogsNega "readable" ishlatish kerak?
Loyihada ko'pgina tarqoq yordamchilar yoki kengaytmalar bo'lmaydi.
Yordamchilar allaqachon qurilgan va "qutidan" olib foydalanishga tayyor.
O'qilishi oson bo'lishi mumkin bo'lgan ko'plab foydalanish holatlarini topasiz!
- Mana: https://pub.dev/packages/flutter_readable
- Dokumentlari: https://flutterqueen.github.io/website/docs/readable/intro/
Like booosing! Sog' bo'lasla!
#package #plugin
@flutterblogs
