স্ক্রিন আর্কিটেকচার এবং নেভিগেশন একটি সিস্টেম যা নির্ধারণ করে কিভাবে ব্যবহারকারী মোবাইল অ্যাপ্লিকেশনের স্ক্রিনগুলির মধ্যে перемещается, ফিরে যায় এবং প্রয়োজনীয় ফাংশন খুঁজে পায়। আর্কিটেকচারে অন্তর্ভুক্ত ট্রানজিশন নিয়ম, স্ক্রিন ক্রম এবং পূর্ববর্তী বিভাগে ফিরে যাওয়ার পদ্ধতি। Apple Human Interface Guidelines (2025) অনুসারে, সুচিন্তিত নেভিগেশন ব্যবহারকারীর জ্ঞানীয় বোঝা ৪০% হ্রাস করে, এবং ব্যবহারকারীরা তথ্য অনুসন্ধানে ২৫% কম সময় ব্যয় করে। স্ক্রিন আর্কিটেকচারের মৌলিক নীতিগুলি আয়ত্ত করে, আপনি স্বজ্ঞাতভাবে স্পষ্ট কাঠামো সহ অ্যাপ্লিকেশন তৈরি করতে সক্ষম হবেন।
মূল পয়েন্ট
স্ক্রিন আর্কিটেকচার এবং নেভিগেশন হল মোবাইল অ্যাপ্লিকেশনের কাঠামো যা উপলব্ধ স্ক্রিন এবং তাদের মধ্যে перемещаться করার উপায় নির্ধারণ করে। প্রতিটি স্ক্রিন একটি নির্দিষ্ট কাজ সমাধান করে: পণ্যের তালিকা, পণ্য কার্ড, কার্ট বা চেকআউট ফর্ম। Apple Human Interface Guidelines (2025) অনুসারে, সুচিন্তিত নেভিগেশন ব্যবহারকারীর জ্ঞানীয় বোঝা ৪০% হ্রাস করে। শিক্ষানবিশ ডেভেলপারদের তিন থেকে পাঁচটি স্ক্রিনের একটি সহজ স্কিম দিয়ে শুরু করা উচিত।
যেকোনো স্ক্রিন আর্কিটেকচারে তিনটি মৌলিক উপাদান অন্তর্ভুক্ত থাকে: স্ক্রিন, ট্রানজিশন এবং নেভিগেশন কন্টেইনার। স্ক্রিন বিষয়বস্তু প্রদর্শন করে, ট্রানজিশন স্ক্রিন পরিবর্তনের অ্যানিমেশন পরিচালনা করে এবং কন্টেইনার ব্যবহারকারীর চলাফেরার ইতিহাস সংরক্ষণ করে। Android-এ এই ভূমিকা FragmentManager পালন করে, iOS-এ — UINavigationController। এই তিনটি উপাদান বোঝা ব্যবহারকারী-বান্ধব ইন্টারফেস ডিজাইন করার প্রথম পদক্ষেপ।
মোবাইল অ্যাপ্লিকেশনে চারটি প্রধান প্রকারের নেভিগেশন রয়েছে: স্ট্যাক, মোডাল, ট্যাব এবং জেসচার-ভিত্তিক। স্ট্যাক মডেল কার্ডের স্তুপের মতো কাজ করে — প্রতিটি নতুন স্ক্রিন উপরে রাখা হয়, এবং "পিছনে" বোতাম উপরের কার্ডটি সরিয়ে দেয়। Nielsen Norman Group (2024) অনুসারে, স্ট্যাক নেভিগেশন হল সবচেয়ে পূর্বাভাসযোগ্য প্যাটার্ন, যা ৯৪% ব্যবহারকারী প্রশিক্ষণ ছাড়াই বুঝতে পারেন। স্ট্যাক দিয়ে শুরু করার পরামর্শ দেওয়া হয় কারণ এটি যেকোনো প্ল্যাটফর্মের ব্যবহারকারীদের জন্য স্বজ্ঞাত।
মোডাল উইন্ডো হল অস্থায়ী স্ক্রিন যা মূল বিষয়বস্তুতে ফিরে আসার আগে একটি কাজের প্রয়োজন। এগুলি একটি কাজ এর জন্য ব্যবহৃত হয়: একটি ক্রিয়া নিশ্চিত করা, লগইন ফর্ম বা বিকল্প নির্বাচন। স্ট্যাকের বিপরীতে, মোডাল উইন্ডো নেভিগেশন ইতিহাসে সংরক্ষিত হয় না। নেভিগেশনের প্রকার অ্যাপ্লিকেশনের ব্যবহারের ক্ষেত্রে ভিত্তিতে নির্বাচিত হয়।
iOS-এ, নেভিগেশন UINavigationController-এর চারপাশে নির্মিত — একটি কন্ট্রোলার যা স্ক্রিন স্ট্যাক পরিচালনা করে। UINavigationController স্বয়ংক্রিয়ভাবে শিরোনাম এবং "পিছনে" বোতাম সহ একটি নেভিগেশন বার যোগ করে। Apple Developer Documentation (2025) অনুসারে, App Store-এ ৮৫% অ্যাপ UINavigationController-কে প্রধান নেভিগেশন প্যাটার্ন হিসাবে ব্যবহার করে। শিক্ষানবিশ iOS ডেভেলপারদের জন্য UX/UI ডিজাইনের মৌলিক বিষয়গুলির সাথে push এবং pop আয়ত্ত করা যথেষ্ট।
push ট্রানজিশনের সময়, একটি নতুন স্ক্রিন নেভিগেশন স্ট্যাক-এ রাখা হয় এবং ব্যবহারকারী ডান দিক থেকে স্লাইড-ইন অ্যানিমেশন দেখেন। pop ট্রানজিশনের সময়, বর্তমান স্ক্রিন স্ট্যাক থেকে সরানো হয় এবং ব্যবহারকারী পূর্ববর্তী স্ক্রিনে ফিরে যান। UINavigationController স্ট্যাকের সমস্ত স্ক্রিনের রেফারেন্স সংরক্ষণ করে, ব্যবহারকারীকে কয়েক ধাপ পিছনে যেতে দেয়। IT Sectr-এ, আমরা সমস্ত iOS প্রকল্পে রৈখিক ব্যবহারকারীর পরিস্থিতি তৈরির জন্য এই পদ্ধতি ব্যবহার করি।
Android-এ, স্ক্রিন আর্কিটেকচার Navigation Component-এর মাধ্যমে বাস্তবায়িত হয় — Google-এর একটি লাইব্রেরি যা নেভিগেশন তৈরির জন্য। Navigation Component একটি নেভিগেশন গ্রাফ (nav graph) ব্যবহার করে, যেখানে প্রতিটি স্ক্রিন একটি নোড এবং ট্রানজিশন তাদের মধ্যে প্রান্ত। Android Developers Guide (2025) অনুসারে, Navigation Component ম্যানুয়াল FragmentManager-এর তুলনায় নেভিগেশন ত্রুটি ৬০% হ্রাস করে। শিক্ষানবিশ Android ডেভেলপারদের অবিলম্বে Navigation Component আয়ত্ত করার পরামর্শ দেওয়া হয়।
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
// nav_graph.xml-এ:
<!--
<fragment android:id="@+id/homeFragment"
android:name=".HomeFragment" />
<fragment android:id="@+id/detailFragment"
android:name=".DetailFragment" />
<action android:id="@+id/toDetail"
app:destination="@id/detailFragment" />
-->
// বোতাম টিপলে নেভিগেট করুন:
view.findViewById<Button>(R.id.open_detail).setOnClickListener {
findNavController().navigate(R.id.toDetail)
}
Navigation Component-এর আগে, ডেভেলপাররা FragmentManager-এর মাধ্যমে ট্রানজিশন পরিচালনা করতেন — ফ্রাগমেন্ট প্রতিস্থাপনের জন্য একটি সিস্টেম ক্লাস। FragmentManager ট্রানজ্যাকশনের সাথে কাজ করে: স্ক্রিনে ফ্রাগমেন্ট পরিবর্তনের জন্য replace, add, remove। তবে, এটির জন্য ম্যানুয়াল স্ট্যাক এবং অবস্থা পরিচালনার প্রয়োজন, যা প্রায়শই ত্রুটির দিকে নিয়ে যায়। Google আনুষ্ঠানিকভাবে ম্যানুয়াল FragmentManager-এর নিরাপদ বিকল্প হিসাবে Navigation Component সুপারিশ করে।
শিক্ষানবিশ ডেভেলপাররা প্রায়ই স্ক্রিন আর্কিটেকচার ডিজাইন করার সময় সাধারণ ভুল করে। সবচেয়ে সাধারণ হল নেভিগেশনের একটি কেন্দ্রীয় নিয়ন্ত্রণের অভাব, যখন ট্রানজিশন পুরো কোডে ছড়িয়ে থাকে। Google Play Console বিশ্লেষণ (2025) অনুসারে, বিশৃঙ্খল নেভিগেশনযুক্ত অ্যাপগুলিতে ট্রানজিশন সম্পর্কিত ৩৭% বেশি ক্র্যাশ রিপোর্ট থাকে। একটি একক রাউটার বা নেভিগেশন গ্রাফ এই সমস্যার সমাধান করে।
অনেক শিক্ষানবিশ Android-এ সিস্টেম "পিছনে" বোতাম বা iOS-এ সোয়াইপ জেসচার পরিচালনা করতে ভুলে যান। অপরিচালিত প্রত্যাবর্তন অ্যাপ্লিকেশন হ্যাং বা অপ্রত্যাশিতভাবে প্রস্থান করে। Android-এ, Navigation Component "পিছনে" বোতাম স্বয়ংক্রিয়ভাবে পরিচালনা করে যদি নেভিগেশন গ্রাফ কনফিগার করা থাকে। নীচে OnBackPressedDispatcher দিয়ে "পিছনে" বোতাম পরিচালনার একটি উদাহরণ রয়েছে।
class MyFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
val callback = OnBackPressedCallback(true) {
if (isSheetExpanded) {
collapseSheet()
isEnabled = false
} else {
isEnabled = false
requireActivity().onBackPressedDispatcher.onBackPressed()
}
}
requireActivity().onBackPressedDispatcher.addCallback(
viewLifecycleOwner, callback
)
}
}
কোডটি পরীক্ষা করে যে Bottom Sheet প্যানেল প্রসারিত কিনা: যদি হ্যাঁ — এটি সঙ্কুচিত করে, যদি না — সিস্টেম ডিসপ্যাচারে ইভেন্ট পাঠায়। Android-এ কাস্টম "পিছনে" হ্যান্ডলিংয়ের জন্য এটি একটি স্ট্যান্ডার্ড প্যাটার্ন।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
স্ক্রিন আর্কিটেকচার হল মোবাইল অ্যাপ্লিকেশনের স্ক্রিনগুলির মধ্যে ট্রানজিশনের কাঠামো। এটি নির্ধারণ করে ব্যবহারকারীর জন্য কোন স্ক্রিন উপলব্ধ, কী ক্রমে সেগুলি খোলে এবং ব্যবহারকারী কীভাবে পূর্ববর্তী বিভাগে ফিরে যায়। সুচিন্তিত আর্কিটেকচার ইন্টারফেসকে স্বজ্ঞাত করে তোলে এবং ডেভেলপমেন্টের সময় নেভিগেশন সম্পর্কিত বাগের সংখ্যা উল্লেখযোগ্যভাবে হ্রাস করে।
মোবাইল অ্যাপ্লিকেশনে স্ট্যাক, মোডাল এবং ট্যাব প্রকারের নেভিগেশন রয়েছে। স্ট্যাক নেভিগেশন ফিরে আসার সাথে স্ক্রিনের স্তুপের মতো কাজ করে। মোডাল একটি কাজের জন্য অস্থায়ী উইন্ডো খোলে। ট্যাব নেভিগেশন অ্যাপকে বিভাগে বিভক্ত করে তাদের মধ্যে স্যুইচিং সহ। প্রকারের পছন্দ ডেভেলপারের কাজ এবং ব্যবহারকারীর প্রয়োজনীয়তার উপর নির্ভর করে।
স্ট্যাক নেভিগেশন ট্রানজিশনের ইতিহাসে সংরক্ষিত হয় — ব্যবহারকারী যেকোনো পূর্ববর্তী স্ক্রিনে ফিরে আসতে পারেন। মোডাল উইন্ডো সংরক্ষিত হয় না: বন্ধ করার পরে, ব্যবহারকারী সরাসরি সেই স্ক্রিনে আসেন যেখান থেকে উইন্ডো খোলা হয়েছিল। স্ট্যাক অনুক্রমিক কাজের জন্য উপযুক্ত (পণ্য নির্বাচন — কার্ট — চেকআউট), মোডাল উইন্ডো একক ক্রিয়ার জন্য।
Android-এর জন্য Navigation Component ব্যবহার করার পরামর্শ দেওয়া হয় — Google-এর একটি আধুনিক লাইব্রেরি। এটি স্বয়ংক্রিয়ভাবে স্ট্যাক, "পিছনে" বোতাম এবং ডিপ লিংক পরিচালনা করে। FragmentManager একটি পুরানো টুল যার জন্য ম্যানুয়াল অবস্থা পরিচালনার প্রয়োজন। Google আনুষ্ঠানিকভাবে সমস্ত নতুন প্রকল্পের জন্য Navigation Component সুপারিশ করে।
সুচিন্তিত স্ক্রিন আর্কিটেকচার ছাড়া, অ্যাপ্লিকেশন দ্রুত বিশৃঙ্খলায় পরিণত হয়, যেখানে প্রতিটি নতুন স্ক্রিন সিস্টেম ছাড়া যোগ করা হয়। এটি ট্রানজিশন ত্রুটি এবং নতুন বৈশিষ্ট্য যোগ করতে অসুবিধার দিকে নিয়ে যায়। Google Play Console অনুসারে, নেভিগেশন আর্কিটেকচার ছাড়া অ্যাপগুলিতে ৩৭% বেশি বাগ থাকে। শুরুতে স্ক্রিন পরিকল্পনা ৩০% পর্যন্ত ডেভেলপমেন্ট সময় বাঁচায়।
সারসংক্ষেপ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।