الكاكاو (المادة الفعالة)

Cocoa هي واجهة برمجة التطبيقات (API) الأصلية الموجهة للكائنات من Apple لنظام التشغيل macOS الخاص بأجهزة سطح المكتب .

يتكون Cocoa من مجموعة Foundation Kit ومجموعة Application Kit وأطر عمل Core Data ، كما هو مضمن في Cocoa.hملف الرأس، والمكتبات والأطر المضمنة فيها، مثل مكتبة C القياسية ووقت تشغيل Objective-C. [ 1 ]

تُطوَّر تطبيقات Cocoa عادةً باستخدام أدوات التطوير التي توفرها Apple، وتحديدًا Xcode (المعروف سابقًا باسم Project Builder ) و Interface Builder (الذي أصبح الآن جزءًا من Xcode)، باستخدام لغتي البرمجة Objective-C أو Swift . مع ذلك، يمكن الوصول إلى بيئة برمجة Cocoa باستخدام أدوات أخرى. كما يُمكن كتابة برامج Cocoa بلغة Objective-C في محرر نصوص بسيط ، ثم بناؤها يدويًا باستخدام GNU Compiler Collection (GCC) أو Clang من سطر الأوامر أو من ملف makefile .

بالنسبة للمستخدمين النهائيين ، تُعرف تطبيقات Cocoa بأنها تلك المكتوبة باستخدام بيئة برمجة Cocoa. تتميز هذه التطبيقات عادةً بمظهر مألوف، حيث توفر بيئة برمجة Cocoa العديد من عناصر واجهة المستخدم الشائعة (مثل الأزرار وأشرطة التمرير، وما إلى ذلك)، وتُؤتمت العديد من جوانب التطبيق ليتوافق مع إرشادات واجهة المستخدم الخاصة بشركة Apple .

بالنسبة لأنظمة iOS و iPadOS و tvOS و watchOS ، تتوفر واجهات برمجة تطبيقات (APIs) مشابهة لـ Application Kit، تُسمى UIKit و WatchKit؛ وتشمل هذه الواجهات التعرف على الإيماءات ، والرسوم المتحركة ، ومجموعة مختلفة من عناصر التحكم الرسومية المصممة خصيصًا لتناسب المنصات المستهدفة. كما تتوفر Foundation Kit و Core Data في هذه الأنظمة. وتُستخدم هذه الواجهات في تطبيقات أجهزة Apple مثل iPhone و iPod Touch و iPad و Apple TV و Apple Watch .

تاريخ

يُعدّ Cocoa امتدادًا لسلسلة من أُطر البرمجيات (وخاصةً App Kit و Foundation Kit ) المنبثقة من بيئتي البرمجة NeXTSTEP و OpenStep اللتين طورتهما شركة NeXT في ثمانينيات وتسعينيات القرن الماضي. استحوذت Apple على NeXT في ديسمبر 1996، ثم شرعت في العمل على نظام التشغيل Rhapsody الذي كان من المفترض أن يكون الوريث المباشر لـ OPENSTEP . وكان من المقرر أن يحتوي على قاعدة محاكاة لتطبيقات Mac OS الكلاسيكية ، تُسمى Blue Box . أما قاعدة مكتبات OpenStep ودعم الملفات الثنائية فقد سُميت Yellow Box . تطور Rhapsody إلى Mac OS X، وأصبح Yellow Box هو Cocoa. ولذلك، تبدأ فئات Cocoa بالأحرف NS ، مثل NSString أو NSArray. ترمز هذه الأحرف إلى الاسم الأصلي لإطار عمل OpenStep، وهو NeXTSTEP. [ 2 ]

استُخدم جزء كبير من الجهد المبذول في تطوير OpenStep لتطوير نظام التشغيل Mac OS X، وكان Cocoa أبرز مثال على ذلك. مع ذلك، توجد اختلافات. على سبيل المثال، استخدم كل من NeXTSTEP وOpenStep لغة Display PostScript لعرض النصوص والرسومات على الشاشة، بينما يعتمد Cocoa على Quartz من Apple (الذي يستخدم نموذج تصوير PDF، ولكن ليس تقنيته الأساسية). كما يدعم Cocoa مستوىً من شبكة الويب العالمية، بما في ذلك فئات NSURL و WebKit HTML ، وغيرها، بينما كان دعم OpenStep للاتصالات الشبكية المُدارة عبر فئات NSFileHandle ومآخذ Berkeley محدودًا للغاية .

