অ্যালামোফায়ার বনাম ইউআরএলসেশন: সুইফটে নেটওয়ার্কিংয়ের জন্য একটি তুলনা

অ্যালামোফায়ার এবং ইউআরএলসেশন উভয়ই আপনাকে সুইফটে নেটওয়ার্ক অনুরোধ করতে সহায়তা করে। ইউআরএলসেশন এপিআই ফাউন্ডেশনের কাঠামোর অংশ, যেখানে অ্যালামোফায়ারকে বাহ্যিক নির্ভরতা হিসাবে যুক্ত করা দরকার। অনেক বিকাশকারী সন্দেহ করেন যে সুইফটে নেটওয়ার্কিংয়ের মতো বেসিক কিছুতে অতিরিক্ত নির্ভরতা অন্তর্ভুক্ত করা দরকার কিনা doubt শেষ অবধি, আজকাল উপলভ্য দুর্দান্ত ইউআরএলসেশন এপিআই'র সাথে একটি নেটওয়ার্কিং স্তরটি প্রয়োগ করা পুরোপুরি কার্যকর do

এই ব্লগ পোস্টটি উভয় ফ্রেমওয়ার্কের সাথে তুলনা করতে এবং কখন অ্যালামোফায়ারকে বাহ্যিক নির্ভরতা হিসাবে যুক্ত করতে হবে তা খুঁজে পেতে এখানে।

ফ্রেমওয়ার্কটি অনেক কিছু সহজ করে তোলে বলে এটি অ্যালামোফায়ারের আসল শক্তি দেখায়।

আলমোফায়ার কী?

যেখানে ইউআরএলসেশনটি স্ট্যান্ডার্ড ফাউন্ডেশনের কাঠামোর মধ্যে পাওয়া যায়, সেখানে অ্যালামোফায়ার খুঁজতে আমাদের গিথুব যেতে হবে। এটি একটি উন্মুক্ত উত্সাহিত কাঠামো এবং এটি অ্যালামোফায়ার সফটওয়্যার ফাউন্ডেশনের মালিকানাধীন। ফ্রেমওয়ার্কটি খুব জনপ্রিয় কারণ আপনি এই ব্লগ পোস্টটি লেখার মুহুর্তে পরিসংখ্যানগুলি থেকে পড়তে পারেন:

  • 164 জন অবদানকারী
  • 30 কে + তারা
  • কোকোপডস পরিসংখ্যান এবং এটি ব্যবহার করছে এমন 600K + অ্যাপ্লিকেশন অনুসারে 42 মিলিয়ন (!!) ডাউনলোড হয়েছে

এই পরিসংখ্যানগুলি এটিকে সর্বাধিক জনপ্রিয় সুইফট ফ্রেমওয়ার্কগুলিতে উপলব্ধ করে তোলে। এটি একটি ভাল রক্ষণাবেক্ষণ করা হয়, প্রায়শই ব্যবহৃত কাঠামো যা আপনার অ্যাপ্লিকেশনগুলিতে নেটওয়ার্কিং বাস্তবায়নে সহজ করে তোলে।

টেক্সাসের সরকারী রাষ্ট্রীয় ফুল ব্লুবোননেটের একটি হাইব্রিড বৈকল্পিক আলামো ফায়ার ফুলের নামে আলোমোফায়ারের নামকরণ করা হয়েছে।

অ্যালামোফায়ার এবং ইউআরএলসেশন তুলনা করে

আমি টুইটারে আমার অনুসারীদের জিজ্ঞাসা করেছি তারা কী ব্যবহার করতে পছন্দ করে: অ্যালামোফায়ার বা ইউআরএলসেশন।

দেখা যাচ্ছে যে বিকাশকারীরা যা আলোমফায়ার বা ইউআরএলসেশন ব্যবহার করতে পছন্দ করেন তাদের মধ্যে একটি স্পষ্ট বিচ্ছেদ রয়েছে। এখানে একটি বড় প্রশ্ন হ'ল তারা যদি কেবল এটি পছন্দ করে বা তারা আসলে পছন্দের কাঠামোর সাথে যেতে পছন্দ করে কিনা।

