প্রকল্প সম্পর্কে

এই রিপোজিটরিতে বিটওয়ার্ডেনের অফিসিয়াল অ্যান্ড্রয়েড অ্যাপ্লিকেশন রয়েছে, যা একটি পাসওয়ার্ড ম্যানেজার এবং একটি অথেনটিকেটরকে একটি একক মোবাইল ক্লায়েন্টে একত্রিত করে। প্রকল্পটি ন্যূনতম অ্যান্ড্রয়েড ১০ (SDK ২৯) এবং লক্ষ্য অ্যান্ড্রয়েড ১৭ (SDK ৩৭) হিসাবে নির্ধারণ করেছে, এবং ফোন ও ট্যাবলেট উভয় ফর্ম ফ্যাক্টরকে পোর্ট্রেট এবং ল্যান্ডস্কেপ ওরিয়েন্টেশনে সমর্থন করে। কোডবেসটি কোটলিনে লেখা এবং জেটপ্যাক কম্পোজকে ডিক্লারেটিভ UI ফ্রেমওয়ার্ক হিসাবে ব্যবহার করে, সাথে অ্যান্ড্রয়েডএক্স লাইব্রেরির বিস্তৃত সেট যেমন অ্যাক্টিভিটি, অ্যাপকমপ্যাট, অটোফিল, বায়োমেট্রিক্স, ব্রাউজার, ক্যামেরা, কোর, ক্রেডেনশিয়াল, লাইফসাইকেল, নেভিগেশন, রুম, সিকিউরিটি এবং ওয়ার্কম্যানেজার। ডিপেন্ডেন্সি ইনজেকশন ড্যাগার হিল্টের মাধ্যমে, ইমেজ লোডিং গ্লাইডের মাধ্যমে এবং নেটওয়ার্কিং রেট্রোফিট ২ এবং ওকএইচটিটিপি ৩ এর মাধ্যমে পরিচালিত হয়। কোটলিন করোটিন, ইমিউটেবল কালেকশন এবং সিরিয়ালাইজেশন লাইব্রেরি অ্যাসিঙ্ক্রোনাস এবং রিঅ্যাকটিভ কোড সমর্থন করে, যখন টিম্বার লগিং প্রদান করে এবং ZXing অথেনটিকেটর কোডের জন্য বারকোড স্ক্যানিং পরিচালনা করে। অ্যাপ্লিকেশনটি দুটি বিল্ড ভ্যারিয়েন্টে আসে। স্ট্যান্ডার্ড বিল্ডে পুশ নোটিফিকেশনের জন্য ফায়ারবেস ক্লাউড মেসেজিং, ক্র্যাশ রিপোর্টিংয়ের জন্য ফায়ারবেস ক্র্যাশলিটিক্স এবং গুগল প্লে রিভিউ ইন্টিগ্রেশন অন্তর্ভুক্ত। F-Droid বিল্ডে এই গুগল-নির্ভর উপাদানগুলো বাদ দেওয়া হয়, অ্যাপটিকে মালিকানাধীন পরিষেবা থেকে মুক্ত রাখে। ডেভেলপমেন্টের জন্য JDK ২১ এবং অ্যান্ড্রয়েড স্টুডিও প্রয়োজন, সাথে একটি প্রকল্প-নির্দিষ্ট কোড স্টাইল স্কিম (bitwarden-style.xml) যা অবদানকারীরা তাদের IDE-তে আমদানি করে। GitHub প্যাকেজ থেকে ডিপেন্ডেন্সি টানতে read:packages স্কোপ সহ একটি GitHub পার্সোনাল অ্যাক্সেস টোকেন প্রয়োজন, এবং একটি localSdk ফ্ল্যাগ SDK ফিচারে কাজ করা অবদানকারীদের জন্য SDK-কে স্থানীয় Maven আর্টিফ্যাক্টরিতে পুনঃনির্দেশ করতে পারে। কোড গুণমান detekt স্ট্যাটিক বিশ্লেষণের মাধ্যমে প্রয়োগ করা হয়, সাথে একটি ঐচ্ছিক প্রি-কমিট হুক যা প্রতিটি কমিটের আগে detekt চালায়। টেস্টিং JUnit ৫, MockK, Robolectric এবং করোটিন ফ্লো টেস্টের জন্য Turbine-এর উপর নির্ভর করে। CI/CD অ্যাপ তৈরি, সাইনিং এবং বিতরণের জন্য Fastlane এবং কোটলিন কোড কভারেজের জন্য Kover ব্যবহার করে। README-তে একটি স্পষ্ট অবদান কর্মপ্রবাহও নথিভুক্ত করা হয়েছে: ফরম্যাটিং পরিবর্তনগুলিকে লজিক্যাল পরিবর্তন থেকে আলাদা রাখুন, পুল রিকোয়েস্ট জমা দেওয়ার আগে কোড ফরম্যাট করুন এবং প্রকল্পের স্টাইল ও সেরা অনুশীলন ডকুমেন্টেশন অনুসরণ করুন। সামগ্রিকভাবে, এটি একটি পরিপক্ক, সুগঠিত ওপেন-সোর্স অ্যান্ড্রয়েড ক্লায়েন্ট যা ব্যাপকভাবে ব্যবহৃত পাসওয়ার্ড ম্যানেজমেন্ট এবং টু-ফ্যাক্টর অথেনটিকেশন পরিষেবার জন্য।