كانت مجموعة أدوات واجهة برمجة التطبيقات (API) تُسمى في الأصل "الصندوق الأصفر" (Yellow Box)، ثم أُعيد تسميتها إلى "كوكو" (Cocoa)، وهو اسمٌ كانت شركة آبل قد سجلته كعلامة تجارية. نشأت علامة "كوكو" التجارية من آبل كاسم لتطبيق تصميم مشاريع الوسائط المتعددة للأطفال. كان الهدف من الاسم استحضار عبارة "جافا للأطفال"، حيث كان التطبيق يعمل مُدمجًا في صفحات الويب. [ 3 ] توقف برنامج "كوكو" الأصلي بعد عودة ستيف جوبز إلى آبل. في ذلك الوقت، كانت جافا مجال تركيز رئيسي للشركة، لذا استُخدم اسم "كوكو" كاسم جديد لـ"الصندوق الأصفر" لأنه، بالإضافة إلى استخدامه الأصلي في لغة أوبجكتيف-سي، كان من الممكن الوصول إليه أيضًا من جافا عبر طبقة وسيطة. [ 4 ] على الرغم من أن آبل أوقفت دعم جسر كوكو جافا، إلا أن الاسم استمر، بل واستُخدم أيضًا لواجهة برمجة تطبيقات كوكو تاتش (Cocoa Touch API).

إدارة الذاكرة

إحدى ميزات بيئة Cocoa هي قدرتها على إدارة الذاكرة المُخصصة ديناميكيًا. تُطبّق فئة NSObject في Foundation Kit ، التي تُشتق منها معظم الفئات، سواءً من قِبل المُورّد أو المُستخدم، نظام عدّ المراجع لإدارة الذاكرة. تستجيب الكائنات المُشتقة من فئة NSObject الجذرية لرسالتي ` return` retainو`return` release، وتحتفظ بعدد الاحتفاظ. retainCountيوجد أسلوب يُسمى `return`، ولكن على عكس اسمه، لا يُعيد عادةً عدد الاحتفاظ الدقيق للكائن. يُستخدم هذا الأسلوب بشكل أساسي لأغراض على مستوى النظام. لا تُوصي Apple باستدعائه يدويًا.

الكائن المُنشأ حديثًا باستخدام ` retain count` allocأو copy`retain count` له عداد احتفاظ يساوي واحدًا. إرسال رسالة إلى هذا الكائن retainيزيد عداد الاحتفاظ، بينما إرسال releaseرسالة أخرى إليه يُنقصه. عندما يصل عداد الاحتفاظ للكائن إلى الصفر، يتم تحريره بواسطة إجراء مشابه لدالة التدمير في لغة C++ . deallocلا يُضمن استدعاء `retain count`.

ابتداءً من Objective-C 2.0، نفّذت بيئة تشغيل Objective-C جامعًا اختياريًا للنفايات ، والذي أصبح الآن قديمًا ومهملًا لصالح عدّ المراجع التلقائي (ARC). في هذا النموذج، حوّلت بيئة التشغيل عمليات عدّ المراجع في Cocoa ، مثل "retain" و"release"، إلى عمليات لا تُنفّذ . لا يوجد جامع النفايات في تطبيق Objective-C 2.0 لنظام iOS . كان جمع النفايات في Objective-C يعمل على خيط خلفي ذي أولوية منخفضة، ويمكن إيقافه عند أحداث المستخدم في Cocoa، بهدف الحفاظ على استجابة تجربة المستخدم. لا يزال جامع النفايات القديم متاحًا في نظام Mac OS X الإصدار 10.13، ولكن لا تستخدمه أي تطبيقات من Apple.

في عام 2011، قدم مترجم LLVM خاصية العد المرجعي التلقائي (ARC)، والتي تحل محل جامع القمامة التقليدي من خلال إجراء تحليل ثابت لرمز المصدر Objective-C وإدراج رسائل الاحتفاظ والإفراج حسب الضرورة.

الأطر الرئيسية

