Media is too big
VIEW IN TELEGRAM
⚡2😱2👍1👌1
Forwarded from Techie's Blog
Vanihoyat meaningful move.
Oldinlari faqat inspector ichidan boshqarilar edi manashu "zormonda". Endi deviceni o'ziga qo'shib yaxshi ish qilishibdi
Oldinlari faqat inspector ichidan boshqarilar edi manashu "zormonda". Endi deviceni o'ziga qo'shib yaxshi ish qilishibdi
Most Advanced and Useful Flutter Techniques (from r/FlutterDev)
### Advanced Flutter Techniques
- **State Management**
- Use tools like Riverpod for clean and easy async state management.
- Build async-friendly UI components that react to AsyncValue states.
- **Performance Optimization**
- Profile your app regularly.
- Follow good architectural patterns to reduce the need for later optimization.
- **Custom Animations and Transitions**
- Use the `flutter_animate` package.
- Use the Hero widget for smooth page transitions.
- **Native Platform Integration**
- Use PlatformView and MethodChannel to work with native SDKs.
- Call C/C++ libraries via Dart FFI (e.g., OpenCV for image processing).
- Try Flutter Rust Bridge and other emerging FFI tools.
- **Effective Debugging**
- Use breakpoints and verify app state during debugging.
- **CI/CD Pipelines**
- Use Melos for monorepo management, running tests, and scripting both locally and in CI.
- **Complex UI and Layouts**
- Use basic Flutter widgets like MediaQuery, LayoutBuilder, and SafeArea for responsive design.
- **Best Testing Practices**
- Write composable helper functions inspired by React Hooks to manage lifecycle and resources in tests, reducing boilerplate.
- **Working with Packages & Plugins**
- Use Melos to manage multiple packages and streamline your workflow.
- **Other Useful Practices**
- Follow SOLID design principles for maintainable code.
- Use git hooks to automate formatting and other common tasks.
- Launch emulators from the terminal or VSCode launch.json for faster startup.
- Set up centralized logging with strategy patterns for analytics and console logs.
- Create strongly-typed network libraries with mock implementations for easier testing.
### Use Cases for Native Code Integration
- Alarm screen that appears even when the app is closed or the phone is locked.
- Native APIs or libraries not yet available in Flutter (e.g., Azure Speech Recognition).
- Heavy processing tasks using C++ libraries via Dart FFI (e.g., OpenCV).
@flutterdevuz
Forwarded from Flutter Dev Talk
🔥 Yangilik:
Serverpod jamoasi tomonidan iOS26'ning Liquid Glass designiga pixel2pixel qilib ishlangan yangi packagi chiqarilibdi. Bu package oldingi liquid_glass_renderer packagega qaraganda ancha qulaydek tuyildi.
Sinab ko'ramizmi ?
https://pub.dev/packages/cupertino_native
Flutter Dev Talk | Techie's Blog
Serverpod jamoasi tomonidan iOS26'ning Liquid Glass designiga pixel2pixel qilib ishlangan yangi packagi chiqarilibdi. Bu package oldingi liquid_glass_renderer packagega qaraganda ancha qulaydek tuyildi.
Sinab ko'ramizmi ?
https://pub.dev/packages/cupertino_native
Flutter Dev Talk | Techie's Blog
Dart packages
cupertino_native | Flutter package
Native Liquid Glass widgets for iOS and macOS with pixel-perfect fidelity.
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
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.
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.
Flutter Dev | Uzbekistan 🇺🇿
🚀 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…
Manba: Mukhriddinbek Samidov
Notes:
More: https://dev.to/harsh8088/mastering-solid-principles-in-flutter-3hp7
@flutterdevuz
// ================== 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
DEV Community
Mastering SOLID principles in Flutter
SOLID principles are a set of guidelines for writing clean, maintainable, and scalable...
⚡1👍1