By using this site, you agree to the Privacy Policy and Terms of Use.
موافق
عرب فلاترعرب فلاتر
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
قراءة: أفضل Dart client لمشروعك: HTTP، DIO، GraphQL
شارك
تسجيل الدخول
إشعار أظهر المزيد
Aa
عرب فلاترعرب فلاتر
Aa
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
Search

أقسام الموقع

استكشف جميع أقسام الموقع
قسم Dart في موقع عرب فلاتر

Dart

59 مقالات
قسم Widgets في موقع عرب فلاتر

Widgets

104 مقالات
قسم Packages في موقع عرب فلاتر

Packages

19 مقالات
قسم Tutorials في موقع عرب فلاتر

Tutorials

22 مقالات

أخر المواضيع

استكشف أخر المواضيع المنشورة
شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا
Tutorials

شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا

5
حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر
Tutorials

حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر

10
أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات
Tutorials

أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات

17
لديك حساب موجود؟ تسجيل الدخول
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
© جميع الحقوق محفوظة موقع عرب فلاتر 2023
عرب فلاتر > Tutorials > أفضل Dart client لمشروعك: HTTP، DIO، GraphQL
Tutorials

أفضل Dart client لمشروعك: HTTP، DIO، GraphQL

عبدالله يوسف
أخر تحديث 2024/11/15
بواسطة عبدالله يوسف اضف تعليق 5 دقيقة للقراءة 2628 مشاهدات 4
شارك
أفضل Dart client لمشروعك: HTTP، DIO، GraphQL
أفضل Dart client لمشروعك: HTTP، DIO، GraphQL
شارك

خدماتنا البرمجية – عرب فلاتر🚀

خدماتنا البرمجية – عرب فلاتر

سنتحدث في هذا المقال عن HTTP و DIO و GraphQL للعثور على أفضل Dart client لمشروعك. يتم مقارنة المزايا والعيوب وحالات الاستخدام لجعل خيارًا مدروسًا.

المحتويات
HTTP Package:مزايا HTTP:عيوب HTTP:كيفية استخدام HTTP:DIO Package:مزايا DIO:عيوب DIO:كيفية استخدام DIO:مقارنة http مع DioGraphQL Package:مزايا GraphQL:عيوب GraphQL:كيفية استخدام GraphQL:

HTTP Package:

يحتوي Dart على حزمة مدمجة تسمى “http” للتعامل مع جميع احتياجات HTTP الخاصة بك.

مزايا HTTP:

  • وفرها مطوري Dart.
  • معيار للتفاعل بين العميل والخادم.

عيوب HTTP:

  • توفر فقط الوظائف الأساسية. يجب تنفيذ الوظائف الإضافية بشكل مستقل.
  • يتطلب كتابة وظائف إضافية لمعالجة الأخطاء.

كيفية استخدام HTTP:

أولاً، يجب إضافة الباكج التالية إلى ملف “pubspec.yaml”:

dependencies:
  http: ^0.13.5

ثم، يمكن تنفيذ الكود التالي باستخدام “http Package” كما هو موضح في الكود التالي:

import 'package:http/http.dart' as http;
import 'dart:convert';

Future<void> main() async {
  final response = await http.get(Uri.parse('https://jsonplaceholder.typicode.com/todos/1'));
  final Map<String, dynamic> data = jsonDecode(response.body);
  print(data['title']);
}

“اقرأ أيضاً: شرح استخدام ويدجت Divider في فلاتر“


DIO Package:

“Dio” هو عميل HTTP قوي لـ Dart. يتميز بدعم المبرمجين والتكوين العام و FormData وإلغاء الطلب وتنزيل الملفات، بين أمور أخرى.