يتألف Cocoa من ثلاث مكتبات كائنات Objective-C تُسمى أطر العمل . تُشبه أطر العمل وظيفيًا المكتبات المشتركة ، وهي عبارة عن كائن مُجمَّع يُمكن تحميله ديناميكيًا في مساحة عنوان البرنامج أثناء التشغيل، إلا أن أطر العمل تُضيف موارد مُرتبطة، وملفات رأسية، ووثائق. تُنفَّذ أطر عمل Cocoa كنوع من الحزم ، تحتوي على العناصر المذكورة في مواقع قياسية.

  • ظهرت مجموعة أدوات Foundation ( Foundation Kit ) لأول مرة في إطار عمل Enterprise Objects Framework على نظام NeXTSTEP 3. [ 5 ] طُوّرت كجزء من مشروع OpenStep، وأصبحت فيما بعد أساسًا لمجموعة أدوات AppKit الخاصة بنظام OpenStep عند إصداره عام 1994. على نظام macOS، تعتمد Foundation على Core Foundation . تُعدّ Foundation مكتبة عامة كائنية التوجه توفر معالجة السلاسل والقيم، والحاويات والتكرار، والحوسبة الموزعة ، وحلقات الأحداث (حلقات التشغيل)، ووظائف أخرى غير مرتبطة مباشرةً بواجهة المستخدم الرسومية. يُستمدّ البادئة "NS"، المستخدمة لجميع الفئات والثوابت في إطار العمل، من إرث Cocoa في نظام OPENSTEP، الذي طُوّر بالاشتراك بين NeXT و Sun Microsystems .
  • مجموعة أدوات التطبيقات ( AppKit ) هي امتداد مباشر لمجموعة أدوات تطبيقات NeXTSTEP الأصلية. تحتوي على شفرة برمجية يمكن للبرامج استخدامها لإنشاء واجهات مستخدم رسومية والتفاعل معها . تم بناء AppKit على منصة Foundation، وتستخدم نفس البادئة NS .
  • Core Data هو إطار عمل استمرارية الكائنات المضمن مع Foundation و Cocoa والموجود في Cocoa.h. [ 1 ]

يُعدّ نموذج العرض الشامل جزءًا أساسيًا من بنية Cocoa. وهو مُنظّم وفقًا للأساليب التقليدية لأطر عمل التطبيقات، ولكنه يعتمد على نموذج الرسم بتنسيق PDF الذي توفره Quartz . يتيح ذلك إنشاء محتوى رسم مُخصّص باستخدام أوامر رسم شبيهة بـ PostScript ، مما يُتيح أيضًا دعم الطباعة التلقائية وغيرها. وبما أن إطار عمل Cocoa يُدير جميع عمليات القص والتمرير والتحجيم وغيرها من مهام رسم الرسومات، فإن المبرمج يُعفى من تنفيذ البنية التحتية الأساسية، ويُمكنه التركيز على الجوانب الفريدة لمحتوى التطبيق.

نموذج-عرض-متحكم

استقرت فرق تطوير Smalltalk في مركز أبحاث Xerox PARC في نهاية المطاف على فلسفة تصميم أدت إلى سهولة التطوير وإعادة استخدام الكود على نطاق واسع. يُعرف هذا المفهوم باسم نموذج-عرض-متحكم (MVC)، وهو يقسم التطبيق إلى ثلاث مجموعات من فئات الكائنات المتفاعلة:

  • تمثل فئات النموذج بيانات وعمليات مجال المشكلة (مثل قوائم الأشخاص/الأقسام/الميزانيات؛ والمستندات التي تحتوي على أقسام/فقرات/حواشي من نص منمق).
  • تقوم فئات العرض بتنفيذ التمثيلات المرئية والإمكانيات للتفاعل بين الإنسان والحاسوب (مثل الشبكات القابلة للتمرير للأيقونات المعنونة والقوائم المنبثقة للعمليات الممكنة).
  • تحتوي فئات التحكم على منطق يعرض بيانات النموذج كتمثيلات للعرض، ويربط إجراءات المستخدم التي تبدأها الإمكانيات بعمليات النموذج، ويحافظ على الحالة للحفاظ على تزامن الاثنين.

يُعد تصميم Cocoa تطبيقًا دقيقًا لمبادئ MVC، وإن لم يكن تطبيقًا صارمًا تمامًا. في OpenStep، كانت معظم الفئات المُتاحة إما فئات عرض عالية المستوى (في AppKit) أو إحدى فئات النماذج منخفضة المستوى نسبيًا، مثل NSString. بالمقارنة مع أنظمة MVC المشابهة، افتقر OpenStep إلى طبقة نموذج قوية. على سبيل المثال، لم تكن هناك فئة افتراضية تُمثل "مستندًا". خلال الانتقال إلى Cocoa، تم توسيع طبقة النموذج بشكل كبير، حيث تم إدخال عدد من الفئات الجاهزة لتوفير وظائف مشتركة بين تطبيقات سطح المكتب.

