Vivasoft-logo

প্যাকেজ ইন্টিগ্রেশন

এ পর্যায়ে আমরা দেখব কিভাবে একটি প্যাকেজ আমাদের অ্যাপের সাথে ইন্টেগ্রেড করা যায় ।

হোস্টেড প্যাকেজ

একটি হোস্ট করা প্যাকেজ হল এমন একটি প্যাকেজ যা pub.dev সাইট থেকে ডাউনলোড করা যেতে পারে (বা অন্য HTTP সার্ভার থেকে) আপনি যদি pub.dev সাইটে আপনার প্যাকেজটি পাবলিশ করে থাকেন, সেক্ষেত্রে pubspec.yaml ফাইলের নিচের উপায়ে অ্যাড করতে হবে । যেটা উপরে বর্নিত পাবস্পেক ফাইল তৈরি সেকশনে দেখানো হয়েছে ।

name: my_app

dependencies:
    js: ^0.6.0
    intl: ^0.17.0
    my_package: ^1.4.0  //added my_package in dependency section
 

এই উদাহরণটি সুনির্দিষ্ট করে যে আপনার প্যাকেজটি my_package নামে একটি হোস্ট করা প্যাকেজের উপর নির্ভর করে এবং 1.4.0 থেকে 2.0.0 পর্যন্ত (কিন্তু 2.0.0 বাদে) যেকোনো সংস্করণের সাথে কাজ করে।

গিট প্যাকেজ

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

যদি আপনার প্যাকেজটি গিটহাব বা অন্যান্য গিট সার্ভারে হোস্ট করে থাকেন, সেক্ষেত্রে নিচের উপায়ে অ্যাড করতে হবে । ধরা যাক আপনার প্যাকেজটি গিটহাব সার্ভারে my_package রিপোজিটরি নামে আছে । ধরি উক্ত প্যাকেজের গিটহাব ইউআরএল হলো [link href=https://github.com/my_account/my_package.git] https://github.com/my_account/my_package.git [/link] এখন আমরা এই রিপোজিটরিটিকে pubspec.yaml ফাইলে ডেপেন্ডেনসি হিসেবে অ্যাড করবো ।

my_package:
git:
  url: https://github.com/my_account/my_package.git
  ref: v1.0.0
  path: my_package
 

!NOTE

  • এখানে url: এটা গিট রিপোজিটরি লোকেশন
  • ref: ট্যাগ অথবা কমিট রেফারেন্স

পাথ প্যাকেজ

আপনি যে প্যাকেজটি ব্যবহার করতে চাচ্ছেন সেটা যদি আপানার প্রজেক্ট ডিরেক্টরিতে ডাউনলোড করা থাকে সেক্ষেত্রে ডেপেন্ডেনসি পাথ ব্যবহার করে অ্যাঁড করতে হবে। ধরা যাক my_package লাইব্রেরিটি আপানার প্রোজেক্ট এর পাশাপাশি অবস্থান করছে।

my_package:
path: /Users/me/my_package
 

এর মানে হলো my_package এর রুট ডিরেক্টরি হলো /Users/me/my_package । এই ডিপেন্ডেনসির জন্য, pub রেফারেন্সযুক্ত প্যাকেজ ডিরেক্টরির lib ডিরেক্টরিতে সরাসরি একটি সিমলিঙ্ক তৈরি করে। নির্ভরশীল প্যাকেজে আপনি যে কোনো পরিবর্তন করলে তা অবিলম্বে দেখা যাবে। প্রতিবার আপনি ডেপেন্ডেন্ট প্যাকেজ পরিবর্তন করার সময় পাব চালানোর প্রয়োজন নেই। এখানে রিলেটিভ পাথ ব্যবহার করা যায়।

পাথ প্যাকেজ এবং গিট সাবমডিউল

এটি প্রায়শই ঘটে যে একটি প্রোজেক্টে কাজ করার সময়, আপনাকে এটির মধ্যে থেকে অন্য একটি প্রোজেক্ট ব্যবহার করতে হয়। সম্ভবত এটি একটি লাইব্রেরি যা একটি তৃতীয় পক্ষ তৈরি করেছে বা আপনি আলাদাভাবে ডেভেলপ করছেন এবং একাধিক প্যারেন্ট প্রোজেক্টে ব্যাবহার করছেন। এই পরিস্থিতিতে একটি সাধারণ সমস্যা দেখা দেয়: আপনি দুটি প্রোজেক্টকে পৃথক হিসাবে বিবেচনা করতে চান তবে এখনও অন্যটির মধ্যে থেকে একটি ব্যবহার করতে চান। গিট সাবমডিউল ব্যবহার করে এই সমস্যাটির সমাধান করা যায়। তবে এখানে পাথ প্যাকেজ পদ্বিতে প্রজেক্টের সাথে প্যাকেজটি ইন্টেগ্রেড করতে হয়। কিন্তু প্যাকেজটি গিট সাবমডিউল দিয়ে নিয়ন্ত্রণ করা হয়। যেমন স্টাটাজ দেখা, গিট সার্ভার থেকে প্যাকেজের আপডেট করা ইত্যাদি। গিট সাবমডিউল নিয়ে বিস্তারিত জানতে আমাদের গিট বুটক্যাম্প [/link]ভিজিট করতে পারেন।

এসডিকে

SDK এর সাথে যে প্যাকেজগুলো সরবরাহ করা হয় সেগুলো আলাদাভাবে পাবস্পেক ফাইলে ডিপেন্ডেনসি হিসেবে অ্যাড করতে হয় ।

dependencies:
    flutter_driver:
        sdk: flutter
 

sdk-এর পরে আইডেন্টিফায়ারটি প্যাকেজটি কোন SDK থেকে এসেছে তা নির্দেশ করে। যদি এটি ফ্লাটার হয়, ডিপেন্ডেনসি ততক্ষণ পর্যন্ত সন্তুষ্ট হয়:

  • যদি ফ্লাটার এক্সিকিউটেবল কনটেক্সটে Pub রান করে।
  • Flutter SDK-তে প্রদত্ত নামের একটি প্যাকেজ রয়েছে।

যদি এটি একটি অজানা আইডেন্টিফায়ার হয়, ডিপেন্ডেনসি সর্বদা অসন্তুষ্ট বলে বিবেচিত হয়।