Flutter Dev | Uzbekistan 🇺🇿
397 subscribers
574 photos
68 videos
25 files
401 links
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
Download Telegram
iPhone 17?

iPhone 99% marketing + 1% alyumin (toʻgʻri bo'rttirdim)

Sam Altman AGI yaqin deb turgan paytda, iOS "alarm clock" ilovasidagi karusel raqam tanlagichini "loop" qilish o'rniga, uzuuuun list bervorgan ekanda.

PM: Senmidi yangi ishga kelgan Stajor? Alarm app qilib berasan.
Dev: Bro, for/while iteratorni o'qimagandim.
PM: Listlarni o'qiganmisan? Uzun list qib qo'yor, hich kim oxirigacha scroll qimidi!

P.S: Tajriba qilishni istasangiz 10-15 sekund scroll qiling.

@flutterdevuz
👍2🆒1
🚀 Dasturchi Darajalari va Rollar: Chalkashliklarga Yakun Yasash

IT sohasida tez-tez ishlatiladigan Junior, Middle, Senior, Team Lead kabi tushunchalar ko‘p hollarda noto‘g‘ri talqin qilinadi.
Masalan, ko‘pchilik “Team Lead”ni Senior’dan keyingi daraja deb o‘ylaydi.

Aslida esa:
👉 Daraja (Level) va Rol (Role) — bu ikki xil tushuncha.

📊 Darajalar (Levels) – Malaka va Tajriba Bosqichlari

Daraja — bu mutaxassisning bilimlari, tajribasi va mas’uliyat ko‘lamini bildiradi.

Junior Developer

Middle Developer

Senior Developer

🔗 Batafsil: Junior, Middle, Senior Developer haqida

👥 Rollar (Roles) – Jamoa Ichidagi Vazifalar

Rol — bu mutaxassisning jamoa yoki loyiha ichida bajaradigan vazifasi.
Bir xil darajadagi odam turli rollarda bo‘lishi mumkin.

🔹 Member (Developer)

Kod yozish, testlash yoki boshqa texnik ishlarni bajaradi.

Darajasi: Junior | Middle | Senior bo‘lishi mumkin.

🔹 Team Lead

Jamoani boshqaradi, vazifalarni taqsimlaydi, ustuvorliklarni belgilaydi.

Texnik qarorlar qabul qiladi, ammo doim ham arxitektura darajasiga kirmaydi.

Jamoa a’zolariga mentorlik qiladi.

Darajasi: odatda Senior, ba’zan soft skillari kuchli bo‘lsa Middle ham bo‘lishi mumkin.
⚠️ Muhim: Team Lead — Senior’dan keyingi bosqich emas, bu rol.

🔹 Architect / Tech Lead

Tizim arxitekturasini ishlab chiqadi.

Texnologiyalarni tanlaydi, uzoq muddatli texnik qarorlar qabul qiladi.

Ko‘pincha bir nechta jamoaga yo‘l-yo‘riq beradi.

Darajasi: odatda Senior, lekin roli — arxitektura dizayneri.

🔗 Batafsil: Developer uchun o‘sish ketma-ketligi

🔹 Project Manager (PM)

Texnik emas, biznes va jarayon boshqaruvi bilan shug‘ullanadi.

Mijoz bilan aloqa qiladi, muddatlarni belgilaydi, risklarni boshqaradi.

Daraja (Junior/Middle/Senior) tushunchasi qo‘llanilmaydi.

🔹 SecOps / QA / Data Specialist

Har biri o‘ziga xos rolda: xavfsizlik, testlash, ma’lumotlar tahlili.

Darajalari: Junior | Middle | Senior bo‘lishi mumkin.

Eng Ko‘p Chalkashadigan Masala: Middle vs Team Lead

Ko‘pchilik noto‘g‘ri o‘ylaydi:
Junior → Middle → Senior → Team Lead

To‘g‘risi esa:

Darajalar (Levels): Junior → Middle → Senior

Rollar (Roles): Developer (member) → Team Lead → Architect

Ya’ni:

Team Lead — bu lavozim emas, rol.

Senior bo‘lish shart emas, ba’zi hollarda Middle ham Team Lead bo‘lishi mumkin.

Lekin hamma Seniorlar Team Lead emas.

🎯 Xulosa

Darajalar (Levels) — mutaxassisning bilim va tajribasi.

Rollar (Roles) — jamoa ichidagi vazifasi.

Junior, Middle, Senior — malaka bosqichlari.

Team Lead, Architect, Member, PM — rollar.

👉 Daraja va rolni adashtirish — noto‘g‘ri kadr boshqaruvi va kutishlarga olib keladi.
IT kompaniyalarda muvaffaqiyatli ishlash uchun ushbu farqlarni to‘g‘ri tushunish juda muhim.
Faollik = DON = 💵

OCHISH

@flutterdevuz
Notes:
// ================== SOLID Principles ==================

// 1. Single Responsibility Principle (SRP)
// A class should have only one reason to change.

class SaveUserManager {
void saveUser() {
print("User saved.");
}
}

class ValidateUserManager {
void validateUser() {
print("User validated.");
}
}

// ======================================================

// 2. Open-Closed Principle (OCP)
// Software entities should be open for extension but closed for modification.

abstract class SalaryManager {
int salary();

int? bonus() {
return 200; // default bonus
}
}

class Junior extends SalaryManager {
@override
int salary() => 400;
}

class Middle extends SalaryManager {
@override
int salary() => 900;
}

class Senior extends SalaryManager {
@override
int salary() => 1400;

@override
int? bonus() => 400;
}

// ======================================================

// 3. Liskov Substitution Principle (LSP)
// Subtypes must be substitutable for their base types.

abstract class Shape {
int area();
}

class Rectangle extends Shape {
int height;
int width;

Rectangle(this.height, this.width);

@override
int area() => height * width;
}

class Square extends Shape {
int side;

Square(this.side);

@override
int area() => side * side;
}

// ======================================================

// 4. Interface Segregation Principle (ISP)
// No client should be forced to depend on methods it does not use.

abstract class DrivingTransport {
void drive();
}

abstract class FlyingTransport {
void fly();
}

abstract class SwimmingTransport {
void swim();
}

class BMW implements DrivingTransport {
@override
void drive() {
print("BMW driving on road...");
}
}

class Boat implements SwimmingTransport {
@override
void swim() {
print("Boat swimming on water...");
}
}

class Airplane implements FlyingTransport {
@override
void fly() {
print("Airplane flying in the sky...");
}
}

// ======================================================

// 5. Dependency Inversion Principle (DIP)
// High-level modules should not depend on low-level modules.
// Both should depend on abstractions.

abstract class AuthService {
void signIn();
}

class SmsAuth extends AuthService {
@override
void signIn() {
print("Signed in with SMS");
}
}

class GoogleAuth extends AuthService {
@override
void signIn() {
print("Signed in with Google");
}
}

class UserAuth {
final AuthService authService;

UserAuth(this.authService);

void signIn() {
authService.signIn();
}
}

// ======================================================

void main() {
// SRP
SaveUserManager().saveUser();
ValidateUserManager().validateUser();

// OCP
SalaryManager junior = Junior();
print("Junior salary: ${junior.salary()}, bonus: ${junior.bonus()}");

SalaryManager senior = Senior();
print("Senior salary: ${senior.salary()}, bonus: ${senior.bonus()}");

// LSP
Shape rect = Rectangle(10, 20);
Shape square = Square(15);
print("Rectangle area: ${rect.area()}");
print("Square area: ${square.area()}");

// ISP
BMW().drive();
Boat().swim();
Airplane().fly();

// DIP
UserAuth userAuth1 = UserAuth(GoogleAuth());
userAuth1.signIn();

UserAuth userAuth2 = UserAuth(SmsAuth());
userAuth2.signIn();
}


More: https://dev.to/harsh8088/mastering-solid-principles-in-flutter-3hp7

@flutterdevuz
1👍1
⚡️ 5 Modern Dev Tips You Should Be Using in 2025

1️⃣ AI is your coding buddy, not your replacement – Use tools like ChatGPT or Copilot to brainstorm, debug, or refactor. But keep your brain in the loop. AI speeds you up, you keep the quality.

2️⃣ Automate the boring stuff – Scripts, GitHub Actions, CI/CD… let the machines handle what you repeat daily. Free your time for the fun, creative part of coding.

3️⃣ Dark mode ≠ productivity – Real productivity comes from using extensions & plugins that actually save time. Example: GitLens for Git history or Flutter DevTools for performance.

4️⃣ Learn to read docs faster – Instead of copy-pasting StackOverflow answers, go straight to the official docs. It feels slower at first but saves you months of future headaches.

5️⃣ Build your digital second brain – Use Notion/Obsidian/whatever you like to save snippets, AI prompts, and fixes you discover. Future-you won’t need to “Google that same error for the 50th time.”

@flutterdevuz
🔥2🆒1
Har bir Flutter dasturchisi bilishi kerak boʻlgan komandalar!

#commands

@flutterdevuz
1👍1
Flutter dastur qotyabdimi?

Muammo “framework”da emas, “performance”ni boshqarishda bo‘lishi mumkin.

• UI oqimini band qilmang:
build() yoki setState() ichida og‘ir hisob-kitoblar qilmay, isolate’ga chiqarib qo'ying.

• Og‘ir grafiklardan ehtiyot bo‘ling:
ShaderMask, BackdropFilter kabi effektlar chiroyli, lekin CPU/GPU’ni yutvoradi. Minimal ishlating.

• Rasmlarni optimallashtiring:
Katta va "compress" qilinmagan rasmlar xotira va tezlikni tushiradi. cacheWidth/cacheHeight bilan moslashtiring.

- Qayerda muammo borligini qanday bilasiz?
- Flutter DevTools → Performance → Timeline

1. "flutter run --profile" rejimida ishga tushiring.
2. "DevTools" ochib, Performance ga o‘ting.

Qizil ustun → frame sarfi (16.7ms / 60Hz) buzilganini bildiradi.

UI vs Raster → kod yoki render qayerda sekinligini ko‘rasiz

Shader spike → shaderlar kompilyatsiyasi vaqtida lag bo‘lgan

Rebuild/Repaint → keraksiz qayta chizishlarni kamaytiring (const, RepaintBoundary)

GC spike → xotira bosimi kuchli bo‘lsa chiqadi
1👍1