في نظام التشغيل Mac OS X 10.3، قدمت Apple عائلة فئات NSController، التي توفر سلوكًا مُحددًا مسبقًا لطبقة التحكم. تُعتبر هذه الفئات جزءًا من نظام Cocoa Bindings ، الذي يستخدم أيضًا بروتوكولات مثل مراقبة القيم الرئيسية وربط القيم الرئيسية على نطاق واسع . يشير مصطلح "الربط" إلى علاقة بين كائنين، غالبًا بين واجهة المستخدم ووحدة التحكم. تُمكّن الروابط المطور من التركيز أكثر على العلاقات التصريحية بدلًا من إدارة السلوكيات الدقيقة.

مع إطلاق نظام التشغيل Mac OS X 10.4، وسّعت آبل هذا الأساس بتقديم إطار عمل Core Data ، الذي يُوحّد عملية تتبع التغييرات وحفظها في طبقة النموذج. وبذلك، يُبسّط هذا الإطار بشكل كبير عملية إجراء التغييرات على بيانات التطبيق، والتراجع عنها عند الضرورة، وحفظ البيانات على القرص، واسترجاعها لاحقًا.

من خلال توفير دعم إطار العمل لجميع مجالات MVC الثلاثة، فإن هدف Apple هو تقليل كمية التعليمات البرمجية النمطية أو "الوصلات" التي يتعين على المطورين كتابتها، مما يوفر الموارد لقضاء الوقت في الميزات الخاصة بالتطبيق.

الربط المتأخر

في معظم لغات البرمجة كائنية التوجه، تُمثَّل استدعاءات الدوال فعليًا بمؤشر إلى الكود في الذاكرة. هذا يُقيِّد تصميم التطبيق نظرًا للحاجة إلى فئات مُحدَّدة لمعالجة الأوامر ، والتي تُنظَّم عادةً وفقًا لنمط سلسلة المسؤولية . بينما يحتفظ Cocoa بهذا النهج في الغالب، فإن الربط المتأخر في Objective-C يُتيح مرونة أكبر.

في لغة Objective-C، تُمثَّل الدوال بواسطة مُحدِّد ، وهو سلسلة نصية تصف الدالة المراد استدعاؤها. عند إرسال رسالة، يُرسَل المُحدِّد إلى بيئة تشغيل Objective-C، ويُطابق مع قائمة الدوال المتاحة، ثم يُستدعى تنفيذ الدالة. ولأن المُحدِّد عبارة عن بيانات نصية، يُمكن حفظه في ملف، أو نقله عبر الشبكة أو بين العمليات، أو معالجته بطرق أخرى. يُبحث عن تنفيذ الدالة أثناء التشغيل، وليس أثناء الترجمة. يُؤدي هذا إلى انخفاض طفيف في الأداء [ 6 ] ، لكن الربط المتأخر يسمح للمُحدِّد نفسه بالإشارة إلى تنفيذات مختلفة.

وبالمثل، توفر لغة Cocoa طريقةً شاملةً لمعالجة البيانات تُسمى ترميز المفتاح والقيمة (KVC). [ 7 ] تسمح هذه الطريقة بالبحث عن جزء من البيانات أو خاصية لكائن ما أو تغييرها أثناء التشغيل باستخدام الاسم. يعمل اسم الخاصية كمفتاح للقيمة. في اللغات التقليدية، يكون هذا الربط المتأخر مستحيلاً. يؤدي ترميز المفتاح والقيمة إلى مرونة تصميمية كبيرة. لا يلزم معرفة نوع الكائن، ومع ذلك يمكن اكتشاف أي خاصية من خصائصه باستخدام هذه الطريقة. كما يوفر توسيع هذا النظام باستخدام ما تسميه Cocoa مراقبة المفتاح والقيمة (KVO) دعمًا تلقائيًا لعمليتي التراجع والإعادة .