আলামোফায়ারকে "সুইফটে মার্জিত নেটওয়ার্কিং" হিসাবে বিজ্ঞাপন দেওয়া হচ্ছে যা এর ইচ্ছাকে কিছুটা আগেই ফেলে দেয়। সাধারণ নেটওয়ার্কিং বৈশিষ্ট্যগুলি কার্যকর করা সহজতর করার লক্ষ্যে এটি URL সেশনের শীর্ষে একটি স্তর।

বৈশিষ্ট্য যা অ্যালামোফায়ার দিয়ে কার্যকর করা সহজ

অ্যালামোফায়ারে কেবল নেটওয়ার্কিংয়ের অনুরোধ তৈরি করা ছাড়াও প্রচুর অতিরিক্ত যুক্তি রয়েছে। এই বৈশিষ্ট্যগুলি একটি পার্থক্য আনতে পারে এবং এগুলি নিজের তৈরি করার তুলনায় কখনও কখনও আপনাকে অনেক সময় সাশ্রয় করতে পারে।

তাদের সংগ্রহস্থলের রেডমে বিজ্ঞাপন দেওয়া বৈশিষ্ট্যের তালিকা দীর্ঘ, যার মধ্যে কেবলমাত্র কয়েকটিই সত্যই অনন্য অতিরিক্ত মান যুক্ত করে:

  • শংসাপত্র পিন করা। এটি বাছাই করতে এবং নিজেকে এটি তৈরি করতে কিছু সময় নিতে পারে।
  • পুনরায় চেষ্টা করার অনুরোধ রইল। যখন কোনও অনুরোধ উদাহরণস্বরূপ কোনও প্রমাণীকরণ ব্যর্থতার কারণে ব্যর্থ হয়, আপনি সহজেই আপনার প্রমাণীকরণ টোকেনটিকে রিফ্রেশ করতে পারেন এবং বাস্তবায়ন কোডটি স্পর্শ না করে আবার একই অনুরোধটি শুরু করতে পারেন।

এই বৈশিষ্ট্যগুলি ছাড়াও, অনুরোধগুলি তৈরি করার সিনট্যাক্সটি ব্যবহার করা অনেক বেশি মার্জিত এবং সহজ। এটি আপনাকে অতিরিক্ত অতিরিক্ত কোড থেকে রক্ষা করে এবং যাচাইকরণ এবং ত্রুটি পরিচালনা করা আরও সহজ করে তোলে।

বেশিরভাগ সুবিধা হিসাবে দেখা যায় নেটওয়ার্কের পুনর্ব্যবহারযোগ্যতা পরিচালক। তবে, আইওএস 12 এর পরে আমরা নতুন এনডাব্লুপ্যাথমনিটর এপিআইও ব্যবহার করতে পারি।

তুলনায় একটি নেটওয়ার্ক অনুরোধ নির্মাণ

ধরা যাক আমাদের একটি এপিআই রয়েছে যা আমাদের "নিউ ইয়র্ক হাইলাইটস" শিরোনাম সহ একটি নতুন বোর্ড তৈরি করতে দেয়। এর জন্য, অ্যালামোফায়ার কোডটি ব্যবহার করা খুব সহজ:

AF.request ("https://api.mywebserver.com/v1/board", পদ্ধতি: .get, পরামিতি: ["শিরোনাম": "নিউ ইয়র্ক হাইলাইটস"])
    । বৈধ (স্ট্যাটাস কোড: 200 .. <300)
    .অনগ্রাহ্য ডেস্কটেবল {(প্রতিক্রিয়া: ডেটাআরস্পোন) ইন
        প্রতিক্রিয়া পরিবর্তন করুন। ফলাফল {
        কেস .সুকসেস (বোর্ড দিন):
            মুদ্রণ ("তৈরি বোর্ডের শিরোনামটি হ'ল board (বোর্ড.title)") // নিউ ইয়র্ক হাইলাইটস
        কেস। ব্যর্থতা (ত্রুটি যাক):
            মুদ্রণ ("ত্রুটি সহ বোর্ডের সৃষ্টি ব্যর্থ: \ (ত্রুটি। স্থানীয়ভাবে বর্ণিত)")
        }
}

