پرش به محتویات

ابزارها و Dependencyهای Mobile

pubspec.yaml و pubspec.lock منبع حقیقت نسخه دقیق هستند. ارتقای SDK یا Package در Pull Request مستقل با Changelog، Test، Analyze و Build پلتفرم انجام می‌شود.

Baseline نصب‌شده

نیاز انتخاب نسخه دلیل
SDK Flutter Stable 3.44.9 Runtime چندسکویی Pinشده
زبان Dart 3.12.2 نسخه همراه Flutter
State و DI flutter_riverpod 3.4.2 State صریح، Testability و کنترل Rebuild
Navigation go_router 17.4.0 Deep Link، Redirect و Routing Declarative
Localization gen_l10n و intl SDK / 0.20.2 راهکار رسمی و پشتیبانی RTL
UI Material 3 SDK پایه Design System بدون UI Kit سنگین
Lint very_good_analysis 10.3.0 تحلیل سخت‌گیرانه و یکسان
Test flutter_test SDK Unit و Widget Test
CI GitHub Actions SHA-pinشده Format، Analyze، Test و Build

Packageهای تاییدشده ولی نصب‌نشده

این Packageها فقط هنگام Feature مصرف‌کننده اضافه می‌شوند:

  • HTTP: dio با یک Client پیکربندی‌شده، Timeout و Interceptor محدود؛
  • Token Storage: flutter_secure_storage فقط برای Refresh Token؛
  • Offline Relational Cache و Queue: drift؛
  • Push: FCM/APNs پشت Interface داخلی؛
  • API Client: OpenAPI Generator با dart-dio پس از Contract Acceptance Test؛
  • Animation: APIهای خود Flutter و Package ثالث فقط با نیاز Design System.

قرارداد Code Generation

خروجی OpenAPI باید در مسیر Generated ایزوله، با Generator و Config Pinشده و بدون ویرایش دستی باشد. CI باید تولید دوباره بدون Diff را بررسی کند. Generated DTO با Domain Model یکی فرض نمی‌شود و Adapter مسئول Mapping است.

سیاست Package

پیش از افزودن Package، License، Maintenance، Popularity به‌تنهایی نه، Advisory، Platform Support، Binary Size، Startup، Memory، Permission و جایگزین SDK بررسی می‌شوند. Version Range شناور برای Dependency محصول مجاز نیست.

انتخاب‌های ردشده به‌عنوان پیش‌فرض

  • GetX، Redux، BLoC، MobX، get_it و injectable در کنار Riverpod؛
  • Hive یا Isar پیش از اثبات مزیت نسبت به Drift؛
  • Token در SharedPreferences یا Database؛
  • UI Kit بزرگ، flutter_screenutil و Breakpointهای Hard-coded؛
  • Firebase Auth، GraphQL و WebView بدون تصمیم محصول و معماری؛
  • Secret در Source، Asset، ARB یا dart-define.