۱۰ پکیج برتر و محبوب فلاتر | فهرست کاربردی


فلاتر (Flutter) یک کیت ابزار UI ارائه شده از سوی گوگل است که برای ساخت اپلیکیشنهای زیبایی استفاده میشود که به صورت نیتیو از یک کدبیس منفرد برای موبایل، وب و دسکتاپ کامپایل میشوند. در این مقاله 10 پکیج برتر و محبوب فلاتر را در یک فهرست کاربردی ارائه میکنیم که ایدهای کلی در مورد میزان بلوغ فلاتر به عنوان یک پلتفرم ارائه میکنند.
فلاتر بر مینای زبان برنامهنویسی دارت (Dart) عمل میکند. این زبان یک جامعه بزرگ و زنده روی وبسایت Dart.dev دارد که هم پشتیبانی رسمی از این زبان انجام میدهند و هم پکیجهای شخص ثالث برای ایجاد بهرهوری بیشتر در فرایند توسعه فلاتر عرضه میکنند.
اگر هنوز با فلاتر آشنا نشدهاید، پیشنهاد میکنیم ابتدا با استفاده از مقالههای زیر در مورد فلاتر، ویژگیها و کاربردهای آن اطلاعات مقدماتی را به دست آورید:
HTTP
این پکیج (+) روی پلتفرمهای اندروید، iOS و وب کار میکند. این روزها هر چیزی مبتنی بر وب است و از این رو یک کتابخانه قوی HTTP چیزی است که هر کس به آن نیاز دارد. این پکیج دارت شامل یک مجموعه از تابعها و کلاسهای سطح بالا است که امکان مصرف منابع HTTP را تسهیل میکند. این پکیج به خوبی توسعه یافته است و به صورت فعالانهای از سوی تیم دارت نگهداری میشود. این پکیج از سال 2012 معرفی شده است و از این رو در حال حاضر به بلوغ کامل رسیده است.
کتابخانه HTTP دارت تابعهای سطح بالایی ارائه میکند که موجب میشود کار با HTTP آسان باشد:
flutter_slidable
این پکیج فلاتر (+) روی پلتفرمهای اندروید، iOS و وب کار میکند.
پلاگین flutter_slidable یک ویجت اسلایدر با امکانات زیاد به پروژه شما اضافه میکند. اسلایدرهای مانند این غالباً در لیستهای قابل اسکرول دیده میشوند. اپلیکیشن جیمیل یک مثال مهم از این ویجت است و نشان میدهد که لیست اسلایدی یک بهینهسازی چشمگیر در زمینه بهرهوری استفاده از اپلیکیشن محسوب میشود.
این پلاگین مجهز به قابلیتهای زیاد و بیدرنگ قابل استفاده است، اما در صورت نیاز میتوان آن را تا حدود زیادی سفارشیسازی نیز کرد. برخی از قابلیتهای مهم آن به شرح زیر هستند:
- لیستهای ویجت اصلی (چپ/بالا) و ثانویه (راست/پایین) را به صورت اکشنهای گزینههای اسلاید میپذیرد.
- میتواند محو شود.
- دارای چهار پنل اکشن داخلی است.
- دو ویجت اکشن اسلاید داخلی دارد.
- انیمیشن داخلی برای محو شدن دارد.
- لیآوتها و انیمیشنهای سفارشی به آسانی تولید میشوند.
- زمانی که روی یک اکشن اسلاید ضربه بزنید، بسته خواهد شد (قابل override است).
- گزینهای آسان برای غیر فعالسازی افکت اسلاید دارد.
Shared Preferences
این پکیج (+) روی پلتفرمهای اندروید، iOS، وب و لینوکس عمل میکند. پکیج Shared Preferences کتابخانههای ذخیرهسازی دائمی خاص هر پلتفرم را درون خود جای داده است. به این ترتیب میتوان دادههای سادهای مانند ترجیحهای کاربر را ذخیره ساخت. کاربردهای آن به شرح زیر هستند:
- NSUserDefaults روی iOS و macOS
- SharedPreferences روی اندروید
- LocalStorage روی وبسایتها
- یک فایل JSON روی فایلسیستم لوکال برای لینوکس
دادهها ممکن است روی دیسک به صورت ناهمگام ذخیره شوند و هیچ تضمینی نیست که پس از بازگشت روی دیسک باقی مانده باشند، بنابراین این پلاگین به معنی ذخیره دادههای مهم نیست. به این منظور باید از sqflite استفاده کنید که در ادامه توضیح دادهایم.
Sqflite
این پکیج (+) روی پلتفرمهای اندروید، iOS و MacOS کار میکند. Sqflite یک پلاگین SQLite برای فلاتر است. این پکیج از پلتفرمهای مختلف پشتیبانی میکند، اما وب پشتیبانی نشده است چون هیچ سیستم ذخیرهسازی دائمی مبتنی بر SQL در مرورگرهای وب تعبیه نشده است. برخی از قابلیتهای آن به شرح زیر هستند:
- پشتیبانی از تراکنشها و batch-ها
- مدیریت خودکار نسخه
- تابعهای کمکی برای درج، اجرای کوئری، بهروزرسانی و حذف دادهها
- عملیات مختلف در نخ پسزمینه روی iOS و اندروید اجرا میشود تا UI را از قفل شدن بازدارد.
اگر به چیزی بیش از ذخیره ساده دادهها نیاز دارید، این بهترین گزینه است.
url_launcher
این پکیج (+) برای پلتفرمهای اندروید، iOS و وب ارائه شده است. این پلاگین به اجرای یک URL کمک میکند. URL-ها میتوانند به صورتهای زیر باشند:
- HTTP مانند http://example.org و https://example.org
- ایمیل مانند mailto:<e-mail address>
- شماره تلفن مانند tel:<phone number>
- متنهای پیامک مانند sms:<phone number>
کاربرد ابتدایی آن کاملاً سرراست است:
video_player
این پکیج (+) برای پلتفرمهای اندروید، iOS و وب ارائه شده است.
پکیج video_player از فرمتهای مختلفی پشتیبانی میکند، اما همه آنها به پلتفرمی که اجرا میکنید، وابسته است. برای نمونه کتابخانههای پشتیبانی سیستمهای iOS و اندروید متفاوت هستند. همچنین روی وب فرمتهایی که پشتیبانی میشوند به مرورگری که استفاده میکنید، وابستهاند.
توجه کنید که گرچه این پکیج ویدئو پلیر نام دارد، اما این پلاگین میتواند صوت را نیز پخش کند. از آنجا که این پلاگین کاملاً به بلوغ رسیده است و API با ثباتی دارد، میتوانید از آن به جای برخی موارد دیگر، برای پخش صوت استفاده کنید.
این پلاگین میتواند ویدئو را از فایل لوکال (assets) سرور ریموت (مانند یک وبسایت) پخش کند. برای نمونه در قطعه کد زیر یک نمونه از روش استفاده از این پکیج را مشاهده میکنید.
Crypto
این پکیج (+) روی همه پلتفرمها کار میکند. این پکیج که از سوی تیم خود دارت توسعه یافته است، در واقع یک مجموعه از تابعهای هش رمزنگارانه است که در دارت خالص پیادهسازی شدهاند. این بدان معنی است که نیازی به کتابخانههای بیرونی برای عملیاتی ساختن آن ندارید. این پکیج از الگوریتمهای هشسازی زیر پشتیبانی میکند:
- SHA-1
- SHA-224
- SHA-256
- SHA-384
- SHA-512
- MD5
- HMAC (i.e. HMAC-MD5, HMAC-SHA1, HMAC-SHA256)
از آنجا که این پکیج یک ابزار GUI محسوب نمیشود و صرفاً یک کتابخانه رمزنگاری است، روی همه پلتفرمهای مختلف کار میکند.
carousel_slider
این پکیج (+) روی پلتفرمهای اندروید، iOS و وب کار میکند.
یک اسلایدر کاروسل بخشی از بسیاری از وباپلیکیشنها و وبسایتها محسوب میشود. پلاگین carousel_slider یک اسلایدر زیبا و قابل سفارشیسازی عرضه میکند که روی پلتفرمهای مختلف کار میکند.
از آنجا که این پلاگین ویجتهای مختلف را به عنوان محتوا میپذیرد، میتوانید هر چیزی را که یک ویجت باشد را اسلاید کنید. در قطعه کد زیر، مثالی از شیوه ساخت یک کاروسل را در اپلیکیشن فلاتر مشاهده میکنید:
کاروسل چند گزینه قابل پیکربندی به شرح زیر دارد:
- ارتفاع و نسبت ابعادی
- فعالسازی اسکرول بینهایت
- معکوس کردن جهت کاروسل
- فعالسازی پخش خودکار با بازه زمانی و مدت انیمیشن قابل پیکربندی
- تعریف کردن جهت اسکرول (افقی یا عمودی)
Path
این پکیج (+) روی پلتفرمهای اندروید، iOS و وب کار میکند. مسیرها هم از یک سو ساده و از سوی دیگر به طرز خارقالعادهای پیچیده هستند، زیرا بسته به هر پلتفرم متفاوت هستند. برای این که مطمئن شویم که هیچ نوع آسیبپذیری به شکل باگ یا مشکل امنیتی در کد خود نداریم، باید در زمان کار با مسیرها، همواره از یک کتابخانه مسیر استفاده کنیم. جهت الحاق یک دایرکتوری و یک فایل با استفاده از جداکننده فایل روی سیستم عامل به صورت زیر عمل میکنیم:
import 'package:path/path.dart' as p; p.join('directory', 'file.txt');
location
این پکیج (+) روی پلتفرمهای اندروید، iOS، وب و MacOS عمل میکند. یکی از مهمترین نکتهها در مورد گوشیهای تلفن، امکان تحرک آنها است که با توانایی ردگیری دقیق موقعیت ترکیب میشود. این امکانات موجب شده که کاربردهای بسیار مفیدی به دست آوریم. پلاگین location در فلاتر امکان دسترسی به موقعیت کنونی کاربر را تا حدود زیادی تسهیل میکند. این پلاگین زمانی که موقعیت تغییر یابد، Callback-هایی ارائه میکند. همچنین نقاط انتهایی API ارائه میکند که امکان دسترسی درخواست مناسب را به موقعیت کاربر را فراهم میسازد.
سخن پایانی
به این ترتیب به پایان این مقاله با موضوع معرفی 10 پکیج برتر و محبوب فلاتر میرسیم. امیدواریم مواردی که در این مقاله مطرح شدند، مورد توجه شما قرار گرفته باشند، به طوری که بتوانید در پروژههای فلاتر خود از آنها بهره بگیرید.