অভিযোজিত অ্যাপ্লিকেশানগুলি সমস্ত আকারের প্রদর্শন সমর্থন করে: পুরো ডিভাইসের স্ক্রীন, মাল্টি-উইন্ডো মোডে আকার পরিবর্তনযোগ্য উইন্ডো, প্রতিকৃতি এবং ল্যান্ডস্কেপ অভিযোজন, ভাঁজযোগ্য ডিভাইসগুলির ভাঁজ করা এবং প্রকাশ করা প্রদর্শন।
কনফিগারেশন সেটিংস এবং API এর একটি সংক্ষিপ্ত তালিকা আপনাকে অভিযোজিত অ্যাপ্লিকেশন তৈরি করতে সক্ষম করে। কিন্তু কিছু পুরানো সেটিংস এবং APIগুলি অভিযোজিত অ্যাপগুলির সাথে বেমানান এবং অবশ্যই এড়ানো উচিত৷
পরিবর্তনযোগ্যতা
অভিযোজিত অ্যাপগুলি অ্যাপের পরিবর্তনযোগ্যতা এবং মাল্টি-উইন্ডো মোড সমর্থন করে।
<activity>
এবং <application>
ম্যানিফেস্ট উপাদানগুলির resizeableActivity
অ্যাট্রিবিউট Android 11 (API লেভেল 30) এবং তার নিচের মাল্টি-উইন্ডো মোডকে সক্ষম বা অক্ষম করে। Android 12 (API স্তর 31) এবং উচ্চতর, বড় স্ক্রীনগুলি বৈশিষ্ট্য নির্বিশেষে মাল্টি-উইন্ডো মোড সমর্থন করে৷ আরও তথ্যের জন্য, সমর্থন মাল্টি-উইন্ডো মোড দেখুন।
ব্যবহারকারীর উৎপাদনশীলতা এবং সন্তুষ্টি বৃদ্ধির জন্য মাল্টি-উইন্ডো, মাল্টিটাস্কিং পরিস্থিতিতে অংশগ্রহণকারীদের জন্য আপনার অ্যাপ সক্ষম করুন।
resizeableActivity="true"
সেট করুন যদি আপনার অ্যাপটি 24-এর কম এপিআই লেভেলকে লক্ষ্য করে; অন্যথায়, এটি সম্পর্কে ভুলে যান—এটি অ্যান্ড্রয়েড 7.0 (এপিআই স্তর 24) এবং উচ্চতর ডিফল্টরূপে true
৷
কোনো API স্তরের জন্য resizeableActivity="false"
সেট করবেন না। বহু-উইন্ডো মোড জড়িত এমন ব্যবহারের ক্ষেত্রে আপনার অ্যাপটিকে বাদ দেবেন না।
ওরিয়েন্টেশন
অভিযোজিত অ্যাপ্লিকেশনগুলি প্রদর্শনের আকার বা উইন্ডো মোড নির্বিশেষে প্রতিকৃতি এবং ল্যান্ডস্কেপ অভিযোজন সমর্থন করে।
screenOrientation
ম্যানিফেস্ট সেটিং কার্যকলাপের অভিযোজন সীমাবদ্ধ করে।
আপনার অ্যাপ ম্যানিফেস্ট থেকে screenOrientation
সেটিং বাদ দিন।
অ্যাপ্লিকেশানগুলির অভিযোজন লক করা উইন্ডোর আকার পরিবর্তন প্রতিরোধ করে না। অ্যাপ্লিকেশানগুলি যখন মাল্টি-উইন্ডো মোডে প্রবেশ করে, যখন একটি ডিভাইস ভাঁজ করা হয় বা খোলা হয়, বা যখন একটি ডেস্কটপ-টাইপ উইন্ডোর আকার পরিবর্তন করা হয়। আপনার অ্যাপটিকে screenOrientation
অ্যাট্রিবিউট সেটিং নির্বিশেষে উইন্ডোর আকারে পরিবর্তন সমর্থন করতে হবে।
কার্যকলাপ অভিযোজন সীমাবদ্ধ করবেন না. যে অ্যাপ্লিকেশানগুলি অভিযোজন লক করে সেগুলি বড় স্ক্রীন ডিভাইসগুলিতে লেটারবক্সযুক্ত এবং অসঙ্গত উইন্ডোর আকার।
লেটারবক্সযুক্ত অ্যাপগুলি ট্যাবলেট, ফোল্ডেবল এবং ChromeOS ডিভাইসগুলির জন্য Google Play-তে আবিষ্কারযোগ্যতা হ্রাসের বিষয়।
আকৃতির অনুপাত
স্ক্রীন এবং জানালার আকার যেমন পরিবর্তিত হয়, তেমনি তাদের আকৃতির অনুপাতও হয়—লম্বা থেকে সরু, বর্গক্ষেত্র, ছোট এবং চওড়া।
minAspectRatio
এবং maxAspectRatio
ম্যানিফেস্ট সেটিংস আপনার অ্যাপের আকৃতির অনুপাতকে হার্ড-কোডেড মানগুলিতে সীমাবদ্ধ করে।
আপেক্ষিক মাত্রা নির্বিশেষে ডিসপ্লে ফিট করার জন্য আপনার অ্যাপটিকে মানিয়ে নিন।
আপনার অ্যাপ ম্যানিফেস্ট থেকে minAspectRatio
এবং maxAspectRatio
সেটিংস বাদ দিন। অথবা নিশ্চিত করুন যে আপনার অ্যাপটি পুনরায় আকার দেওয়া যায় এবং আকৃতির অনুপাত নিজেই যত্ন নেয় ( পুনরায়করণযোগ্যতা বিভাগটি দেখুন)।
আপনার অ্যাপের আপেক্ষিক মাত্রা নিয়ন্ত্রণ করার চেষ্টা করবেন না। যদি আপনার অ্যাপটি স্ক্রিনে বা এমন একটি উইন্ডোতে চলে যেটির আকৃতির অনুপাত অ্যাপের অনুপাতের সাথে সামঞ্জস্যপূর্ণ নয়, তাহলে আপনার অ্যাপটি লেটারবক্সযুক্ত।
অ্যান্ড্রয়েড 14 (এপিআই লেভেল 34) এবং উচ্চতর, ব্যবহারকারীরা উপলব্ধ ডিসপ্লে এলাকা পূরণ করতে লেটারবক্সযুক্ত অ্যাপগুলিকে প্রসারিত করতে অ্যাপের আকৃতির অনুপাতকে ওভাররাইড করতে পারেন। ডিভাইস সামঞ্জস্য মোড দেখুন।
জানালার আকার
বিভিন্ন ডিসপ্লে মাপের জন্য লেআউট অপ্টিমাইজ করা অভিযোজিত ডিজাইনের কেন্দ্রীয় ভিত্তি। অভিযোজিত অ্যাপগুলি ডিভাইসের পর্দার আকারের পরিবর্তে অ্যাপ উইন্ডোর আকারের উপর ফোকাস করে। যখন অ্যাপটি পূর্ণ স্ক্রীনে থাকে, তখন অ্যাপ উইন্ডোটি ডিভাইসের পর্দা।
উইন্ডো আকারের ক্লাসগুলি অ্যাপ উইন্ডোর আকার নির্ধারণ এবং শ্রেণিবদ্ধ করার একটি পদ্ধতিগত উপায় প্রদান করে। আপনার অ্যাপ্লিকেশানের উইন্ডো আকারের শ্রেণী পরিবর্তিত হওয়ার সাথে সাথে লেআউট পরিবর্তন করে আপনার অ্যাপটিকে মানিয়ে নিন।
উইন্ডো আকার ক্লাসের উপর ভিত্তি করে আপনার অ্যাপ উইন্ডোর আকার মূল্যায়ন করুন।
উইন্ডোর আকারের শ্রেণী নির্ধারণ করতে, কম্পোজ ম্যাটেরিয়াল 3 অ্যাডাপটিভ লাইব্রেরির currentWindowAdaptiveInfo()
শীর্ষ-স্তরের ফাংশনটি ব্যবহার করুন। আরও তথ্যের জন্য, অভিযোজিত অ্যাপ তৈরি করা দেখুন।
উইন্ডো সাইজ ক্লাস ডেফিনিশন এবং বিল্ট-ইন API-এর ইউটিলিটি উপেক্ষা করবেন না। উইন্ডোর আকার গণনা করার জন্য অপ্রচলিত API ব্যবহার করবেন না।
অপ্রচলিত API
পুরানো প্ল্যাটফর্ম API সঠিকভাবে অ্যাপ উইন্ডো পরিমাপ করে না; কেউ ডিভাইসের পর্দা পরিমাপ করে, কেউ সিস্টেম সজ্জা বাদ দেয়।
অ্যাপ উইন্ডোর আকার পেতে WindowManager#getCurrentWindowMetrics()
এবং WindowMetrics#getBounds()
ব্যবহার করুন। প্রদর্শনের ঘনত্ব পেতে WindowMetrics#getDensity()
ব্যবহার করুন।
উইন্ডোর আকার নির্ধারণ করতে নিম্নোক্ত Display
এপিআই ব্যবহার করবেন না:
-
getSize()
: Android 11 (API লেভেল 30) এ অবচয় -
getMetrics()
: Android 11 (API লেভেল 30) এ অবহেলিত -
getRealSize()
: Android 12 (API লেভেল 31) এ অবচয় -
getRealMetrics()
: Android 12 (API লেভেল 31) এ অবচয়
রচনা করুন
জেটপ্যাক কম্পোজ অভিযোজিত UI বিকাশের জন্য ডিজাইন করা হয়েছে। কোন XML নেই, কোন লেআউট ফাইল নেই, কোন রিসোর্স কোয়ালিফায়ার নেই। শুধু কোটলিন-ভিত্তিক, Column
, Row
এবং Box
মতো স্টেটলেস কম্পোজেবল যা আপনার UI বর্ণনা করে এবং offset
, padding
এবং size
মতো মডিফায়ার যা UI উপাদানগুলিতে আচরণ যোগ করে৷
কম্পোজ দিয়ে তৈরি করুন। সর্বশেষ বৈশিষ্ট্য এবং প্রকাশের সাথে আপ টু ডেট থাকুন।
পুরানো প্রযুক্তির উপর নির্ভর করবেন না। আপনার অ্যাপটিকে অপ্রচলিত হতে দেবেন না।
রচনা উপাদান 3 অভিযোজিত লাইব্রেরি
কম্পোজ ম্যাটেরিয়াল 3 অ্যাডাপ্টিভ লাইব্রেরি উপাদান এবং এপিআই সরবরাহ করে যা অভিযোজিত অ্যাপগুলির বিকাশকে সহজ করে।
আপনার অ্যাপটিকে অভিযোজিত করতে নিম্নলিখিত API ব্যবহার করুন:
-
NavigationSuiteScaffold
: অ্যাপ উইন্ডো সাইজ ক্লাসের উপর নির্ভর করে নেভিগেশন বার এবং নেভিগেশন রেলের মধ্যে স্যুইচ করে। -
ListDetailPaneScaffold
: তালিকা-বিশদ ক্যানোনিকাল লেআউট প্রয়োগ করে। অ্যাপ্লিকেশান উইন্ডো আকারে লেআউট মানিয়ে নেয়। -
SupportingPaneScaffold
: সমর্থনকারী প্যান ক্যানোনিকাল লেআউট প্রয়োগ করে।
চাকা পুনরায় উদ্ভাবন করবেন না। সমস্ত জেটপ্যাক কম্পোজ লাইব্রেরি দ্বারা প্রদত্ত বিকাশকারীর উত্পাদনশীলতা লাভগুলি মিস করবেন না।
বিন্যাস
ব্যবহারকারীরা আশা করে যে অ্যাপগুলি সম্পূরক সামগ্রী বা বর্ধিত নিয়ন্ত্রণ সহ উপলব্ধ ডিসপ্লে স্থানের সর্বাধিক ব্যবহার করবে।
অভিযোজিত অ্যাপগুলি প্রদর্শনের পরিবর্তনের উপর ভিত্তি করে লেআউটগুলিকে অপ্টিমাইজ করে, বিশেষ করে, অ্যাপ উইন্ডোর আকারের পরিবর্তন বা ডিভাইসের ভঙ্গিতে পরিবর্তন।
উপলব্ধ প্রদর্শন স্থানের সুবিধা নিতে উইন্ডোর আকার পরিবর্তনের সাথে সাথে UI উপাদানগুলি পরিবর্তন করুন৷ উদাহরণস্বরূপ, মাঝারি এবং প্রসারিত উইন্ডোতে উল্লম্ব নেভিগেশন রেলের জন্য কমপ্যাক্ট উইন্ডো আকারে ব্যবহৃত নীচের নেভিগেশন বারটি অদলবদল করুন। সমস্ত ডিসপ্লেতে পৌঁছানোর জন্য ডায়ালগগুলিকে রিপজিশন করুন৷
ডাইনামিক কন্টেন্ট প্রদর্শনের জন্য তালিকা-বিশদ বিবরণ এবং সমর্থনকারী প্যানের মতো মাল্টি-প্যান লেআউটগুলি সক্ষম করতে প্যানে সামগ্রীগুলি সংগঠিত করুন৷
আপনি যদি কন্টেন্ট প্যান ব্যবহার না করেন, তাহলে উপলভ্য ডিসপ্লে স্পেস পূরণ করতে শুধু UI উপাদানগুলো প্রসারিত করবেন না। লেখার লম্বা লাইন পড়া কঠিন। প্রসারিত বোতাম খারাপভাবে ডিজাইন করা দেখায়। আপনি যদি Modifier.fillMaxWidth
ব্যবহার করেন, তাহলে ধরে নিবেন না যে এটি সমস্ত ডিসপ্লে আকারের জন্য সঠিক আচরণ।
ইনপুট ডিভাইস
ব্যবহারকারীরা অ্যাপের সাথে ইন্টারঅ্যাক্ট করতে শুধু টাচ স্ক্রিন ব্যবহার করেন না।
অভিযোজিত অ্যাপগুলি একটি বর্ধিত ব্যবহারকারীর অভিজ্ঞতা প্রদান করতে বাহ্যিক কীবোর্ড, মাউস এবং স্টাইলগুলিকে সমর্থন করে এবং ব্যবহারকারীদের সমস্ত ধরণের ফর্ম ফ্যাক্টরগুলিতে আরও উত্পাদনশীল হতে সহায়তা করে৷
কীবোর্ড ট্যাব নেভিগেশন এবং মাউস বা ট্র্যাকপ্যাড ক্লিক, নির্বাচন এবং স্ক্রোল করার জন্য অ্যান্ড্রয়েড ফ্রেমওয়ার্কের অন্তর্নির্মিত কার্যকারিতার সুবিধা নিন। কীবোর্ড শর্টকাট হেল্পারে আপনার অ্যাপের কীবোর্ড শর্টকাট প্রকাশ করুন।
একটি স্টাইলাস ব্যবহার করে ব্যবহারকারীদের যেকোনো TextField
উপাদানে লিখতে সক্ষম করতে Jetpack Material 3 লাইব্রেরি ব্যবহার করুন।
বিকল্প ইনপুট পদ্ধতিগুলিকে অসম্ভব করে তুলবেন না। অ্যাক্সেসিবিলিটি সমস্যা প্রবর্তন করবেন না।
সারাংশ
- রচনা এবং উপাদান 3 অভিযোজিত লাইব্রেরি দিয়ে আপনার অ্যাপ তৈরি করুন
- উইন্ডো আকারের ক্লাসে বেস লেআউট
- মাল্টি-প্যান লেআউট তৈরি করুন
- আপনার অ্যাপের আকার পরিবর্তনযোগ্য করুন
- কার্যকলাপ অভিযোজন লক করবেন না
- আকৃতির অনুপাত সীমাবদ্ধ করবেন না
- স্পর্শ ছাড়া অন্য সমর্থন ইনপুট
- অপ্রচলিত API এড়িয়ে চলুন
✓ আপনার ব্যবহারকারীরা যা প্রত্যাশা করে তা করুন : লোকেরা প্রতিদিন নির্ভর করে এমন ডিভাইসের বৈচিত্র্যের জন্য আপনার অ্যাপটি অপ্টিমাইজ করুন।
✗ অপেক্ষা করবেন না । আজ শুরু করুন!