pubspec.yaml چیست و چرا مهم است؟

pubspec.yaml
فایل به عنوان مرکز پیکربندی مرکزی در طول مراحل توسعه برنامه فلاتر عمل می کند. این یک فایل YAML است که ابردادهها، وابستگیها، داراییها و دیگر پیکربندیهای مهم پروژه Flutter شما را تعریف میکند.
بیایید کاوش کنیم pubspec.yaml
ساختار آن، چرایی اهمیت آن و چگونگی تأثیر آن بر برنامه فلاتر شما است.
pubspec.yaml چیست؟pubspec.yaml
فایل مانیفست پروژه های فلاتر و دارت است. برای مشخص کردن موارد زیر استفاده می شود:
- ابرداده پروژه، مانند نام برنامه و توضیحات.
- وابستگی برای افزودن کتابخانه ها و بسته های خارجی.
- دارایی هایی مانند تصاویر، فونت ها و فایل های سفارشی که برنامه شما استفاده می کند.
- وابستگیهای Dev برای ابزارها و کتابخانههای مورد استفاده در طول توسعه، مانند linters یا چارچوبهای آزمایشی.
این فایل از نحو YAML (YAML Ain't Markup Language) پیروی می کند که یک قالب قابل خواندن توسط انسان برای سریال سازی داده ها است.
pubspec.yaml اهمیت
اعلام وابستگی ها
یکی از اهداف اولیه pubspec.yaml
این است که کتابخانه ها و افزونه هایی را که برنامه شما استفاده می کند، اعلام کنید. وابستگی ها عبارتند از:
کتابخانه های اصلی: برای عملکردهای ضروری.
بسته های شخص ثالث: برای ویژگی های اضافی مانند درخواست های HTTP، مدیریت حالت، یا انیمیشن ها.
مثال:dependencies:
flutter:
sdk: flutter
provider: ^6.0.5
http: ^0.15.0
این تضمین می کند که برنامه شما می تواند از ارائه دهنده برای مدیریت حالت و http برای تماس های API استفاده کند.
مدیریت وابستگی های Dev
وابستگیهای Dev ابزارها و کتابخانههایی هستند که در طول توسعه و آزمایش استفاده میشوند اما در ساخت نهایی برنامه گنجانده نشدهاند.dev_dependencies:
flutter_test:
sdk: flutter
lint: ^2.0.0
در اینجا، lint به حفظ استانداردهای کدگذاری کمک می کند، در حالی که flutter_test برای نوشتن تست های واحد و ویجت استفاده می شود.
برخی از ابزارهای Flutter، مانند تولید کد، نیاز به پیکربندی در pubspec.yaml دارند. به عنوان مثال، مولدهای کد مانند json_serializable تحت وابستگی های توسعه دهنده تعریف می شوند.dev_dependencies:
build_runner: ^2.3.0
json_serializable: ^6.5.0
تعریف دارایی ها
تصاویر، فونت ها و سایر منابع برنامه شما باید در pubspec.yaml اعلان شوند تا در ساخت گنجانده شوند. اگر دارایی ها اعلام نشود، برنامه نمی تواند از آنها استفاده کند.flutter:
assets:
- assets/images/logo.png
- assets/audio/background_music.mp3
fonts:
- family: Roboto
fonts:
- asset: fonts/Roboto-Regular.ttf
پیکربندی فراداده پروژهpubspec.yaml
حاوی ابرداده مانند نام، توضیحات و نسخه پروژه است. این اطلاعات هنگام انتشار برنامه شما در Play Store، App Store یا مخزن بسته Dart استفاده می شود.name: my_flutter_app
description: A simple Flutter application
version: 1.0.0+1
نسخه: نسخه برنامه شما (1.0.0) و شماره ساخت (+1) را نشان می دهد.
حفظ محدودیت های محیطی
برای اطمینان از سازگاری، نسخه Dart SDK را که پروژه شما پشتیبانی می کند، مشخص کنید.environment:
sdk: ">=2.19.0 <3.0.0"
یکپارچه سازی پلاگین های فلاتر
افزونههای فلاتر که عملکردهای خاص پلتفرم را ارائه میکنند (مثلاً GPS، دوربین یا اعلانها) باید در pubspec.yaml گنجانده شوند. بدون این، برنامه شما نمی تواند از قابلیت های دستگاه بومی استفاده کند.dependencies:
geolocator: ^9.0.0
shared_preferences: ^2.0.15
فایل ساختار پایه:name: my_flutter_app
description: A new Flutter project
version: 1.0.0+1
environment:
sdk: ">=2.19.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
provider: ^6.0.5
http: ^0.15.0
dev_dependencies:
flutter_test:
sdk: flutter
lint: ^2.0.0
flutter:
assets:
- assets/images/logo.png
- assets/icons/
fonts:
- family: Roboto
fonts:
- asset: fonts/Roboto-Regular.ttf
موارد استفاده رایج
- افزودن کتابخانه ها: به راحتی بسته های شخص ثالث مانند dio را برای شبکه یا بلوک برای مدیریت دولتی یکپارچه کنید.
- سفارشیسازی داراییها: تصاویر، فونتها و سایر منابع مورد استفاده در برنامه خود را شامل و مدیریت کنید.
- نسخهسازی: نسخه برنامه خود را برای بهروزرسانیها و نسخهها دنبال کنید.
- تنظیم تست: از flutter_test یا سایر کتابخانه های آزمایشی برای تست های واحد، ویجت و ادغام استفاده کنید.
- تولید کد: کارهای تکراری مانند سریال سازی JSON را با استفاده از ابزارهایی مانند json_serializable خودکار کنید.
بهترین شیوه ها
- به روز نگه داشتن وابستگی ها: به طور مرتب وابستگی های خود را به روز کنید تا از جدیدترین ویژگی ها و وصله های امنیتی استفاده کنید.
- نسخههای وابستگی پین: از محدودیتهای نسخه (مثلاً ^) برای جلوگیری از شکستن تغییرات استفاده کنید.
- سازماندهی دارایی ها: دارایی ها را در دایرکتوری هایی با ساختار مناسب نگهداری کنید و آنها را به وضوح اعلام کنید.
- اجتناب از بسته های استفاده نشده: وابستگی های غیر ضروری را حذف کنید تا برنامه خود را سبک نگه دارید.
- تست قبل از انتشار: flutter pub را اجرا کنید و برنامه خود را آزمایش کنید تا مطمئن شوید که همه وابستگی ها به درستی پیکربندی شده اند.
نتیجه گیری
این pubspec.yaml
فایل یک بخش ضروری است که به عنوان پلی بین برنامه شما و اکوسیستم Flutter عمل می کند و به شما امکان می دهد وابستگی ها را تعریف کنید، دارایی ها را مدیریت کنید و ابرداده های پروژه خود را پیکربندی کنید. درک صحیح و مدیریت pubspec.yaml تضمین می کند که برنامه شما به خوبی اجرا می شود و به بهترین شیوه ها پایبند است.
همانطور که پروژه Flutter شما رشد می کند، فایل pubspec.yaml در کنار آن تکامل می یابد و به شما امکان می دهد ویژگی های جدید اضافه کنید، تنظیمات را اصلاح کنید و از سازگاری با جدیدترین ابزارها و کتابخانه ها اطمینان حاصل کنید.