کی میز کے مندرجات[چھپائیں][دکھائیں]
بہت سی کمپنیاں اپنے صارفین کو وقت کی تبدیلیوں اور دنیا کے کام کرنے کے طریقے کی روشنی میں ڈیجیٹل تجربہ فراہم کرنے کے لیے عملی ایپلی کیشنز اور سافٹ ویئر تیار کرنے کی کوشش کر رہی ہیں۔
ایسا کرنے سے، وہ اپنے گاہکوں کے مطالبات کو بہتر طریقے سے پورا کر سکتے ہیں۔
ان ڈیجیٹل ویژن کو حقیقت بنانے کے لیے ڈویلپرز کے ساتھ کام کرنا مشکل ہو سکتا ہے۔ ان میں سے ایک کلیدی اصطلاحات اور تصورات سے آگاہی ہے جو سافٹ ویئر کی ترقی کے عمل کے دوران استعمال ہوتے ہیں۔
اس سے بھی بدتر بات یہ ہے کہ ہر ڈویلپر مختصر طور پر اور صرف ان خیالات کا اظہار ان لوگوں سے نہیں کرسکتا جو اپنی صنعت کے ماہر نہیں ہیں۔ SDK اور API دو ایسے آئیڈیاز ہیں۔
اگرچہ یہ جملے اوورلیپ ہوتے ہیں کیونکہ یہ اکثر سافٹ ویئر ڈویلپمنٹ میں استعمال ہوتے ہیں۔
اس کی وجہ سے ان کو الگ کرنا اب بہت مشکل ہے۔ مزید برآں، کچھ ڈویلپرز درخواست کر سکتے ہیں کہ آپ سسٹم کو جوڑتے وقت دونوں کے درمیان انتخاب کریں، جو کہ ایک مسئلہ ہے۔
جب آپ کسی تصور کو پوری طرح سے نہیں سمجھتے تو آپ ان میں سے کیسے انتخاب کر سکتے ہیں؟ کیا ان میں سے کسی ایک کا انتخاب ضروری ہے؟
فہم میں مدد کے لیے واضح تعریفوں، مثالوں اور کیس اسٹڈیز کے ساتھ، یہ مضمون ان دو تصورات کے درمیان فرق کو تلاش کرے گا۔
SDK کیا ہے؟
SDK کا مطلب سافٹ ویئر ڈویلپمنٹ کٹ ہے، جیسا کہ نام سے پتہ چلتا ہے۔ یہ ایک ایسی کٹ ہے جس میں وہ سافٹ ویئر ٹولز اور ایپس شامل ہیں جن کی پروگرامرز کو مختلف پلیٹ فارمز کے لیے ایپلی کیشنز بنانے کی ضرورت ہوتی ہے۔
اس میں ایپ ماڈیول بنانے کے لیے درکار ہر چیز شامل ہے۔ سافٹ ویئر ڈویلپمنٹ ٹولز کا ایک گروپ جو پلیٹ فارمز کے لیے مخصوص ہے ایک SDK بناتا ہے۔
یہ ٹولز ڈیبگرز، کمپائلرز، کوڈ لائبریری (جسے فریم ورک بھی کہا جاتا ہے)، یا آپریٹنگ سسٹم کے لیے خاص طور پر ڈیزائن کیے گئے معمولات اور سب روٹینز ہو سکتے ہیں۔
اسی طرح جس طرح آپ کو ڈیسک کو صحیح طریقے سے ترتیب دینے کے لیے کئی مختلف پروڈکٹس کی ضرورت ہوگی، SDK کا استعمال ایسا کرنے کے مترادف ہے۔ یہ ڈیسک کے انفرادی اجزاء، سیٹ اپ کی ہدایات، اور میز کو جمع کرنے کے لیے درکار سامان پر مشتمل ہوگا۔
ایک عام SDK کی عمارت کے ٹکڑے درج ذیل پر مشتمل ہوتے ہیں:
- کوڈ لائبریریاں: پہیے کو گھمانے کے بجائے، ڈویلپرز پہلے سے موجود وسائل (جیسے کوڈ کی ترتیب) کوڈ لائبریریوں کی بدولت استعمال کر سکتے ہیں۔
- جانچ اور تجزیہ کے لیے ٹولز: یہ ٹولز اس بات کا اندازہ لگاتے ہیں کہ ایک ایپلیکیشن ٹیسٹنگ اور پروڈکشن سیٹنگ دونوں میں کتنی اچھی کارکردگی کا مظاہرہ کرتی ہے۔
- دستاویزی: ترقی کے پورے عمل کے دوران، ڈویلپرز ضرورت کے مطابق تحریری ہدایات سے مشورہ کرتے ہیں۔
- کمپائلر: ایک کمپائلر سافٹ ویئر ہے جو پروگرامنگ زبانوں میں بیانات کا تجزیہ کرتا ہے اور انہیں "کوڈ" میں تبدیل کرتا ہے جسے پروسیسر سمجھ سکتا ہے۔
- ڈیبگر: ایک ڈیبگر پروگرامرز کو کوڈ میں خرابیوں کو تلاش کرنے اور ٹھیک کرنے میں مدد کرتا ہے۔
- کوڈ کے نمونے پروگرامنگ کی ملازمتوں یا حالات کو ظاہر کرتے ہیں جو کسی ایپلیکیشن یا ویب صفحہ کے بارے میں مزید تفصیلی تفہیم فراہم کرتے ہیں۔
- روٹینز اور سب روٹینز: مجموعی طور پر کمپیوٹر کوڈ میں، روٹین یا سب روٹین ایک طریقہ، فنکشن، آپریشن، سب پروگرام، یا کوڈ کا ٹکڑا ہے جسے کہیں بھی بلایا اور انجام دیا جا سکتا ہے۔ مثال کے طور پر، فائل کو محفوظ کرنے کا انتخاب کرنے کے لیے ایک طریقہ کار استعمال کیا جاتا ہے۔
SDKs کیسے کام کرتے ہیں؟
SDKs ڈویلپرز کو متعدد ٹولز تک رسائی فراہم کرتے ہیں جن کی انہیں سافٹ ویئر ایپلیکیشنز کو تیزی سے بنانے کے لیے درکار ہوتی ہے۔
گوگل کے اینڈرائیڈ اور ایپل کے آئی او ایس کے لیے، فیس بک، مثال کے طور پر، SDK پیش کرتا ہے۔ یہ SDKs مفت، اوپن سورس لائبریریوں کے طور پر کام کرتی ہیں جو Facebook کو آپ کے Android یا iOS ایپلیکیشن میں شامل کرنا آسان بناتی ہیں۔
مزید برآں، مائیکروسافٹ. نیٹ پیچیدہ ایپلی کیشنز کے لیے ایک فریم ورک SDK فراہم کرتا ہے۔ اس میں ونڈوز ایپس بنانے کے لیے درکار مثالیں، وسائل اور لائبریریاں شامل ہیں۔
اب جب کہ آپ SDKs کی تفصیلات سے واقف ہیں، آئیے جائزہ لیں کہ وہ کیسے کام کرتے ہیں۔
- آپ کو پہلے اپنے پلیٹ فارم کے لیے ضروری "کِٹ" خریدنا، ڈاؤن لوڈ کرنا اور انسٹال کرنا چاہیے۔ یہ ہدایات، مثالوں، اور اجزاء کے اجزاء والی فائلوں کو ڈاؤن لوڈ کرنے پر لاگو ہو سکتا ہے۔
- اگلا، آپ مربوط ترقیاتی ماحول (IDE) اور نئی ایپلیکیشن بنانے کے لیے درکار تمام ٹولز تک رسائی حاصل کر سکتے ہیں۔ پھر پروگرامرز اپنی ایپس بنانا شروع کر سکتے ہیں۔ کمپائلر کا فنکشن اب واضح ہے۔
- آخر میں، آپ دستاویزات، کوڈ کی مثالیں، ہدایات، اور تجزیاتی ٹولز کا استعمال کرتے ہوئے نئی ایپلیکیشن کی جانچ کر سکتے ہیں۔
ان مراحل کو مکمل کرنے کے بعد آپ SDK کے ساتھ اپنا ایڈونچر شروع کر سکتے ہیں۔
SDK کی اقسام
SDKs ویب سائٹس اور موبائل ایپلیکیشنز تیار کرنے کی بنیاد ہیں۔
آئیے SDK کی چند مخصوص اقسام کا جائزہ لیتے ہیں۔
- پلیٹ فارم SDKs: یہ SDKs تمام پلیٹ فارمز کے لیے ایپس بنانے کے لیے ضروری ٹولز ہیں۔ مثال کے طور پر، Windows 11 اسٹور ایپس کو Windows 11 SDK کا استعمال کرتے ہوئے بنایا گیا ہے۔
- ایکسٹینشن SDKs: یہ اضافی سافٹ ویئر ڈویلپمنٹ کٹس ترقیاتی ماحول کو بڑھانے اور ذاتی بنانے کے لیے استعمال ہوتی ہیں۔ تاہم، کسی خاص پلیٹ فارم کے لیے ایپس بنانے کے لیے وہ ضروری نہیں ہیں۔
- تجزیاتی SDKs: یہ SDKs صارف کی سرگرمیوں، طرز عمل وغیرہ کے بارے میں معلومات اکٹھا کرتے ہیں، مثال کے طور پر، Google سے Analytics SDK۔
- منیٹائزیشن کے لیے SDKs: یہ SDKs ڈیولپرز پہلے سے موجود ایپس میں اشتہارات داخل کرنے کے لیے استعمال کرتے ہیں۔ وہ پیسہ کمانے کے خصوصی مقصد کے ساتھ قائم کیے گئے ہیں۔
- پروگرامنگ زبانوں کے لیے SDKs: یہ SDKs مخصوص زبانوں میں پروگرام بنانے کے لیے استعمال ہوتے ہیں۔ مثال کے طور پر، جاوا ڈیولپر کٹ (JDK) کا استعمال ایسی ایپلی کیشنز بنانے کے لیے کیا جاتا ہے جو جاوا پروگرامنگ لینگویج کو استعمال کرتی ہیں۔
SDK کے فوائد
- SDK کی ریڈی میڈ اجزاء تک آسان رسائی کی وجہ سے سافٹ ویئر کی ترقی کو تیز کیا جا سکتا ہے۔
- SDKs کی طرف سے فراہم کردہ تیز رفتار ترقی کے عمل کی وجہ سے، ڈویلپرز کوڈ کے ٹکڑوں کو دوبارہ استعمال کر سکتے ہیں۔ یہ پروگرامرز کو اہم کاموں پر توجہ مرکوز کرنے کے لیے کافی وقت دیتا ہے۔
- SDKs زیادہ ہموار سافٹ ویئر اور ایپلیکیشن کے تعامل کے لیے فراہم کرتے ہیں۔ مزید برآں، وہ مناسب کاغذی کارروائی کے ذریعے ضروری معلومات تک آسان رسائی کی پیشکش کرتے ہیں۔
- SDKs جامع دستاویزات اور بلٹ ان کوڈ مدد سے لیس ہیں۔ نتیجے کے طور پر، ڈویلپرز کو اپنے سوالات کے جوابات کے لیے موضوع کے ماہرین کو تلاش کرنے کی ضرورت نہیں ہے۔
- مذکورہ بالا عناصر سافٹ ویئر کی تیاری اور تعیناتی کے بعد کے مراحل کے دوران خرچ ہونے والے غیر ضروری اخراجات کو کم کرنے میں مدد کرتے ہیں۔
اب آئیے عبوری API حصے کی طرف چلتے ہیں۔
API کیا ہے؟
ایپلیکیشن پروگرامنگ انٹرفیس کو مخفف API سے جانا جاتا ہے۔ یہ رہنما خطوط کے ایک سیٹ کی وضاحت کرتا ہے جس کے ذریعے پلیٹ فارم، گیجٹ، یا پروگرام ایک دوسرے سے منسلک ہوتے ہیں اور معلومات کا تبادلہ کرتے ہیں۔
APIs یا تو علیحدہ ہستی یا SDK کا جزو ہو سکتے ہیں۔ یہ دونوں صورتوں میں نظامی سطح پر بہت سی ایپلی کیشنز میں ہم آہنگی پیدا کرتا ہے۔
موثر APIs کی تخلیق ڈویلپرز پر انحصار کرتی ہے جو ملکیتی یا غیر مفت سافٹ ویئر کا زیادہ سے زیادہ استعمال کرتے ہیں۔ اس کے بعد، وہ ترقی یافتہ APIs کی خدمات استعمال کر سکتے ہیں جن تک صارفین رسائی حاصل کر سکتے ہیں۔
دو فریقی معاہدہ اور API ایک جیسے ہیں۔ معلومات کی تیزی سے ترسیل کے ساتھ، یہ ہدایات بھی فراہم کرتی ہے کہ معلومات کی ترسیل کیسے کی جانی چاہیے۔
اصطلاحات "API" اور "interface" بعض اوقات ایک ہی چیز کا حوالہ دینے کے لیے استعمال ہوتی ہیں کیونکہ کچھ APIs کو "انٹرفیس" فراہم کرنے کے لیے جانا جاتا ہے۔
API دو ضروری حصوں پر مشتمل ہے:
- تکنیکی چیزیں: API انضمام کے پروٹوکول کے بارے میں معلومات کو API تفصیلات (یعنی دوسرے پلیٹ فارمز اور ایپلیکیشنز کے ساتھ) کہا جاتا ہے۔ اس بات کی ضمانت کے لیے کہ API کو مؤثر طریقے سے استعمال کیا گیا ہے، اسے اچھی طرح سے دستاویزی ہونا چاہیے۔
- کنکشن: ایک انٹرفیس APIs تک پہنچنے کا ایک ذریعہ پیش کرتا ہے۔ اگر یہ ایک ویب API ہے، تو اسے کلیدی لفظ کے ساتھ یا مختلف انٹرفیس کے ذریعے حاصل کیا جا سکتا ہے۔
API کام کیسے کرتا ہے؟
APIs متنوع ایپلیکیشن سیٹوں میں ہموار مواصلات کو فعال کرتے ہیں۔ ایک سپر مارکیٹ اسٹور کا معاملہ لیں جہاں آپ کے پاس پہلے سے ہی ایک ایپ موجود ہے جہاں صارفین آن لائن اشیاء کو براؤز اور آرڈر کر سکتے ہیں۔
آپ کی ایپ پہلے ہی یہ سروس پیش کر رہی ہے۔ آئیے تصور کریں کہ صارفین بھی شہر کے کسی خاص علاقے میں کھانے پینے کی دکانوں کی تلاش کرنا چاہتے ہیں۔
اس صورت حال میں، آپ اپنی ایپ کو شہر میں موجود معروف گروسری سروس فراہم کنندگان سے جوڑ سکتے ہیں۔ جغرافیائی محل وقوع API کو لاگو کرنے سے، صارف الگ الگ جغرافیائی محل وقوع کی درخواست کی پرواہ کیے بغیر فوڈ اسٹورز تلاش کر سکتے ہیں۔
تکنیکی نقطہ نظر سے، API کی درخواست میں ذیل میں درج اعمال شامل ہیں:
- آپ کی ایپ کا کام ایک ایپلیکیشن صارف کے ذریعہ شروع کیا جاتا ہے جو درخواست کرتا ہے۔
- ویب سرور کو کال کرکے، API درخواست کو منتقل کرتا ہے۔ درخواست کا مقصد عام طور پر API کے اختتامی نقطہ تک پہنچنا ہوتا ہے، لہذا API جانتا ہے کہ اسے کہاں بھیجنا ہے۔ اختتامی نقطہ سرور URL کے ذریعہ متعین کیا گیا ہے۔
- آخر میں، کام ختم ہو جاتا ہے کیونکہ ڈیٹا بیس یا باہر کا پروگرام مطلوبہ خدمت فراہم کرتا ہے۔
API کی اقسام
REST (نمائندہ ریاست کی منتقلی)
APIs کی سب سے عام شکلوں میں سے ایک REST API ہے، جس کو متعدد معیارات کے مطابق جانا چاہیے، بشمول:
- کلائنٹ-سرور کی ساخت: کلائنٹس کو سرور کی تبدیلیوں سے متاثر نہیں ہونا چاہیے۔
- CRUD (تخلیق کریں، پڑھیں، اپ ڈیٹ کریں، حذف کریں) اور JSON کو کلائنٹ اور سرور مواصلت کے لیے استعمال کرتے ہیں۔
- کسی بھی دو درخواستوں کے درمیان، سرور کلائنٹ کی حیثیت کو محفوظ نہیں کرتا ہے۔
ڈیٹا ٹرانسپورٹ اکثر REST کا استعمال کرتی ہے۔ کسی دوسرے پروگرام میں فیس بک صارف کا نام، مقام اور پروفائل امیج حاصل کرنے کے لیے، مثال کے طور پر، کوئی فیس بک API کا استعمال کرتا ہے۔
SOAP (سادہ آبجیکٹ ایکسیس پروٹوکول) APIs
وہ ویب پر مبنی APIs ہیں جب ڈیٹا پرائیویسی اور سیکیورٹی میں اضافہ ضروری ہوتا ہے۔ وہ ویب پر مبنی پروٹوکول، بشمول HTTP، SMTP، TCP/IP، اور دیگر کے ذریعے بات چیت کرنے کے قابل ہیں۔
REST ایک آرکیٹیکچرل نمونہ ہے، جبکہ SOAP پروٹوکول کا ایک مجموعہ ہے۔ نتیجے کے طور پر، SOAP پر مبنی پروٹوکول RESTful API تیار کرنے کے لیے استعمال کیے جا سکتے ہیں۔
RPC (ریموٹ پروسیجر کال)
یہ ایک مختلف سسٹم پر کوڈ چلانے کے لیے استعمال ہوتا ہے۔ RPC طریقوں کو کال کرتا ہے، REST کے برخلاف، جہاں کلائنٹ صرف ڈیٹا کی درخواست کرتا ہے۔ درخواستیں، جنہیں XML-RPCs اور JSON-RPCs کے نام سے جانا جاتا ہے، XML یا JSON فارمز میں جمع کرایا جا سکتا ہے۔
طریقہ کار کے استعمال کے بعد، درخواست کنندہ دوسرے سسٹم سے جواب کی توقع کرتا ہے۔
مثال کے طور پر، ادائیگی کا گیٹ وے API کریڈٹ کارڈ نمبر کی تصدیق کرتا ہے (اس کے اختتام پر کوڈ چلا کر) اور درخواست کرنے والی ایپ کو مطلع کرتا ہے کہ آیا یہ کامیاب یا ناکام تھا۔
API کے فوائد
- APIs سے باقاعدہ صارفین اور ترقیاتی پیشہ دونوں فائدہ اٹھاتے ہیں۔ ایجنسی کے نظام کو اپ گریڈ کرنے اور تنظیم کی تجارتی صلاحیت کو بڑھانے کے لیے، ڈویلپرز کاروباری اسٹیک ہولڈرز کے ساتھ تعاون کر سکتے ہیں۔
- APIs پروگرام یا پروڈکٹ کی مجموعی کارکردگی کو بہتر بناتے ہوئے مختلف سافٹ ویئر پروگراموں کو جوڑتے ہیں۔
- ایک بار تخلیق ہوجانے کے بعد، API رسائی کے ذریعے معلومات کو مختلف چینلز میں آسانی سے شیئر اور دوبارہ تیار کیا جاسکتا ہے۔
- APIs کا استعمال کرتے ہوئے تخصیصات کو ممکن بنایا گیا ہے۔ معلومات یا خدمات کو ان کی ضروریات کے مطابق بنا کر، ہر صارف یا کاروبار اس سے فائدہ اٹھا سکتا ہے۔
- APIs سافٹ ویئر کی ترقی کے عمل کو تیز کرنے میں پروگرامرز کی مدد کرتے ہیں۔ API آٹومیشن کلید رکھتا ہے کیونکہ کام کو سنبھالنے کے لیے دستی ٹاسک فورس کے بجائے کمپیوٹرز کا استعمال کیا جاتا ہے۔ APIs کی بدولت کمپنیاں اپنے ورک فلو کو ایک ساتھ اپ گریڈ کر سکتی ہیں۔
SDK اور APIs: کلیدی فرق
جیسا کہ پچھلی وضاحتیں ظاہر کرتی ہیں، یہ نظریات درحقیقت اوور لیپنگ اور ان طریقوں سے ایک دوسرے سے جڑے ہوئے ہیں جو ان کے امتیازات کو ممتاز کرتے ہیں۔
تاہم، ہم کسی بھی باقی ماندہ غیر یقینی صورتحال کو دور کرنے کے لیے ایک واضح فرق نکالنے کی کوشش کریں گے۔
- APIs میں SDKs شامل ہو سکتے ہیں، لیکن SDKs APIs میں شامل نہیں ہو سکتے۔
- دو پروگرام ایک API کی بدولت بات چیت کر سکتے ہیں۔ شروع سے ایپلیکیشنز بنانے کے لیے آپ کو درکار تمام ٹولز SDK میں ہیں۔
- APIs کو SDKs کے ذریعہ دو پروگراموں کے درمیان مواصلت کو فعال کرنے کے لیے استعمال کیا جاتا ہے۔ APIs کے ذریعے ایپلیکیشنز نہیں بنائی جا سکتیں۔
- SDKs استعمال کرنے میں آسان ہیں اور زیادہ تیزی سے ضم ہو جاتے ہیں۔ APIs اپنانے کے لیے آسان ہیں اور کوڈ لائبریریوں کی کمی ہے۔
- جوہر میں، ایک API ایپلیکیشن انٹرفیس کے طور پر کام کرتا ہے۔ SDKs ایپس بنانے کے لیے بلاکس بنا رہے ہیں۔
- ڈیولپرز ہمیشہ SDK کا استعمال کرتے ہوئے ایپس بناتے ہیں۔ صرف اس صورت میں جب دوسرے پلیٹ فارمز کے ساتھ بیرونی رابطے کی ضرورت ہو تو APIs تصویر میں داخل ہوتے ہیں۔
- APIs درخواستوں کو ایک ایپ سے دوسری ایپ میں منتقل کرتے ہیں اور اصل ایپ کو جوابات فراہم کرتے ہیں۔ SDKs میں وہ سب کچھ شامل ہوتا ہے جس کی آپ کو دوسرے پروگراموں کے ساتھ بات چیت کرنے اور پروگرام بنانے کے لیے ضرورت ہوتی ہے۔
SDK اور APIs کے درمیان انتخاب کرنا
جوہر میں، APIs بیان کرتے ہیں کہ کس طرح متعدد پلیٹ فارمز اپنے کاموں کو ہم آہنگ کر سکتے ہیں۔ پروٹوکول اور معیارات کے ذریعے، وہ ایپلیکیشن انضمام کی سہولت فراہم کرتے ہیں۔ لہذا وہ SDK کے ضروری حصوں میں سے ایک ہیں۔
تاہم، زمین سے پروگرام بنانے کے لیے APIs کا استعمال ممکن نہیں ہے۔
SDKs نئے سافٹ ویئر یا ایپلی کیشنز کو بنانا آسان بناتے ہیں جو کسی مخصوص پلیٹ فارم یا پروگرامنگ زبان کے لیے مخصوص ہیں۔ عام طور پر، ایک SDK میں بیرونی مواصلات کے لیے کم از کم ایک API ہوتا ہے۔
اس پلیٹ فارم کے لیے SDK استعمال کریں جس پر آپ کی ایپ چل رہی ہو گی، جیسے iOS، اگر آپ اسے اس پلیٹ فارم کے لیے تیار کر رہے ہیں۔ دیگر آن لائن ایپس، جیسے Facebook کے ساتھ تعامل کرنے کے لیے ایپ کا API استعمال کریں۔
نتیجہ
آخر میں، SDKs میں اکثر APIs شامل ہوتے ہیں، لیکن SDKs کے ساتھ کوئی API نہیں آتا ہے۔ SDKs ایپس بنانا ممکن بناتی ہیں، بالکل اسی طرح جیسے گھر کی بنیاد گھر کے لیے اونچا کھڑا ہونا ممکن بناتی ہے۔
مزید برآں، APIs کا تعین کیسے ہوتا ہے۔ SDKs کے اندر موجود ایپس کام کریں اور بات چیت کریں، بالکل اسی طرح جیسے فون لائنیں بیرونی دنیا سے رابطے کے لیے کرتی ہیں۔
جواب دیجئے