# Package Manager

**Tags:** pubdev، Flutter، Dart

---

**Package Manager = `pub.dev`**  
- **AR:** هذا مستودع الحزم الرسمي. من خلاله تضيف مكتبات لمشروعك مثل `http` أو `provider`.  
- **EN:** This is the official package repository. You use it to add libraries to your project, like `http` or `provider`.

Dart فيها Package Manager قوي: `pub.dev`

Dart Has a Powerful Package Manager: `pub.dev`

ليه ده مميز

لأنه يوفر عليك وقت ومجهود كبير:

- بدل ما تبني كل شيء من الصفر، تضيف مكتبات جاهزة بسرعة.  
- يوحّد طريقة تثبيت وتحديث الحزم (`pub add` / `pub upgrade`).  
- يقلل الأخطاء لأن الحزم مجربة ومستخدمة من مجتمع كبير.  
- يسهل إدارة الإصدارات والتوافق بين المكتبات.  
- يسرّع التطوير ويخليك تركز على منطق التطبيق بدل التفاصيل المتكررة.

باختصار: **Package Manager = تطوير أسرع + جودة أعلى + صيانة أسهل**.

**مميزات `pub.dev` في Dart**
- سرعة التطوير بمكتبات جاهزة.
- توحيد إدارة الحزم والإصدارات.
- مجتمع كبير وحزم كثيرة.
- سهولة التحديث والصيانة.
- تقليل إعادة كتابة نفس الكود.

**عيوب / تحديات**
- الاعتماد الزائد على مكتبات خارجية.
- احتمال تعارض الإصدارات بين الحزم.
- بعض الحزم قد تكون غير محدثة أو ضعيفة الجودة.
- زيادة حجم التطبيق أحيانًا عند كثرة الحزم.
- مخاطر أمنية لو استخدمت حزم غير موثوقة.

**الخلاصة**
ممتاز جدًا إذا اخترت الحزم بعناية، وراجعت الجودة والتحديثات قبل الاعتماد عليها.

هو مش اي مكتبة في pub.dev
موثوقة
؟

بالضبط، **مش أي مكتبة على `pub.dev` تكون موثوقة**.

`pub.dev` منصة نشر، لكن جودة الحزم تختلف. قبل الاستخدام راجع بسرعة:

- عدد الـ likes و`pub points`
- آخر تحديث (حديث ولا مهجور)
- التوافق مع Null Safety
- التوثيق والأمثلة
- وجود اختبارات (tests)
- عدد المشاكل المفتوحة في GitHub
- اسم الناشر (publisher) وهل معروف

قاعدة عملية:  
استخدم الحزم الرسمية أو المشهورة أولًا، وتجنب الحزم قليلة الاستخدام إلا لو فحصتها جيدًا.

الموقع الرسمي لحزم Dart وFlutter:  
[https://pub.dev](https://pub.dev)

مثال [[intl]]

أكيد، هذه أرقام تقييم الباكدج على `pub.dev` ومعناها:

- `6.05k likes`  
عدد الأشخاص الذين أعجبوا بالباكدج. كلما زاد، غالبًا الباكدج محبوب ومجرب.

- `150 points`  
هذه **Pub Points** (تقييم جودة تقني تلقائي) من 150.  
`150/150` يعني جودة ممتازة من ناحية الإعداد، التوثيق، التحليل، التوافق… إلخ.

- `5.29M downloads`  
عدد مرات التحميل الكلي. رقم كبير يعني استخدام واسع.

- `Publisher: verified publisher dart.dev`  
الناشر موثّق رسميًا، وهنا معناه الباكدج صادرة من جهة موثوقة مرتبطة بـ `dart.dev` (رسمي/موثوق جدًا).

الخلاصة السريعة:  
`intl` باكدج قوية جدًا: مستخدمة بكثرة + جودة عالية + ناشر موثّق.

- **المكتبة داخل اللغة (Built-in Library):**  
جزء أساسي من Dart نفسها، تأتي تلقائيًا بدون تثبيت.  
مثال: `dart:core`, `dart:convert`, `dart:async`.

- **الباكدج (Package):**  
إضافة خارجية (أو أحيانًا رسمية) تثبتها أنت عبر `pub.dev` داخل `pubspec.yaml`.  
مثال: `intl`, `http`, `provider`.

**الخلاصة:**  
- Built-in library = جاهزة مع اللغة.  
- Package = تضيفها حسب احتياج مشروعك.