فلاتر (Flutter) یکی از فریمورکهای محبوب توسعه اپلیکیشنهای موبایل است که به توسعهدهندگان امکان میدهد تا اپلیکیشنهای زیبا و سریع برای اندروید و iOS بسازند. یکی از موضوعات مهم در توسعه اپلیکیشنها، بهخصوص اپلیکیشنهای فرممحور، Validation است. Validation به ما کمک میکند تا از ورود دادههای نامعتبر توسط کاربران جلوگیری کنیم. در این مقاله به صورت جامع به آموزش validation در فلاتر میپردازیم.
چرا Validation اهمیت دارد؟
قبل از اینکه به نحوه پیادهسازی validation در فلاتر بپردازیم، باید به اهمیت این موضوع بپردازیم. هر برنامهای که با دادههای ورودی کاربر سروکار دارد، باید اطمینان حاصل کند که دادههای ورودی معتبر هستند. اگر ورودیهای نامعتبر به سیستم وارد شوند، میتوانند منجر به بروز خطاها، کاهش امنیت و نارضایتی کاربران شوند.
برای مثال، فرض کنید یک فرم ثبتنام دارید که از کاربر میخواهد ایمیل خود را وارد کند. اگر ایمیل وارد شده معتبر نباشد، نمیتوانیم با کاربر ارتباط برقرار کنیم. یا اگر کاربر رمز عبوری وارد کند که ضعیف است، امنیت حساب کاربری او در معرض خطر قرار میگیرد. بنابراین، اعمال validation در فلاتر امری ضروری است.
نحوه پیادهسازی Validation در فلاتر
فلاتر ابزارهای مختلفی برای اعمال validation فراهم میکند. در این بخش، به بررسی چند روش رایج برای پیادهسازی validation در فلاتر خواهیم پرداخت.
استفاده از TextFormField و Validator
یکی از رایجترین روشهای validation در فلاتر، استفاده از TextFormField است. این ویجت قابلیت تعریف یک validator را به شما میدهد. Validator یک تابع است که ورودی کاربر را بررسی میکند و در صورت نامعتبر بودن، یک پیام خطا برمیگرداند.

در این مثال، ابتدا بررسی میکنیم که آیا فیلد خالی است یا نه. سپس با استفاده از یک الگوی Regular Expression، فرمت ایمیل را بررسی میکنیم.
مدیریت فرمها با <<GlobalKey<FormState>
برای مدیریت و بررسی اعتبار کل یک فرم، میتوانیم از یک Form با استفاده از GlobalKey<FormState> استفاده کنیم. این کلید به ما امکان میدهد تا به وضعیت فرم دسترسی داشته باشیم و از متد validate() برای بررسی اعتبار تمام فیلدها استفاده کنیم.

در این کد، از یک Form با کلید _formKey استفاده کردهایم که امکان بررسی کل فرم را به ما میدهد. با کلیک بر روی دکمه “ارسال”، ابتدا فرم اعتبارسنجی میشود و سپس در صورت معتبر بودن، پیام موفقیت نمایش داده میشود.
استفاده از کتابخانههای جانبی
فلاتر دارای کتابخانههای جانبی زیادی است که میتوانند به شما در فرآیند validation کمک کنند. یکی از این کتابخانهها، flutter_form_builder است که ابزارهای متنوعی برای ساخت و مدیریت فرمها و validation فراهم میکند.
برای استفاده از این کتابخانه، ابتدا باید آن را در فایل pubspec.yaml اضافه کنید:

سپس میتوانید از ویجتهای این کتابخانه برای ساخت فرم و انجام validation استفاده کنید:

در این مثال، از FormBuilderTextField استفاده کردهایم که مشابه TextFormField است اما امکانات بیشتری برای validation فراهم میکند. با استفاده از FormBuilderValidators.compose، میتوانیم چندین validator را با هم ترکیب کنیم.
پیادهسازی Validation سفارشی
اگر نیاز دارید که Validation خاص و سفارشی برای فیلدهای خود پیادهسازی کنید، میتوانید از یک validator سفارشی استفاده کنید. برای این کار، کافی است یک تابع تعریف کنید که نوع ورودی مورد نظر را بپذیرد و در صورت نامعتبر بودن، یک پیام خطا برگرداند.

سپس میتوانید این تابع را به عنوان validator به ویجت TextFormField یا هر ویجت دیگری که از validator پشتیبانی میکند، اضافه کنید.

استفاده از متدهای Async برای Validation
در بعضی مواقع، ممکن است نیاز داشته باشید که یک فرآیند asynchronous مانند بررسی موجود بودن نام کاربری در سرور را برای validation انجام دهید. برای این کار میتوانید از متدهای async در validator استفاده کنید. اگرچه فلاتر به صورت پیشفرض از این نوع validation پشتیبانی نمیکند، اما میتوانید با تغییراتی در طراحی فرم خود، این کار را انجام دهید.
برای مثال، میتوانید یک تابع async تعریف کنید که دادهها را به سرور ارسال کند و سپس نتیجه را برگرداند:

سپس میتوانید این تابع را در فرآیند validation خود استفاده کنید. با این حال، باید مطمئن شوید که فرآیند اعتبارسنجی به درستی و در زمان مناسب انجام میشود.
نتیجهگیری
پیادهسازی validation در فلاتر به توسعهدهندگان امکان میدهد تا از ورود دادههای نامعتبر توسط کاربران جلوگیری کنند و تجربه کاربری بهتری را فراهم آورند. با استفاده از ابزارها و کتابخانههای مختلف فلاتر، میتوانید validationهای پیچیده و سفارشی را پیادهسازی کنید. امیدواریم این آموزش رایگان فلاتر به شما در یادگیری و پیادهسازی validation در پروژههای خود کمک کرده باشد.