پکیجهای Flutter
برای افزودن نمودار، امضا، انیمیشن، بازی و امکانات مشابه به ویجت Flutter سفارشی، پکیج موردنیاز را از فهرست آمادهٔ اپادیتور انتخاب کنید. انتخابها مخصوص همان اپ هستند و نسخهٔ هر پکیج در فهرست نمایش داده میشود.
انتخاب و استفاده
- تنظیمات پروژه را باز کنید و بعد از صفحات اصلی، آغازین، معرفی، وارد پکیجهای Flutter شوید. همین بخش از دکمهٔ پکیجهای Flutter در فرم ویجت هم باز میشود.
- پکیج موردنیاز را علامت بزنید و منتظر پیام ذخیره بمانید. هر انتخاب فوراً ذخیره میشود؛ به دکمهٔ ذخیرهٔ تنظیمات پروژه وابسته نیست و «لغو تغییرات» آن را برنمیگرداند.
- در فرم ویجت، نمونه پکیجها را بزنید و نمونهٔ پکیج فعال را انتخاب کنید. گزینههای غیرفعال را ابتدا در فهرست پکیجها فعال کنید.
- پس از تأیید شما، نمونه جایگزین کد فعلی ویرایشگر میشود. اگر کد فعلی لازم است، پیش از جایگزینی یک کپی از آن نگه دارید. کد و پارامترهای JSON را متناسب با نیازتان تنظیم کنید.
- آنالیز کد را اجرا کنید، خطاها را برطرف کنید و ویجت و صفحه را ذخیره کنید.
- خروجی جدید بسازید و نصب کنید؛ سپس عملکرد ویجت را در خروجی هدف بررسی کنید.
پیشنمایش پنل کد Flutter سفارشی را اجرا نمیکند. تغییر پکیج، دسترسی یا سورس Dart با انتشار آنلاین روی نسخهٔ نصبشده اعمال نمیشود و به خروجی جدید نیاز دارد.
پکیجهای قابلانتخاب
نسخههای زیر مربوط به فهرست فعلی اپادیتور هستند. هنگام نوشتن کد، API همان نسخهای را استفاده کنید که پنل نمایش میدهد.
| پکیج | نسخه | کاربرد |
|---|---|---|
fl_chart | 1.3.0 | نمودارهای آماری و داشبورد |
persian_datetime_picker | 3.2.0 | انتخاب تاریخ، ساعت و بازهٔ شمسی |
signature | 6.4.0 | دریافت امضای دستی و تبدیل آن به تصویر |
barcode_widget | 2.0.4 | تولید بارکد و QR برای بلیت، کارت و برچسب؛ اسکنر نیست |
flutter_markdown_plus | 1.0.12 | نمایش مقاله، راهنما و متن Markdown |
flutter_animate | 4.5.2 | انیمیشن و افکت روی ویجتهای Flutter |
lottie | 3.6.1 | نمایش انیمیشن Lottie |
pdf | 3.12.0 | تولید PDF در حافظه؛ چاپ و ذخیرهسازی را باید جدا پیاده کنید |
flame | 1.38.2 | بازی دوبعدی، حرکت، برخورد و ورودی بازی |
flame_audio | 2.12.2 | موسیقی و افکت صوتی بازی؛ پکیج flame را هم فعال میکند |
برای استفاده در کد، import عمومی پکیج را بنویسید؛ مثلاً:
import 'package:fl_chart/fl_chart.dart';
نسخهها توسط اپادیتور مدیریت میشوند. افزودن نام پکیج دلخواه، نصب از Git یا مسیر محلی و تغییر نسخه توسط کاربر امکانپذیر نیست. فقط پکیجهای موردنیاز اپ را فعال کنید.
نمونهها و بازیها
برای شروع بازی دوبعدی، Flame را فعال کنید و نمونهٔ آن را از نمونه پکیجها بگیرید. نمونه، امتیاز را در متغیر flame_score مینویسد و میتواند عملکردی با شناسهٔ onScore را در همان ویجت اجرا کند. عرض و ارتفاع محدود و مناسب برای ناحیهٔ بازی تعیین کنید.
برای صدا، flame_audio را فعال کنید؛ flame خودکار همراه آن فعال میشود. برای حذف Flame، ابتدا پکیج وابسته را غیرفعال کنید. در کد خودتان، صدا را هنگام خروج یا پسزمینه متوقف و منابع را هنگام بستهشدن ویجت آزاد کنید.
نمونهٔ بازی 2048 نیز از دکمهٔ جداگانهٔ فرم در دسترس است و به انتخاب Flame نیاز ندارد.
نمونهٔ Lottie پارامتر animation را به صورت آبجکت یا متن JSON میپذیرد و انتخاب فایل JSON از دستگاه هم دارد. برای انیمیشن مستقل، میتوانید JSON را در پارامترهای ویجت ذخیره کنید تا همراه تنظیمات آن باقی بماند. نمونهٔ PDF فقط تولید در حافظه را نشان میدهد؛ فونت فارسی، ذخیره یا چاپ فایل را متناسب با نیاز اپ پیاده کنید.
فعالکردن پکیج، فایلهای بازی یا انیمیشن را خودکار به خروجی اضافه نمیکند. بستهبندی پروژههای چندفایلی Lottie و مرحلههای Tiled در این فهرست ارائه نشده است؛ نمونههای فعلی را با منابع و نیازهای واقعی اپ خود تطبیق دهید.
دسترسی دوربین
در بخش دسترسیهای کد سفارشی میتوانید دوربین برای کد سفارشی و اسکنر را فعال کنید. این انتخاب، اعلام دسترسی لازم را در خروجی جدید قرار میدهد؛ خودِ آن دسترسی دستگاه را اعطا نمیکند و رابط دوربین یا اسکنر هم نمیسازد.
پیش از استفاده از دوربین، در پاسخ به اقدام کاربر، await app.requestCameraPermission() را فراخوانی کنید. مقدار false یعنی دسترسی داده نشده است؛ در این حالت دوربین را باز نکنید و پیام مناسب نشان دهید. در خروجی تازه، حالت ردشدن دسترسی را هم آزمایش کنید.
تولید بارکد و QR، پخش صدا، دریافت امضا و ساخت PDF بهخودیخود به دوربین، میکروفن یا دسترسی گستردهٔ حافظه نیاز ندارند. برای انتخاب فایل از دستگاه از انتخابگر فایل استفاده کنید؛ انتخاب فایل عمومی در اندروید به مجوز حافظه نیاز ندارد.
حذف پکیج و پکیجهای داخلی
برای حذف پکیج، علامت آن را بردارید و منتظر ذخیره بمانید. اگر کد ذخیرهشدهٔ ویجتی در یکی از صفحات فعال اپ، از جمله صفحات قالب، آن پکیج را import کرده باشد، حذف انجام نمیشود. ابتدا کدهای وابسته را تغییر دهید و صفحهها را ذخیره کنید، سپس دوباره حذف را انجام دهید.
کد ذخیرهنشدهٔ ویرایشگر هنوز جزو بررسی صفحات نیست؛ پیش از حذف، تغییرات مرتبط را ذخیره کنید. پس از حذف نیز دوباره آنالیز بگیرید و خروجی جدید بسازید.
بخش پکیجهای داخلی موجود وابستگیهای داخلی و شرطی را نشان میدهد. پکیجهای داخلی از این فهرست قابل حذف نیستند. پکیجهای مارکت، تبلیغات و اعلان فقط وقتی در خروجی حاضرند که قابلیت مربوط برای اپ فعال باشد؛ نمایش نامشان به معنی فعالبودن در همهٔ خروجیها نیست.
بررسی و رفع اشکال
با تغییر انتخاب پکیجها، نتیجهٔ قبلی آنالیز را دوباره بررسی کنید. آنالیز کد خطاهای Dart و import را پیدا میکند، اما جای ساخت خروجی و آزمون اجرای واقعی را نمیگیرد. اندازهٔ ویجت، صدای بازی، بازگشت از پسزمینه، فونت فارسی و دسترسی ردشده را در خروجی موردنظر آزمایش کنید.
| مشکل | راهحل |
|---|---|
| نمونهٔ پکیج غیرفعال است | پکیج را برای همین اپ فعال کنید؛ پس از پیام ذخیره، منوی نمونهها را دوباره باز کنید |
| import پکیج پذیرفته نمیشود | نام import و انتخاب پکیج برای همین اپ را بررسی کنید و دوباره آنالیز بگیرید |
| حذف پکیج انجام نمیشود | import آن را از ویجتهای صفحات فعال و قالبها حذف و صفحهها را ذخیره کنید؛ وابستگی پکیجهای دیگر را هم بررسی کنید |
| تنظیمات همزمان تغییر کردهاند | با بارگذاری دوباره آخرین انتخابها را بگیرید، سپس انتخاب موردنظر را تکرار کنید |
| قابلیت در اپ نصبشده دیده نمیشود | خروجی تازه بسازید و نصب کنید؛ انتشار آنلاین پکیج یا کد تازه را به نسخهٔ قبلی اضافه نمیکند |
| دوربین باز نمیشود | انتخاب دسترسی، نصب خروجی تازه، نتیجهٔ درخواست مجوز و کد مدیریت ردشدن را بررسی کنید |