সংযুক্ত প্রদর্শন সমর্থন

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

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

চিত্র 1. ফোন একটি বাহ্যিক ডিসপ্লের সাথে সংযুক্ত, ডিসপ্লেতে একটি ডেস্কটপ সেশন সহ ফোনটি তার নিজস্ব অবস্থা বজায় রাখে।

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

চিত্র 2. ট্যাবলেট একটি বাহ্যিক মনিটরের সাথে সংযুক্ত, উভয় প্রদর্শন জুড়ে ডেস্কটপ সেশন প্রসারিত করে।

সংযুক্ত ডিসপ্লে সমর্থন করার জন্য কার্যকরভাবে আপনার অ্যাপের ডিজাইন এবং বাস্তবায়নের বিভিন্ন দিকে মনোযোগ দেওয়া প্রয়োজন। নিম্নলিখিত সেরা অনুশীলনগুলি একটি মসৃণ এবং উত্পাদনশীল ব্যবহারকারীর অভিজ্ঞতা নিশ্চিত করে৷

গতিশীল প্রদর্শন পরিবর্তন পরিচালনা করুন

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

বাহ্যিক ডিসপ্লেতেও পিক্সেলের ঘনত্ব অনেকটাই আলাদা হতে পারে। আপনার অ্যাপটি ঘনত্বের পরিবর্তনে সঠিকভাবে সাড়া দিচ্ছে তা নিশ্চিত করতে হবে। এর মধ্যে লেআউটের জন্য ঘনত্ব-স্বাধীন পিক্সেল (dp) ব্যবহার করা, ঘনত্ব-নির্দিষ্ট সংস্থান সরবরাহ করা এবং আপনার UI স্কেল যথাযথভাবে নিশ্চিত করা জড়িত।

সঠিক প্রসঙ্গ ব্যবহার করুন

মাল্টি-ডিসপ্লে পরিবেশে সঠিক প্রসঙ্গ ব্যবহার করা অত্যন্ত গুরুত্বপূর্ণ। সম্পদগুলি অ্যাক্সেস করার সময়, কার্যকলাপের প্রসঙ্গ (যা প্রদর্শিত হয়) অ্যাপ্লিকেশন প্রসঙ্গ (যা প্রদর্শিত হয় না) থেকে আলাদা।

অ্যাক্টিভিটি কনটেক্সট ডিসপ্লে সম্পর্কে তথ্য ধারণ করে এবং যে ডিসপ্লে এলাকায় অ্যাক্টিভিটি দেখা যায় তার জন্য সবসময় অ্যাডজাস্ট করা হয়। এটি আপনাকে আপনার অ্যাপের প্রদর্শনের ঘনত্ব বা উইন্ডো মেট্রিক্স সম্পর্কে সঠিক তথ্য পেতে সক্ষম করে। বর্তমান উইন্ডো বা প্রদর্শন সম্পর্কে তথ্য পেতে সর্বদা কার্যকলাপ প্রসঙ্গ (বা অন্য UI-ভিত্তিক প্রসঙ্গ) ব্যবহার করুন। এটি কিছু সিস্টেম API-কেও প্রভাবিত করে যা প্রসঙ্গ থেকে তথ্য ব্যবহার করে।

প্রদর্শন তথ্য পান

আপনি একটি নির্দিষ্ট ডিসপ্লে সম্পর্কে তথ্য পেতে Display ক্লাস ব্যবহার করতে পারেন, যেমন এর আকার বা পতাকা যা নির্দেশ করে যে ডিসপ্লে সুরক্ষিত কিনা। উপলব্ধ প্রদর্শনগুলি পেতে, DisplayManager সিস্টেম পরিষেবা ব্যবহার করুন:

val displayManager = getSystemService(Context.DISPLAY_SERVICE) as DisplayManager
val displays = displayManager.getDisplays()

কার্যকলাপ লঞ্চ এবং কনফিগারেশন পরিচালনা করুন

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

যখন কোনো অ্যাক্টিভিটি একটি সেকেন্ডারি ডিসপ্লেতে চলে যায়, তখন আপনার অ্যাপ একটি প্রসঙ্গ আপডেট, উইন্ডোর আকার পরিবর্তন এবং কনফিগারেশন এবং রিসোর্স পরিবর্তনগুলি অনুভব করতে পারে। যদি কার্যকলাপটি কনফিগারেশন পরিবর্তন পরিচালনা করে, তবে এটি onConfigurationChanged() এ অবহিত করা হয়। অন্যথায়, কার্যকলাপ পুনরায় চালু করা হয়.

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

আপনি ActivityOptions ব্যবহার করে একটি নির্দিষ্ট ডিসপ্লেতে একটি কার্যকলাপ চালু করতে পারেন:

val options = ActivityOptions.makeBasic()
options.setLaunchDisplayId(targetDisplay.displayId)
startActivity(intent, options.toBundle())

ডিভাইস অনুমোদিত তালিকা এড়িয়ে চলুন

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

বাহ্যিক পেরিফেরাল সমর্থন

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

ব্যবহারকারীর উৎপাদনশীলতা বাড়ান

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

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

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