مزايا DIO:

  • يوفر العديد من الميزات. بالإضافة إلى أداء المهام الشبكية الأساسية، يوفر “Dio” بعض الوظائف الإضافية مثل interceptors وسجل الأخطاء والتخزين المؤقت، وما إلى ذلك.
  • يسمح بتنفيذ العميل بأسرع ما يمكن. لديه تجريدات إضافية تقلل من عدد الأكواد وتسرع عملية التطوير.

عيوب DIO:

  • الأمان. نظرًا للعدد الكبير من الوظائف المقدمة، فإن احتمالية وجود خطأ في الحزمة أعلى.

كيفية استخدام DIO:

أولاً، يجب إضافة حزمة “Dio” إلى ملف “pubspec.yaml” الخاص بك:

dependencies:
  dio: ^4.0.6

الخطوة التالية هي تهيئة “Dio” كما يلي:

import 'package:dio/dio.dart';

void main() async {
  final dio = Dio();
  final response = await dio.get('https://jsonplaceholder.typicode.com/todos/1');
  print(response.data['title']);
}

“اقرأ أيضاً: شرح استخدام ويدجت Expanded في فلاتر“


مقارنة http مع Dio

من خلال مقارنة حزمة http مع Dio، يغطي Dio معظم حالات الشبكات القياسية بجهد أدنى، في حين يوفر http وظائف أساسية فقط. لذا، في معظم المشاريع التي تتطلب سرعة التطوير، يكون Dio مثاليًا.

ولكن في المشاريع الكبيرة التي تتطلب الدعم لفترة طويلة، يفضل في بعض الأحيان اختيار http ومن ثم كتابة الأساليب الناقصة بنفسك، حيث أن Dio ليس من مطوري Dart.

إذا كنت لا تزال لا تعرف ماذا تختار، انظر إلى GraphQL.

“اقرأ أيضاً: شرح استخدام ويدجت AnimatedList في فلاتر“


GraphQL Package:

GraphQL هو لغة استعلام تم تطويرها من قبل Facebook وتتيح للعميل استعلام الخادم بدقة عن البيانات التي يريدها. يتميز GraphQL بأنه يتيح للعميل تحديد البيانات التي يحتاجها بشكل دقيق وبالتالي يقلل من حجم البيانات الزائدة التي يتم إرسالها.

مزايا GraphQL:

  • يوفر قدرًا كبيرًا من المرونة والتحكم في استرداد البيانات.
  • يوفر عملية استعلام واحدة لجميع الاحتياجات، وبالتالي يقلل من عدد الاستعلامات اللازمة للحصول على البيانات.

عيوب GraphQL:

  • يتطلب تعلم لغة GraphQL وكيفية استخدامها.
  • يتطلب تكوين خادم GraphQL ليكون قادرًا على تلبية استعلامات العميل.

كيفية استخدام GraphQL:

أولاً، يجب إضافة حزمة “graphql” إلى ملف “pubspec.yaml” الخاص بك:

dependencies:
  graphql: ^4.0.0

ثم، يمكن استخدام “graphql” في الكود كما هو موضح في المثال التالي:

import 'package:graphql/client.dart';

void main() async {
  final HttpLink httpLink = HttpLink(
    uri: 'https://jsonplaceholder.typicode.com/todos/1',
  );

  final GraphQLClient graphQLClient = GraphQLClient(
    cache: GraphQLCache(),
    link: httpLink,
  );

  const String query = r'''
    query {
      todos {
        title
      }
    }
  ''';

  final QueryOptions options = QueryOptions(
    document: gql(query),
  );

  final QueryResult result = await graphQLClient.query(options);

  print(result.data['todos']);
}

“اقرأ أيضاً: شرح استخدام AnimatedPositioned في فلاتر“

HTTP REST هي التقنية الأكثر شيوعاً والأكثر استخداماً لبناء API. ومع ذلك، لديها عيب، والذي في بعض الحالات يعد جانبًا مهمًا – وهو الحصول على مزيد من البيانات مما هو ضروري (Overfetching) أو الحصول على بيانات أقل مما هو ضروري (Underfetching). وذلك بسبب وجود نقاط نهاية (endpoints) تم تحديدها بشكل صارم، مما يؤدي في بعض الأحيان إلى استلام مزيد من البيانات مما هو مطلوب، أو الحاجة إلى تنفيذ عدة طلبات في آن واحد.

