Split Screen একটি বিভক্ত স্ক্রিন মোড যা একই সাথে দুটি অ্যাপ পাশাপাশি চালানোর অনুমতি দেয়, উপলব্ধ স্থানকে ভাগ করে। ব্যবহারকারী উইন্ডোর মধ্যে বিভাজক টেনে আনতে পারে, অনুপাত পরিবর্তন করতে পারে এবং প্রতিটি অর্ধেকে দ্রুত অ্যাপ স্যুইচ করতে পারে। Android Developers (2025) অনুসারে, Split Screen 600 dp এবং তার বেশি স্ক্রিন প্রস্থের সমস্ত ডিভাইসের জন্য বাধ্যতামূলক সামঞ্জস্য প্রোগ্রামের অংশ এবং এটি Android এবং iPadOS উভয়েই সমর্থিত।
মূল বিষয়
Split Screen একটি মাল্টিটাস্কিং মোড যেখানে স্ক্রিন দুটি কার্যকরী এলাকায় বিভক্ত হয়, প্রতিটিতে একটি পৃথক অ্যাপ থাকে। Slide Over বা PiP-এর বিপরীতে, যেখানে একটি উইন্ডো অপরটির উপরে ভাসে, Split Screen উভয় অ্যাপকে সমান মর্যাদা দেয় — প্রতিটি স্ক্রিনের নিজস্ব অর্ধেক পায়।
মোডটি Android (7.0 Nougat থেকে), iPadOS (iOS 9 থেকে), Windows (Snap Assist) এবং কিছু Linux ডেস্কটপ পরিবেশে উপলব্ধ। মোবাইল ডেভেলপমেন্টে, Split Screen ট্যাবলেট এবং ভাঁজযোগ্য ডিভাইসের জন্য বাধ্যতামূলক পরিস্থিতি হিসাবে বিবেচিত হয়, যেখানে মাল্টিটাস্কিং প্ল্যাটফর্মের একটি মূল সুবিধা।
ব্যবহারকারী Overview (Android)-এ অ্যাপ আইকনে দীর্ঘ চাপ দিয়ে বা Dock (iPad) থেকে টেনে Split Screen সক্রিয় করে। সক্রিয়করণের পরে, স্ক্রিন বিভক্ত হয় এবং ব্যবহারকারী সাম্প্রতিক তালিকা বা Dock থেকে দ্বিতীয় অ্যাপ নির্বাচন করে।
Android-এ, Split Screen Window Manager-এর মাধ্যমে পরিচালিত হয়। যখন ব্যবহারকারী মোডটি সক্রিয় করে, সিস্টেম দুটি StackView তৈরি করে — প্রতিটি Activity-র জন্য একটি। উইন্ডোর মধ্যে বিভাজক সিস্টেম দ্বারা রেন্ডার করা হয়, ন্যূনতম পুরুত্ব 1 dp সহ, যা Gesture Navigationযুক্ত ডিভাইসে বাড়ানো যেতে পারে।
প্রতিটি অ্যাপ onConfigurationChanged-এর মাধ্যমে আকার পরিবর্তনের বিজ্ঞপ্তি পায়। যদি Activity এই ইভেন্টটি পরিচালনা না করে, তবে এটি ধ্বংস হয়ে পুনরায় তৈরি হয়। ভিডিও এবং গেমের জন্য এটি গুরুত্বপূর্ণ: Activity পুনরায় তৈরি করলে প্লেব্যাক অবস্থান বা গেমের অবস্থা রিসেট হয়ে যায়।
বিভাজক টেনে উইন্ডোর অনুপাত পরিবর্তন করা যেতে পারে। Android তিনটি অবস্থা সমর্থন করে: 50/50, 70/30 এবং 30/70। ব্যবহারকারী অ্যাপ অদলবদলও করতে পারে, যা Activity পুনরায় চালু করে যদি configChanges পরিচালনা না করা হয়।
Split View iPadOS-এ Split Screen-এর বাস্তবায়ন। Android-এর বিপরীতে, যেখানে স্ক্রিন বিভাজন সর্বদা কেন্দ্র থেকে শুরু হয়, iPadOS ব্যবহারকারীকে তিনটি বিভাজক অবস্থান প্রদান করে: 50/50, 25/75 এবং 75/25। মোডটি Dock বা App Exposé-এর মাধ্যমে সক্রিয় হয়।
iPadOS-এ, Split View-তে একটি অ্যাপকে Slide Over — একটি ভাসমান উইন্ডো —-তে সংকুচিত করা যেতে পারে। এটি Apple-এর একটি অনন্য বৈশিষ্ট্য: ব্যবহারকারী ডেটা ক্ষতি ছাড়াই একটি উইন্ডোকে Split View থেকে Slide Over-এ এবং পিছনে রূপান্তর করতে পারে। ডেভেলপারকে তিনটি মোডই সমর্থন করতে হবে: ফুল স্ক্রিন, Split View এবং Slide Over।
iOS-এ Split View সমর্থন করতে, অ্যাপটিকে Size Classes এবং সিন (UIScene)-এর মাধ্যমে অভিযোজিত লেআউট বাস্তবায়ন করতে হবে। iOS 13 থেকে, Apple প্রয়োজন করে যে অ্যাপ মাল্টি-উইন্ডো মোড সঠিকভাবে পরিচালনা করবে — অন্যথায় সিস্টেম iPad-এ Activity জোরপূর্বক পুনরায় চালু করতে পারে।
Split Screen-এ প্রবেশ এবং প্রস্থান করার সময় কনফিগারেশন পরিবর্তন ঘটে: উইন্ডোর প্রস্থ, উচ্চতা এবং আকৃতির অনুপাত পরিবর্তিত হয়। মানক Android আচরণ হল Activity পুনরায় তৈরি করা (onDestroy + onCreate)। এটি এড়াতে, ম্যানিফেস্টে android:configChanges নির্দিষ্ট করুন।
পুনরায় তৈরি করার সময়, Activity View এবং ViewModel অবস্থা হারায়। UI অবস্থা সংরক্ষণ করতে SavedStateHandle বা Application-স্কোপড ViewModel ব্যবহার করুন। জটিল অবজেক্টের জন্য বিকল্প হল onRetainNonConfigurationInstance()।
@Override
fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
val isSplitScreen = isInMultiWindowMode()
if (isSplitScreen) {
adjustLayoutForSplitScreen()
}
}
iPadOS-এ, সমতুল্য প্রক্রিয়া হল traitCollectionDidChange বা viewWillTransitionToSize। ডেভেলপার নতুন কন্টেইনার আকার পায় এবং Size Class অনুযায়ী লেআউট পুনর্নির্মাণ করতে হবে।
Android-এ, Split Screen সমর্থন ম্যানিফেস্টে resizeableActivity ফ্ল্যাগ সেট করার মাধ্যমে শুরু হয়। এর পরে, Activity 220 dp-এর ন্যূনতম প্রস্থে সঙ্কুচিত হতে পারে। যদি অ্যাপ এত সংকীর্ণ স্ক্রিন সমর্থন না করে, তবে ম্যানিফেস্টে android:minWidth নির্দিষ্ট করুন।
iPad-এর জন্য, ডেভেলপারকে শুধু Size Classes সমর্থন করতে এবং Auto Layout বা SwiftUI ব্যবহার করতে হবে। SwiftUI Split View-এ প্রবেশ করার সময় স্বয়ংক্রিয়ভাবে ইন্টারফেস অভিযোজিত করে — উদাহরণস্বরূপ, NavigationSplitView স্ট্যাকড এবং সাইড-বাই-সাইড মোডের মধ্যে স্যুইচ করে।
বাস্তব ডিভাইস বা মাল্টি-রিসাইজেবল উইন্ডো সেটিংস সহ এমুলেটরে Split Screen পরীক্ষা করার পরামর্শ দেওয়া হয়। Android Emulator ADB-এর মাধ্যমে যেকোনো সংখ্যক উইন্ডো চালু করতে এবং বিভিন্ন অনুপাতে অ্যাপের আচরণ পরীক্ষা করতে দেয়।
| প্ল্যাটফর্ম | অভিযোজন প্রক্রিয়া | ন্যূনতম প্রস্থ |
|---|---|---|
| Android | resizeableActivity + configChanges | 220 dp |
| iPadOS | Size Classes + UIScene | 320 pt (প্রাথমিক) |
প্রথম ভুল হল অবস্থা সংরক্ষণ উপেক্ষা করা। Split Screen-এ, Activity ব্যবহারকারীর কর্ম ছাড়াই যেকোনো মুহূর্তে পুনরায় তৈরি হতে পারে। যদি ডেটা শুধুমাত্র স্থানীয় ভেরিয়েবলে সংরক্ষিত থাকে, তবে তা হারিয়ে যাবে। স্ক্রিন ডেটার জন্য ViewModel এবং গুরুত্বপূর্ণ অবস্থার জন্য SavedStateHandle ব্যবহার করুন।
দ্বিতীয় ভুল হল উইন্ডো সঙ্কুচিত হলে বিষয়বস্তু লুকানো। কিছু ডেভেলপার প্রস্থ নির্দিষ্ট সীমার নিচে নামলে উপাদান লুকিয়ে ফেলে। সঠিক পদ্ধতি হল লেআউট পুনর্নির্মাণ করা: সংকীর্ণ স্ক্রিনে, সবকিছু লুকানোর পরিবর্তে শুধুমাত্র সবচেয়ে গুরুত্বপূর্ণ দেখান। Window Size Class এই যুক্তির জন্য প্রস্তুত ব্রেকপয়েন্ট প্রদান করে।
তৃতীয় ভুল হল onWindowFocusChanged পরিচালনা না করা। Split Screen-এ, ফোকাস অ্যাপ বন্ধ না করেই উইন্ডোর মধ্যে স্যুইচ করতে পারে। এই ইভেন্ট উপেক্ষা করলে ভিডিও প্লেয়ার থেমে যায় যখন ব্যবহারকারী কেবল পাশের উইন্ডোর দিকে তাকায়।
সচরাচর জিজ্ঞাসিত প্রশ্ন
FLAG_ACTIVITY_LAUNCH_ADJACENT সহ Intent ব্যবহার করুন। যদি ডিভাইস Split Screen-এ থাকে, অ্যাপটি পাশের উইন্ডোতে খুলবে। যদি ডিভাইস ফুল-স্ক্রিন মোডে থাকে, ফ্ল্যাগটি উপেক্ষা করা হয়।
হ্যাঁ। Activity দৃশ্যমান থাকে কিন্তু ফোকাস হারায় — onPause কল হয়, কিন্তু onStop নয়। Split Screen থেকে প্রস্থান করার সময়, onMultiWindowModeChanged এবং তারপর onResume কল হয়।
WindowManager.getCurrentWindowMetrics() বা Jetpack WindowManager ব্যবহার করুন। Display.getSize() ব্যবহার করবেন না — এটি পূর্ণ স্ক্রিন রিটার্ন করে, বর্তমান অ্যাপ উইন্ডো নয়।
হ্যাঁ। খোলা ডিভাইসে, Split Screen প্রায়শই ডিফল্ট মোড। Samsung Galaxy Z Fold ল্যান্ডস্কেপ মোডে একসঙ্গে তিনটি অ্যাপ সহ Split Screen অফার করে।
সেই Activity-র জন্য android:resizeableActivity="false" সেট করুন। API 24+-এর জন্য, এই ফ্ল্যাগ Split Screen নিষ্ক্রিয় করে। Android 12L+-এ, android:minWidth এবং android:minHeight ব্যবহার করুন।
সারসংক্ষেপ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন