alt

مقدمة

اللهم يا معلم ابراهيم علمنا ويا مفهم سليمان فهمنا … اللهم امين

Carthage ... هي احد الأدوات المهمة الموجودة في تطبيقات iOS. فهي تعتبر Dependeny Manager Tool شبيه بالـ cocoapods لكن هناك فروق تميز كلا من الاداتين.
اذا لم تكن لديك المعرفة في ماهو الهدف من استخدام Dependency Manager Tool و كيفية استخدام cocoapods راجع هذي التدوينة
ماهي أداة cocoapods ؟

Carthage

تم انشاء الأداة في عام 2014 تقريبا من فريق عمل في شركة Github الشهرية و تعتبر Carthage هي اول أداة Dependeny Manager Tool للغة Swift. تم انشاء أداة Carthage بمفهوم وفلسفة مختلفة تماما عن cocoapods وهي البساطة "Simplicity". حيث ستلاحظ عند استخدامك للأداة انها لن تقوم " بالتغيير في اعدادات المشروع بأي شكل من الاشكال او اجبار المستخدم باستخدام ملف اخر في التطوير مختلف تمام عن xcodeproj"

مايميزها

مايميز Carthage :

  • البساطة : الأداة لن تقوم بتغيير اعدادات المشروع بأي شكل من الاشكال كل ماسيقوم به المبرمج هو اضافة Frameworks بشكل مباشر للمشروع
  • لن يكون على المبرمج عندما يقوم بانشاء Framewrok الخاص به برفعها الى السيرفرات الخاصة بالخدمة كما هو موجود في cocoapds من اجل اتاحة الفرصة لمستخدمين Framework باستخدامها. وهذي يعطي حرية كبيرة للمبرمج في اختيار السيرفر المناسب لرفع الـ Framework الخاص به في اي سيرفر. ويعني عدم الاعتماد الكلي على سيرفرات مقدم الخدمة في نشر Framwork.

قد يكون في بداية الأمر عند استخدامك لأداة carthage مفهوم البساطة غير واضح اليك بسبب انك من سيقوم باضافة frameworks للمشروع بدلا من قيام الأداة بذلك .. قد تجد ان هذا الامر غريب بعض الشي لكن ان تكون على علم كامل بما يحدث وان تكون الاخطاء واضحة جدا لديك افضل من عدم علمك بأي شي وهذ الأمر الجميل في Carthage فهي مكتوبة بلغة Swift واذا كنت على علم ودراية باللغة بامكانك فهم الاخطاء دون الرجوع الى موقع Stackoverflow او فهم لغة Ruby على الاقل كما هو الحال في cocoapods.

طريقة تثبيت الأداة

هناك اكثر من طريقة لتثبيت الأداة :

  • قم بتحميل هذا الرباط Carthage.pkg وقم بثبيته في جهازك الماك بالشكل المعتاد في تثبيت البرامج في الماك
  • استخدم Hombrew tool لتحميل الأداة عن طريق الاوامر التالية في Terminal :
    • brew update
    • brew install carthage

للتأكد من عمل الأداة وانه قد تم تثبيتها بالشكل الصحيح قم بالتالي :

  • قم بفتح برنامج Terminal
  • اكتب هذا الامر carthage version

عن طريق هذا الامر ستعلم الاصدار الذي قمت بتثبيته في النظام

طريقة استخدام Carthage

  • قم بانشاء مشروع صغير من اجل تجربة الأداة
  • عن طريق Terminal قم بالذهاب للمشروع cd path/project
  • قم بانشاء ملف Cartfile في root directory للمشروع touch Cartfile
  • قم بفتح الملف عن طريق برنامج Xcode بالأمر التالي open Cartfile -a Xcode

ملف Cartfile هو الملف الذي ستقوم بإضافة جميع Frameworks المراد استخدامها في المشروع عن طريق كتابة الأوامر بشكل Ordered Graph Data Language. الـ Frameworks المراد اضافتها في المشروع تضاف في الملف يجب ان تتضمن جزئين مهمة جدا وهي :

  • المصدر : مصدر الـ Framework المصادر المتاحة حالياً هي github او git repo
  • الاصدار : وهي رقم نسخة الـ Framework اللي حاب تستخدمها في المشروع وتنقسم الى عدة اقسام هي على الشكل التالي :
    • >= 1.0 اقل اصدار من الـ Framework نرغب في استخدامها
    • ~> 1.0 اي اصدار رقمه واحد وليس اثنين لكن متوافق مع اعدادات بيئة تطوير المشروع
    • == 1.0 اصدار رقم واحد فقط

امثلة لـ Frameworks مضافه في ملف Cartfile :

  • github "ReactiveCocoa/ReactiveCocoa" >= 2.3.1
  • github "jspahrsummers/libextobjc" == 0.4.1

Artifact

  • Cartfile : هذا الملف هو الملف الذي يحوي على كل الـ Frameworks اللي حابين نستخدمها في المشروع وراح نضمنها في Build
  • Cartifle.private : هذا الملف هو الملف الذي يحوي على كل الـ Frameworks اللي حابين نستخدمها في المشروع وراح نضمنها في Testing فقط
  • Cartfile.resolved : هذا الملف يحيوي على ارقام نسخ الـ Frameworks المستخدمه بأرقام اصدراتها ينصح دائما بإضافة هذا الملف في git
  • Carthage/Build : هذا Folder يحوي على جميع نسخ Framework وهي النسخة القابلة للاستخدام في التطوير كا Framework
  • Carthage/Checkout : هذا Folder يحوي على source code لجميع الـ Frameworks التي تم طلبها من الأداة

فيديو يشرح الأداة بشكل عملي