“اقرأ أيضاً: شرح استخدام ويدجت Slider في فلاتر“


بالنهاية، يجب اختيار الخيار الذي يناسب احتياجات مشروع Dart الخاص بك. يحتوي كل من HTTP و DIO و GraphQL على ميزاته وعيوبه، ويجب النظر فيها قبل اتخاذ القرار النهائي.

Arab Flutter Community 🚀

انضم إلى مجتمع Arab Flutter
شارك هذا المقال
فيسبوك تويتر Whatsapp Whatsapp لينكد ان تلغرام نسخ الرابط
Avatar of عبدالله يوسف
بواسطة عبدالله يوسف Founder and CEO at ArabFlutter
تابع:
أنا عبدالله يوسف، مهندس مصري ومؤسس موقع عرب فلاتر، ملهم بشغف التكنولوجيا والإبداع. كمصمم مواقع ومبرمج تطبيقات موبايل باستخدام Flutter، أستمتع بخلق عوالم رقمية فريدة ومبتكرة. تتجلى مواهبي في تصميم وتطوير واجهات مستخدم تفاعلية، حيث يمزج الجانب الجمالي بالدقة الهندسية. ما يميزني هو إلمامي الواسع بتقنيات البرمجة والتصميم، ومقدرتي على تطوير تطبيقات متنوعة عبر منصات مختلفة. أعتبر نفسي مبدعًا وملتزمًا، حيث أسعى دائمًا لتحقيق تحسين مستمر في مهاراتي وتقنياتي. أستمتع بتحديات العمل الجماعي وأؤمن بأهمية الابتكار والتطور. بفضل إبداعي والتزامي، أسعى لتقديم حلول فعّالة تلبي توقعات العملاء وتفوق عن المألوف.
اترك تعليقا اترك تعليقا

اترك تعليقاً إلغاء الرد

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا
شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا
Tutorials
حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر
حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر
Tutorials
أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات
أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات
Tutorials
طريقة انشاء المجلدات باستخدام Dart
طريقة انشاء المجلدات باستخدام كود Dart تلقائيًا
Tutorials

مقالات ذات الصلة

اطلع على المزيد من المقالات المتعلقة بهذا الموضوع!
شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا
Tutorials

شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا

5
حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر
Tutorials

حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر

10
أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات
Tutorials

أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات

17
طريقة انشاء المجلدات باستخدام Dart
Tutorials

طريقة انشاء المجلدات باستخدام كود Dart تلقائيًا

11
خطة لاحتراف تطوير التطبيقات باستخدام Flutter في 60 يوم
Tutorials

خطة لاحتراف تطوير التطبيقات باستخدام Flutter في 60 يوم

17
10 تمارين محلولة على لغة دارت Dart الجزء السادس 2024
Tutorials

10 تمارين محلولة على لغة دارت Dart الجزء السادس 2024

4
أظهر المزيد
شعار موقع عرب فلاتر شعار موقع عرب فلاتر

About US

Quick Links

  • خدماتنا
  • من نحن
  • اتصل بنا
  • اتفاقية استخدام
  • سياسة الخصوصية
© جميع الحقوق محفوظة موقع عرب فلاتر 2023
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
adbanner
تم اكتشاف مانع إعلانات
مرحبًا، يرجى إيقاف مانع الإعلانات. الإعلانات تُساهم في دعم موقعنا وتغطية جزء من تكاليف الاستضافة وتطوير المحتوى. شكرًا لتفهمك ودعمك.
Okay, I'll Whitelist
Welcome Back!

Sign in to your account

هل نسيت كلمة المرور؟