الربط الثابت المتأخر هو نوع من الربط يقع بين الربط الثابت والربط الديناميكي. يُطلق على ربط الأسماء قبل تشغيل البرنامج اسم الربط الثابت ( المبكر )؛ أما الربط الذي يتم أثناء تشغيل البرنامج فيُطلق عليه اسم الربط الديناميكي ( المتأخر أو الافتراضي ).

أشياء ثمينة

من أبرز مزايا Cocoa الكائنات الأساسية القوية التي يوفرها النظام. على سبيل المثال، لنأخذ فئات Foundation NSStringو NSAttributedStringالتي توفر سلاسل Unicode ، والنظام في AppKit الذي يسمح للمبرمج بوضع كائنات السلاسل في واجهة المستخدم الرسومية.NSText

NSTextتُستخدم الفئات المرتبطة بها لعرض النصوص وتحريرها. تُمكّن مجموعة الكائنات المُستخدمة التطبيق من تنفيذ أي شيء بدءًا من حقل إدخال نص بسيط من سطر واحد وصولًا إلى مخطط تخطيط نصي كامل متعدد الصفحات والأعمدة، مع ميزات طباعة احترافية كاملة مثل تباعد الأحرف ، والوصلات ، وتنسيق النص حول أشكال عشوائية ، والتدوير ، ودعم Unicode الكامل، وعرض الرموز الرسومية بدون تشويش . يمكن التحكم في تخطيط الفقرات تلقائيًا أو يدويًا باستخدام كائن " مسطرة " مُدمج يُمكن إرفاقه بأي عرض نصي. يتم التدقيق الإملائي تلقائيًا باستخدام مجموعة قواميس لغوية على مستوى النظام. كما يتوفر دعم غير محدود للتراجع/الإعادة. باستخدام الميزات المُدمجة فقط، يُمكن كتابة تطبيق محرر نصوص في 10 أسطر من التعليمات البرمجية فقط. مع كائنات التحكم الجديدة، قد ينخفض ​​هذا العدد إلى الصفر. عند الحاجة إلى إضافات، يُسهّل استخدام Cocoa للغة Objective-C هذه المهمة. تتضمن لغة Objective-C مفهوم " الفئات "، الذي يسمح بتعديل الفئات الموجودة "في مكانها". يمكن إنجاز الوظائف في فئة دون أي تغييرات على الفئات الأصلية في إطار العمل، أو حتى الوصول إلى مصدرها. في لغات البرمجة الشائعة الأخرى، تتطلب هذه المهمة نفسها اشتقاق فئة فرعية جديدة تدعم الميزات المضافة، ثم استبدال جميع مثيلات الفئة الأصلية بمثيلات الفئة الفرعية الجديدة.

التطبيقات والروابط

