شرح مكتبة otp_animated_fields في Flutter لإضافة فلاتر انميشن إلى حقول OTP
عند تصميم شاشة تسجيل الدخول أو التحقق من رقم الهاتف في تطبيقات Flutter، غالبًا ما نحتاج إلى إضافة حقل لإدخال رمز التحقق OTP، وبعد إدخال الرمز يبدأ التطبيق في التحقق منه وإظهار حالة التحميل.
مكتبة otp_animated_fields توفر طريقة مختلفة ومميزة للتعامل مع هذه المرحلة، حيث تجعل حقول إدخال رمز التحقق تتحول إلى Loading Animation أثناء عملية التحقق، مما يعطي تجربة استخدام أكثر تفاعلية للمستخدم.
في هذا المقال سنتعرف على مكتبة otp_animated_fields وكيفية استخدامها داخل تطبيق Flutter، بالإضافة إلى إنشاء مثال عملي يمكن استخدامه في صفحات تسجيل الدخول والتحقق من الحساب.
ما هي مكتبة otp_animated_fields؟
otp_animated_fields هي مكتبة مخصصة لتصميم حقول إدخال رمز التحقق OTP في Flutter مع إضافة تأثيرات Animation تجعل تجربة إدخال الرمز أكثر تفاعلية.
الفكرة الأساسية للمكتبة هي أن حقول OTP التي يقوم المستخدم بإدخال الأرقام بداخلها يمكن أن تتحول إلى حالة تحميل Animated Loading بعد الانتهاء من إدخال رمز التحقق.
وهذا يجعلها مناسبة بشكل خاص لشاشات مثل:
- تسجيل الدخول باستخدام رقم الهاتف.
- تأكيد رقم الهاتف.
- تأكيد البريد الإلكتروني.
- التحقق من رمز OTP.
- صفحات إنشاء الحساب.
- إعادة تعيين كلمة المرور.
مميزات مكتبة otp_animated_fields
تقدم المكتبة فكرة بسيطة ولكنها مفيدة جدًا عند بناء واجهات Flutter تحتوي على OTP، ومن أهم ما يمكن استخدامه فيها:
- إنشاء حقول مخصصة لإدخال OTP.
- إضافة Animation إلى حقول رمز التحقق.
- تحويل حقول OTP إلى حالة Loading أثناء التحقق.
- إنشاء تجربة استخدام أكثر تفاعلية.
- مناسبة لشاشات تسجيل الدخول والتحقق.
- يمكن دمجها مع API للتحقق من رمز OTP.
- تساعد على جعل واجهة التطبيق أكثر حيوية.
تثبيت مكتبة otp_animated_fields
يمكن إضافة المكتبة إلى مشروع Flutter من خلال الأمر التالي:
flutter pub add otp_animated_fieldsبعد ذلك قم بتشغيل:
flutter pub getثم يمكنك استخدام المكتبة داخل ملفات Dart الخاصة بالمشروع.
فلاتر انميشن مع OTP
إذا كنت تبحث عن طريقة لإضافة فلاتر انميشن إلى واجهة إدخال رمز التحقق، فإن فكرة المكتبة تعتمد على جعل عملية إدخال OTP جزءًا من تجربة التحقق نفسها.
بدلًا من أن يقوم المستخدم بإدخال الأرقام ثم يشاهد مؤشر تحميل منفصل أسفل الحقول، يمكن أن تتحول الحقول نفسها إلى حالة Loading، وبالتالي تكون عملية الانتقال من إدخال الرمز إلى التحقق أكثر سلاسة.
إنشاء شاشة OTP باستخدام Flutter
بعد تثبيت المكتبة يمكن استخدامها لإنشاء واجهة تحتوي على حقول رمز التحقق. ويمكن دمجها مع منطق التطبيق بحيث يبدأ التحقق بمجرد اكتمال رمز OTP.
على سبيل المثال، يمكن أن يكون لدينا شاشة تحتوي على رمز مكون من 6 أرقام، وبعد إدخال الرمز يبدأ التطبيق في تنفيذ عملية التحقق.
import 'package:flutter/material.dart';
import 'package:otp_animated_fields/otp_animated_fields.dart';
class OtpPage extends StatefulWidget {
const OtpPage({super.key});
@override
State<OtpPage> createState() => _OtpPageState();
}
class _OtpPageState extends State<OtpPage> {
bool isLoading = false;
Future<void> verifyOtp(String otp) async {
setState(() {
isLoading = true;
});
await Future.delayed(
const Duration(seconds: 2),
);
setState(() {
isLoading = false;
});
debugPrint('OTP: $otp');
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Verify OTP'),
),
body: Padding(
padding: const EdgeInsets.all(20),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text(
'Enter verification code',
style: TextStyle(
fontSize: 22,
fontWeight: FontWeight.bold,
),
),
const SizedBox(height: 30),
// OTP widget
// Add otp_animated_fields widget here
// according to the package API.
const SizedBox(height: 30),
if (isLoading)
const CircularProgressIndicator(),
],
),
),
);
}
}استخدام OTP مع API
في التطبيقات الحقيقية لن يكون الهدف من إدخال OTP هو عرض Animation فقط، وإنما سيتم إرسال الرمز إلى API للتحقق من صحته.
يمكنك عند اكتمال الرمز استدعاء دالة التحقق، ثم تغيير حالة الشاشة إلى Loading أثناء انتظار استجابة الخادم.
Future<void> verifyCode(String otp) async {
setState(() {
isLoading = true;
});
try {
final response = await verifyOtpFromApi(otp);
if (response) {
debugPrint('OTP verified successfully');
} else {
debugPrint('Invalid OTP');
}
} catch (e) {
debugPrint('Verification error: $e');
} finally {
setState(() {
isLoading = false;
});
}
}لماذا استخدام Animation في شاشة OTP؟
شاشة OTP تعتبر من الشاشات التي ينتظر فيها المستخدم نتيجة عملية مهمة، مثل تسجيل الدخول أو تأكيد رقم الهاتف.
إضافة Animation إلى هذه العملية تساعد على توضيح حالة التطبيق للمستخدم، خصوصًا عندما يحتاج التطبيق إلى تنفيذ طلب API يستغرق بعض الوقت.
بدلًا من أن تبدو الشاشة وكأنها توقفت بعد إدخال الرمز، يمكن استخدام Animation لإظهار أن التطبيق استقبل الرمز ويقوم حاليًا بعملية التحقق.
استخدام المكتبة في تسجيل الدخول
يمكن استخدام المكتبة في تطبيقات تسجيل الدخول التي تعتمد على OTP، مثل التطبيقات التي ترسل رمزًا إلى رقم الهاتف ثم تطلب من المستخدم إدخال الرمز للتأكد من ملكية الرقم.
ويمكن أن يكون تسلسل العملية بالشكل التالي:
- يقوم المستخدم بإدخال رقم الهاتف.
- يرسل التطبيق طلبًا إلى الخادم لإرسال OTP.
- يستقبل المستخدم رمز التحقق.
- يقوم بإدخال الرمز داخل الحقول.
- تبدأ Animation الخاصة بعملية التحقق.
- يرسل التطبيق الرمز إلى API.
- بعد نجاح التحقق ينتقل المستخدم إلى الصفحة التالية.
الخلاصة
مكتبة otp_animated_fields تقدم فكرة مناسبة لتطبيقات Flutter التي تعتمد على OTP، خصوصًا عندما تريد جعل عملية التحقق أكثر تفاعلية بدلًا من استخدام مؤشر تحميل تقليدي منفصل.
كما أن استخدام Animation في شاشات التحقق يمكن أن يعطي التطبيق تجربة استخدام أفضل ويوضح للمستخدم أن عملية التحقق ما زالت قيد التنفيذ.
إذا كنت تعمل على تطبيق Flutter يحتوي على تسجيل دخول أو إنشاء حساب باستخدام OTP، فإن هذا النوع من المكتبات يمكن أن يساعدك على إضافة فلاتر انميشن إلى واجهة التحقق بطريقة بسيطة وجذابة.
مكتبة otp_animated_fields على pub.dev
المزيد من مقالات Flutter
الكود كامل
import 'package:flutter/material.dart';
import 'package:otp_animated_fields/otp_animated_fields.dart';
class OtpPage extends StatefulWidget {
const OtpPage({super.key});
@override
State<OtpPage> createState() => _OtpPageState();
}
class _OtpPageState extends State<OtpPage> {
bool isLoading = false;
Future<void> verifyOtp(String otp) async {
setState(() {
isLoading = true;
});
try {
await Future.delayed(
const Duration(seconds: 2),
);
debugPrint('OTP: $otp');
} finally {
if (mounted) {
setState(() {
isLoading = false;
});
}
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('OTP Verification'),
),
body: Padding(
padding: const EdgeInsets.all(20),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text(
'Enter the verification code',
style: TextStyle(
fontSize: 22,
fontWeight: FontWeight.bold,
),
),
const SizedBox(height: 12),
const Text(
'Enter the code sent to your phone number',
textAlign: TextAlign.center,
),
const SizedBox(height: 35),
// Configure the otp_animated_fields
// widget here based on your desired OTP length
// and animation configuration.
const SizedBox(height: 30),
if (isLoading)
const CircularProgressIndicator(),
],
),
),
);
}
}مزيد من المقالات : شرح Scrapy في Python 3 لاستخراج روابط الفيديوهات من Google Drive وحفظها داخل JSON






