قائمة مصطلحات Flutter (Dart)

وصف بعض المفاهيم الأساسية في لغة Dart

Page content

هنا قائمة مصطلحات Flutter (Dart) تحتوي على الأوامر والأوصاف اللغوية الأكثر فائدة:

مطور يعزف على الناي ويقوم برمي السهام الصورة أعلاه هي صورة مُولدة بواسطة الذكاء الاصطناعي (باستخدام نموذج Flux 1 dev) تُظهر المطور يعزف على الناي ويقوم برمي السهام.

أوامر Flutter CLI

إنشاء مشروع Flutter جديد:

flutter create <project_name>

تشغيل تطبيق Flutter:

flutter run

بناء APK نسخة إصدار:

flutter build apk

تحليل الكود Dart:

flutter analyze

تشغيل الاختبارات:

flutter test

الحصول على المكتبات:

flutter pub get

تحديث Flutter:

flutter upgrade

التحقق من تثبيت Flutter:

flutter doctor

بنى لغة Dart

المتغيرات وأنواع البيانات:

int age = 30;
double price = 9.99;
String name = 'John';
bool isActive = true;
var dynamicVar = 'Can be any type';
final constantVar = 'Cannot be reassigned';
const compiletimeConstant = 'Compile-time constant';

السلامة من القيم الفارغة:

String? nullableString;
String nonNullableString = 'Hello';

الوظائف:

void simplePrint() {
  print('Hello');
}

int add(int a, int b) => a + b;

void namedParams({required String name, int? age}) {
  // جسم الدالة
}

void optionalParams(String name, [int? age]) {
  // جسم الدالة
}

التدفق الشرطي:

if (condition) {
  // الكود
} else if (anotherCondition) {
  // الكود
} else {
  // الكود
}

for (var i = 0; i < 5; i++) {
  // الكود
}

while (condition) {
  // الكود
}

switch (variable) {
  case value1:
    // الكود
    break;
  default:
    // الكود
}

القوائم والخرائط:

List<int> numbers = [1, 2, 3];
Map<String, int> ages = {'Alice': 30, 'Bob': 25};

الصفات:

class Person {
  String name;
  int age;

  Person(this.name, this.age);

  void sayHello() {
    print('Hello, I am $name');
  }
}

البرمجة غير المتزامنة:

Future<void> fetchData() async {
  try {
    var result = await someAsyncOperation();
    print(result);
  } catch (e) {
    print('Error: $e');
  }
}

التدفقات:

Stream<int> countStream(int max) async* {
  for (int i = 0; i < max; i++) {
    yield i;
  }
}

إدارة الأخطاء:

try {
  // الكود الذي قد يسبب استثناء
} on SpecificException {
  // معالجة الاستثناء المحدد
} catch (e) {
  // معالجة أي استثناء
} finally {
  // يتم تنفيذه دائمًا
}

تغطي هذه القائمة أهم أوامر Flutter ومكونات لغة Dart، وتقدم مرجعًا سريعًا للمطورين في Flutter.

السلامة من القيم الفارغة في Flutter / Dart

التعامل مع السلامة من القيم الفارغة في Dart لتطبيقات Flutter أمر حيوي لكتابة كود قوي خالي من الأخطاء. إليك دليل بسيط حول كيفية التعامل مع السلامة من القيم الفارغة:

إعلان المتغيرات

المتغيرات غير القابلة للفراغ:

int age = 30;
String name = 'John';

المتغيرات القابلة للفراغ:

int? nullableAge;
String? nullableName;

التعامل مع أنواع القابلة للفراغ

العمليات الخاصة بالقيم الفارغة:

  1. مُشغل الوصول المدرك للفراغ (?.)
String? name;
print(name?.length); // الوصول الآمن إلى الطول إذا لم يكن الاسم فارغًا
  1. مُشغل التجميع (??)
String? name;
String displayName = name ?? 'Guest';
  1. مُشغل التعيين المدرك للفراغ (??=)
String? name;
name ??= 'John'; // تعيين 'John' إذا كان الاسم فارغًا

مُشغل التأكيد ( ! ) استخدم هذا المُشغل بحذر، لأنه يمكن أن يؤدي إلى أخطاء في وقت التشغيل إذا كانت القيمة فارغة:

String? nullableName = 'John';
String nonNullableName = nullableName!;

تحليل التدفق

يُساعد تحليل التدفق في Dart على تحديد متى يمكن استخدام متغير قابل للفراغ آمنًا:

String? getName() => 'John';

void printName() {
  String? name = getName();
  if (name != null) {
    print(name.length); // آمن استخدام الاسم هنا
  }
}

المتغيرات المتأخرة

استخدم late للمتغيرات غير القابلة للفراغ التي يتم تهيئتها بعد الإعلان:

late String lateInitializedName;
void initializeName() {
  lateInitializedName = 'John';
}

التعامل مع المعلمات القابلة للفراغ

void greet(String name, {String? title}) {
  if (title != null) {
    print('Hello, $title $name');
  } else {
    print('Hello, $name');
  }
}

التعامل مع المجموعات

القوائم القابلة للفراغ:

List<String>? nullableList;
List<String?> listOfNullableStrings = ['Hello', null, 'World'];

فلترة القيم الفارغة:

List<String?> mixedList = ['a', null, 'b', null, 'c'];
List<String> nonNullList = mixedList.whereType<String>().toList();

باستخدام هذه الممارسات، يمكنك التعامل بشكل فعال مع السلامة من القيم الفارغة في تطبيقاتك Dart وFlutter، مما يقلل من خطر الأخطاء المرتبطة بالقيم الفارغة ويحسن جودة الكود بشكل عام.

روابط مفيدة