كُتبت أُطر عمل Cocoa بلغة Objective-C . كما أُتيحت روابط Java لأُطر عمل Cocoa (المعروفة باسم جسر Java ) بهدف استبدال Objective-C بلغة أكثر شيوعًا [ 8 إلا أن هذه الروابط لم تلقَ رواجًا بين مطوري Cocoa، ولم تتوافق دلالات تمرير الرسائل في Cocoa مع لغة ذات كتابة ثابتة مثل Java [ 9 ] . ونظرًا لاحتياج Cocoa إلى الربط أثناء التشغيل، فإن العديد من ميزات Cocoa الرئيسية غير متوفرة في Java. في عام 2005، أعلنت Apple عن إيقاف دعم جسر Java، ما يعني أن الميزات المُضافة إلى Cocoa في إصدارات macOS اللاحقة لـ 10.4 لن تُضاف إلى واجهة برمجة تطبيقات Cocoa-Java.

في مؤتمر أبل العالمي للمطورين (WWDC) 2014، قدمت أبل لغة برمجة جديدة تسمى Swift ، والتي تهدف إلى استبدال Objective-C. [ 10 ]

AppleScriptObject

في الأصل، كان بالإمكان استخدام AppleScript Studio لتطوير تطبيقات Cocoa أبسط. [ 11 ] إلا أنه تم إيقاف دعمه مع إصدار Snow Leopard. واستُبدل بـ AppleScriptObjC، الذي يسمح بالبرمجة بلغة AppleScript مع استخدام أطر عمل Cocoa. [ 12 ]

روابط أخرى

يمكن الوصول إلى بيئة برمجة Cocoa باستخدام أدوات أخرى بمساعدة آليات الجسر مثل PasCocoa و PyObjC و CamelBones و RubyCocoa وجسر D /Objective-C.

تتضمن روابط الطرف الثالث المتاحة للغات الأخرى AppleScript و Clozure CL و Monobjc و NObjective ( C# ) و Cocoa# (CLI) وCocodao و D /Objective-C Bridge، [ 13 ] [ 14 ] وLispWorks و Object Pascal و CamelBones ( Perl ) و PyObjC ( Python ) و FPC PasCocoa ( Lazarus و Free Pascal ) و RubyCocoa ( Ruby ). [ 15 ]

تم تطوير تطبيق لغة روبي المسمى MacRuby ، والذي يلغي الحاجة إلى آلية الجسر، سابقًا بواسطة Apple، بينما Nu هي لغة تشبه لغة Lisp تستخدم نموذج كائن Objective-C مباشرة، وبالتالي يمكنها استخدام أطر عمل Cocoa دون الحاجة إلى ربط.

تطبيقات أخرى

توجد أيضًا تطبيقات مفتوحة المصدر لأجزاء رئيسية من إطار عمل Cocoa، مثل GNUstep و Cocotron، [ 16 ] والتي تسمح بتطوير تطبيقات Cocoa متعددة المنصات لاستهداف أنظمة تشغيل أخرى، مثل Microsoft Windows و Linux .

انظر أيضاً

مراجع

  1. ١ ٢ نظرة عامة على تقنية ماك: أطر عمل نظام التشغيل OS X. Developer.apple.com. تم الاطلاع عليه بتاريخ ١٨ سبتمبر ٢٠١٣.
  2. أميت سينغ (19 يونيو 2006). أساسيات نظام التشغيل ماك أو إس إكس: منهج النظم . أديسون-ويسلي بروفيشنال. ISBN 0-321-27854-2تُعدّ Cocoa إرثًا مهمًا من NeXT، كما يتضح من البادئة "NS".
  3. مارديسيتش، جودي (14 أبريل 1997). "نغمة نشاز في نظام أبل الجديد: كتّاب برامج كانوا موالين له سابقًا يتخوفون من نظام التشغيل الجديد مع اقتراب مؤتمر حاسم" . العدد: الصباحي الأخير. صحيفة سان خوسيه ميركوري نيوز. مؤرشف من الأصل في 6 مارس 2016. تم الاطلاع عليه في 13 أغسطس 2015 . 
  4. شركة آبل (10 مايو 1999)، مؤتمر مطوري العالم العالمي 1999 ، تم الاطلاع عليه في 27 أبريل 2024
  5. HybridWorld . Cilinder.be. تم الاطلاع عليه بتاريخ 18 سبتمبر 2013.
  6. ويكي بوكس ​​- بعض مزايا لغة أوبجكتيف-سي
  7. "دليل برمجة ترميز المفتاح والقيمة" . تم الاطلاع عليه بتاريخ 27 سبتمبر 2021 .
  8. ستيف كلينجسبورن (2003). "كتابة تطبيقات كوكوا بلغة جافا" . ماك تك . 19 (12).
  9. "استخدام جسر جافا" (ملف PDF) . شركة آبل. نظرًا لأن جافا لغة ذات كتابة قوية، فإنها تتطلب معلومات إضافية حول الفئات والواجهات التي تتعامل معها أثناء الترجمة. لذلك، قبل استخدام فئات Objective-C كفئات جافا، يجب كتابة وصف لها وترجمته.
  10. "لغة Swift السرية للغاية من Apple نشأت من العمل على دعم Objective-C، والتي تهدف الآن إلى استبدالها" . 4 يونيو 2014.
  11. "دليل برمجة AppleScript Studio (غير مُوصى به): حول AppleScript Studio" . شركة Apple . تم الاطلاع عليه بتاريخ 20 نوفمبر 2013 .
  12. "ملاحظات إصدار AppleScriptObjC" . ​​شركة Apple . تم الاطلاع عليه بتاريخ 20 نوفمبر 2013 .
  13. Cocodao ، جسر لإنشاء تطبيقات Cocoa بلغة D.
  14. D/Objective-C Bridge ، آلية ربط لغة لـ Cocoa.
  15. قائمة أكثر شمولاً للتطبيقات
  16. Cocotron ، تطبيق برمجي مجاني لـ Cocoa.

فهرس