ما هو العلاقة بين SDK و API؟
في تطوير البرمجيات، ومع تزايد حجم الأنظمة باستمرار، أصبح من الضروري تقسيم الأنظمة المعقدة إلى مكونات أصغر. ومن بين ذلك، يعد تصميم واجهات البرمجة (interfaces) أمرًا بالغ الأهمية. تتمثل المهمة الأولى لتصميم الواجهة في تخصيص مسؤوليات نظام البرمجيات بشكل معقول. يمكن لتصميم الواجهة الجيد أن يقلل من الاعتمادية بين أجزاء النظام، ويعزز تماسك الوحدات، ويقلل من الترابط بين الوحدات، وبالتالي يحسن قابلية صيانة النظام وتوسيع نطاقه. يلعب API، كشكل من أشكال الواجهة، دورًا مهمًا في التفاعل بين البرامج، وهناك علاقة وثيقة بين SDK و API.
01 API
(1) مفهوم API
API، وهو اختصار لـ "واجهة برمجة التطبيقات" (Application Programming Interface)، هي مجموعة من الوظائف المعرفة مسبقًا والمصممة للعمل كـ "واجهة" لربط شيئين مختلفين. إنها توفر طريقة للوصول إلى إجراءات برنامج أو جهاز معين، دون الحاجة إلى الوصول إلى الكود المصدري أو فهم تفاصيل آلياته الداخلية.
في الواقع، API هي وظائف مكتوبة مسبقًا من قبل الآخرين، ويمكنها تحقيق وظائف معينة. ما عليك سوى اتباع الواجهة المقدمة لاستدعاء أساليبها، وتمرير المعلمات المحددة، وستساعدك هذه الوظيفة في تحقيق هذه الوظائف.

من مفهوم "الواجهة"، في مجال الحوسبة، يشير إلى المكان الذي يتفاعل فيه كيانان مختلفان، ويمكن أن يكون نظامين مختلفين تمامًا، أو مقطعين من التعليمات البرمجية. لذلك، يمكن فهم "I" في الواجهة على هذا النحو. بناءً على ذلك، يُطلق على المكان الذي يتفاعل فيه الإنسان مع البرنامج اسم UI (واجهة المستخدم)، بما في ذلك جميع أشكال الإدخال، مثل الماوس ولوحة المفاتيح وشاشة اللمس وإدخال الصوت وما إلى ذلك. أما التفاعل بين البرامج فيُعرف باسم API، ويتم كل التفاعل غير البشري من خلال API، والتفاعل في جوهره هو نقل البيانات وتشغيل الوظائف.
(2) تصنيف API
تنقسم واجهات برمجة التطبيقات (APIs) إلى واجهات برمجة تطبيقات على مستوى النظام (مثل Windows و Linux و Unix وما إلى ذلك) وواجهات برمجة تطبيقات مخصصة غير على مستوى نظام التشغيل. كنمط فعال لتغليف التعليمات البرمجية، تم تبني نمط تطوير واجهة برمجة التطبيقات (API) الخاصة بـ Microsoft Windows من قبل العديد من شركات تطوير التطبيقات التجارية، وتم تطوير وظائف واجهة برمجة التطبيقات (API) لأنظمة التطبيقات التجارية الخاصة بها ونشرها لتسهيل التوسع الوظيفي من قبل أطراف ثالثة. على سبيل المثال، واجهات برمجة التطبيقات (APIs) التي طورتها Google و Apple و Nokia وغيرها من شركات الهواتف المحمولة.
تنقسم واجهات برمجة التطبيقات (APIs) أيضًا إلى واجهات برمجة تطبيقات مفتوحة وواجهات برمجة تطبيقات خاصة. كما يوحي الاسم، فإن واجهة برمجة التطبيقات المفتوحة هي واجهة متاحة للجميع، مما يسمح لأي شخص باستدعائها والحصول على البيانات التي تدعمها. في بعض الأحيان، تقوم الشركات بتحويل واجهة برمجة التطبيقات (API) إلى نظام مفتوح عام، أي أن الشركة تحدد معايير واجهة النظام الخاصة بها، وعندما تحتاج إلى إجراء تكامل النظام أو التخصيص أو تطبيقات البرامج وما إلى ذلك، يمكن لجميع أعضاء الشركة استدعاء الكود المصدري من خلال معيار الواجهة هذا، ويُعرف هذا المعيار بواجهة برمجة التطبيقات المفتوحة. أما واجهة برمجة التطبيقات (API) الخاصة فهي واجهة غير مفتوحة للعامة.
02 SDK
(1) مفهوم SDK
SDK، وهو اختصار لـ "مجموعة أدوات تطوير البرامج" (Software Development Kit)، هي مجموعة من أدوات التطوير التي يستخدمها مهندسو البرمجيات لبناء تطبيقات برمجية لحزم معينة أو أطر عمل برمجية أو منصات أجهزة أو أنظمة تشغيل أو غيرها. ببساطة، SDK هي مجموعة أدوات يقدمها مزود خدمة تابع لجهة خارجية لتنفيذ وظيفة معينة لمنتج برمجيات.
عادةً ما يتم توفير SDK من قبل شركات متخصصة كمجموعة من الخدمات الاحترافية، مثل توفير أدوات تطوير Android أو خدمات التطوير المستندة إلى الأجهزة وما إلى ذلك. هناك أيضًا SDKs لوظائف برمجية معينة، مثل تقنية الدفع، وتقنية التعرف على الصور، وتقنية الدفع عبر الهاتف المحمول، وتقنية تحليل التعرف على الصوت، وما إلى ذلك. في الاتجاه العام للانفتاح على الإنترنت، تم التعامل مع بعض SDKs الوظيفية كمنتج لتشغيلها.
لا يحتاج المطورون بعد الآن إلى تطوير كل وظيفة من وظائف المنتج، بل يمكنهم اختيار خدمات SDK مستقرة ومناسبة، ويمكنهم دمج وظيفة معينة في المنتج في وقت قصير.
(2) الفرق بين SDK و API
SDK يعادل بيئة أدوات التطوير المتكاملة، بينما API هي واجهة البيانات. يتم استدعاء بيانات API في بيئة SDK.
في الواقع، يحتوي SDK على تعريفات API، ويحدد API قدرة، ومواصفات واجهة، ويمكن أن يحتوي SDK على هذه القدرة، وهذه المواصفات. لكن SDK لا يحتوي فقط على API وتنفيذه، بل هو مجموعة أدوات برمجية، ويحتوي أيضًا على العديد من الوظائف المساعدة الأخرى.
يحتوي SDK على المواد اللازمة لاستخدام API، لذلك غالبًا ما يُطلق على طريقة كتابة تطبيقات Windows باستخدام API فقط اسم "برمجة SDK".