ইউআরএলসেশন এপিআই দিয়ে ঠিক একই কাজ করতে আরও কিছুটা কাজের প্রয়োজন।

এনাম ত্রুটি: সুইফ্ট.এরর {
    মামলা অনুরোধ
}

// ইউআরএল তৈরি করুন
var উপাদানসমূহ = ইউআরএল উপাদান (স্ট্রিং: "https://api.mywebserver.com/v1/board")!
ઘટકો.queryItems = ["শিরোনাম": "নিউ ইয়র্ক হাইলাইটস"] map মানচিত্র {(কী, মান) এতে
    URLQueryItem (নাম: কী, মান: মান)
}

// অনুরোধটি তৈরি করুন এবং কার্যকর করুন
অনুরোধ = চেষ্টা করুন! URL অনুরোধ (url: घटक.url !, পদ্ধতি: .get)
URLSession.shared.dataTask (এর সাথে: অনুরোধ) in (ডেটা, প্রতিক্রিয়া, ত্রুটি) ইন
    কর {
        প্রহরী ডেটা = ডেটা,
            প্রতিক্রিয়া হিসাবে = প্রতিক্রিয়া হিসাবে? HTTPURL প্রতিক্রিয়া, (২০০ .. <300) response = প্রতিক্রিয়া at স্ট্যাটাসকোড,
            ত্রুটি == অন্য কিছু নয়
            // ডেটা শূন্য ছিল, বৈধতা ব্যর্থ হয়েছে বা একটি ত্রুটি ঘটেছে।
            ত্রুটি নিক্ষেপ ?? Error.requestFailed
        }
        আসুন বোর্ড = জেএসওএনডিকোডার চেষ্টা করুন ()। ডিকোড (বোর্ড.সেল্ফ, এর থেকে: ডেটা)
        মুদ্রণ ("তৈরি বোর্ডের শিরোনামটি হ'ল board (বোর্ড.title)") // নিউ ইয়র্ক হাইলাইটস
    } ধরা
        মুদ্রণ ("ত্রুটি সহ বোর্ডের সৃষ্টি ব্যর্থ: \ (ত্রুটি। স্থানীয়ভাবে বর্ণিত)")
    }
}

ফ্রেমওয়ার্কটি অনেক কিছু সহজ করে তোলে বলে এটি অ্যালামোফায়ারের আসল শক্তিটি দেখায়:

  • অনুরোধটি একটি একক প্রাথমিকের মধ্যে তৈরি করা হয়
  • একটি URL এনকোডার হ'ল ডিফল্টরূপে প্যারামিটারগুলি এনকোড করছে
  • বৈধকরণ একটি সাধারণ ওয়ান-লাইনারের সাথে ইনলাইন করা হয় এবং যদি বৈধতা ব্যর্থ হয় তবে দৃ strongly়ভাবে টাইপ করা ত্রুটিতে রূপান্তরিত হয়। প্রতিক্রিয়া ফলাফল এনাম ব্যর্থতার ক্ষেত্রে এই ত্রুটিটি ফিরিয়ে দেবে।
  • একটি জেনেরিক সমাপ্তি কলব্যাক আমাদের কাস্টম বোর্ডের ধরণের প্রতিক্রিয়াটিকে ডিকোড করা সহজ করে

এটি কেবলমাত্র অ্যালামোফায়ারের পক্ষে বেছে নেওয়া এবং আপনার জীবনকে সহজ করার জন্য একটি কারণ হতে পারে। ইউআরএলসেশন ব্যবহার করে আপনি সম্ভবত নিজের র‍্যাপার তৈরির কাজ শেষ করছেন, যার জন্য রক্ষণাবেক্ষণ এবং পরীক্ষার প্রয়োজন। প্রথমদিকে, এটি নতুন নির্ভরতা যুক্ত করার তুলনায় আরও ভাল সিদ্ধান্ত বলে মনে হতে পারে, তবে প্রকল্পগুলি যখন বিকশিত হয় এটি সহজেই হতে পারে যে আপনার নিজের নেটওয়ার্কিং স্তরটি বিকশিত হয় এবং আরও জটিল হয়ে ওঠে।

আলামোফায়ারকে নির্ভরতা হিসাবে যুক্ত করা কতটা খারাপ হবে?

আসুন এটি পরিষ্কার করে দিন যে আপনার প্রকল্পে বাহ্যিক নির্ভরতা যুক্ত করার সময় আপনাকে সতর্কতা অবলম্বন করতে হবে। যখন এটি রক্ষণাবেক্ষণ, পরীক্ষিত বা প্রচুর ব্যবহার না করা হয় তখন এটি আপনার প্রকল্পে একটি সম্ভাব্য ঝুঁকি যুক্ত করতে পারে। শেষ পর্যন্ত আপনাকে নিজেরাই বিকাশ চালিয়ে যেতে হতে পারে।

অ্যালামোফায়ারের ক্ষেত্রে, আপনাকে সত্যিই এটি নিয়ে চিন্তা করতে হবে না। কাঠামোটি ভালভাবে রক্ষণাবেক্ষণ, পরীক্ষা এবং ব্যবহার করা হয়। ফ্রেমওয়ার্কটি বেশ ছোট এবং নেটওয়ার্ক অনুরোধগুলি লেখার জন্য এটি আরও মার্জিত করে তোলে।

উপসংহার: কীভাবে সিদ্ধান্ত নেবেন?

আলমফোড়কে প্রায়শই এএফ নেটওয়ার্কিংয়ের সাথে তুলনা করা হয়, নেটওয়ার্কিংয়ের জন্য উদ্দেশ্য-সি সমতুল্য কাঠামো। সেই সময়ে, ইউআরএলসিউশন এপিআই ছাড়া নেটওয়ার্কিং অনেক শক্ত ছিল যা কেবলমাত্র আইওএস since থেকে বিদ্যমান, সুতরাং আপনার জীবনকে কিছুটা সহজ করার জন্য এটিএএন নেটওয়ার্কিংয়ের মতো কাঠামোর জন্য বেছে নেওয়া আরও সুস্পষ্ট ছিল।

আজকাল উপলভ্য ইউআরএলসেশন এপিআইগুলি দেখে, নেটওয়ার্ক অনুরোধগুলি তৈরি করা অনেক সহজ। যাইহোক, এটি করার ফলে ইউআরএলসেশনের শীর্ষে আপনার নিজের নেটওয়ার্কিং স্তর তৈরির দিকে এগিয়ে যাবে। আপনার প্রকল্পটি বিকশিত হওয়ার সাথে সাথে এই স্তরটি পরীক্ষা করা দরকার এবং সম্ভাব্যভাবে আরও জটিল স্তরের দিকে বাড়তে পারে।

এই বিষয়টি মাথায় রেখে, অনেক প্রকল্পের দ্বারা অ্যালামোফায়ার ভালভাবে বজায় রাখা এবং ব্যবহৃত হয়েছে তা গ্রহণ করে, আপনি সম্ভবত আলমোফায়ারকে নির্ভরতা হিসাবে যুক্ত করে নিজেকে অনেক ঝামেলা ও সময় সাশ্রয় করছেন।

এই ব্লগ পোস্টটি ইউআরএল সেশনটির সাথে আলাফায়ার 5 এর সাথে তুলনা করছে, যা লেখার মুহুর্তে বিটাতে রয়েছে। আপনি এই রিলিজ সম্পর্কে আরও পড়তে পারেন এখানে।

মূলত সুইফটলিতে প্রকাশিত।

আরও পোস্ট এবং আপডেট: @twannl