Bottom Tab ও Drawer Navigation

📱 React Native File-based Bottom Tab ও Drawer Navigation (TypeScript)

React Native অ্যাপে একাধিক স্ক্রিনের মধ্যে সহজে যাতায়াত করার জন্য Navigation ব্যবহার করা হয়। এই টিউটোরিয়ালে আমরা শিখবো কীভাবে File-based structure ব্যবহার করে Bottom TabDrawer Navigation তৈরি করা যায় – সম্পূর্ণ TypeScript সহ।


🔰 File-based Navigation কী?

File-based navigation মানে হচ্ছে ফোল্ডার ও ফাইলের নাম অনুযায়ী স্ক্রিন ও রাউট অর্গানাইজ করা। এতে বড় অ্যাপেও কোড পরিষ্কার ও মেইনটেইনেবল থাকে।

src/
 ├─ navigation/
 │   ├─ BottomTabs.tsx
 │   ├─ DrawerNavigator.tsx
 │   └─ RootNavigator.tsx
 ├─ screens/
 │   ├─ HomeScreen.tsx
 │   ├─ ProfileScreen.tsx
 │   └─ SettingsScreen.tsx
 └─ App.tsx

📦 প্রয়োজনীয় Packages Install

npm install @react-navigation/native
npm install @react-navigation/bottom-tabs
npm install @react-navigation/drawer
npm install react-native-gesture-handler
npm install react-native-reanimated
npm install react-native-screens
npm install react-native-safe-area-context

👉 এগুলো React Navigation এর জন্য আবশ্যক।

📁 Bottom Tab Navigation (File-based)

Bottom Tab সাধারণত অ্যাপের নিচে থাকে এবং প্রধান স্ক্রিনগুলোতে দ্রুত যাওয়ার সুবিধা দেয়।

import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import HomeScreen from '../screens/HomeScreen';
import ProfileScreen from '../screens/ProfileScreen';

export type BottomTabParamList = {
  Home: undefined;
  Profile: undefined;
};

const Tab = createBottomTabNavigator<BottomTabParamList>();

export default function BottomTabs() {
  return (
    <Tab.Navigator>
      <Tab.Screen name="Home" component={HomeScreen} />
      <Tab.Screen name="Profile" component={ProfileScreen} />
    </Tab.Navigator>
  );
}

✅ এখানে TypeScript type ব্যবহার করা হয়েছে
✅ প্রতিটি Tab একটি আলাদা Screen ফাইল লোড করছে

📲 Output:

অ্যাপের নিচে HomeProfile নামের দুটি Tab দেখা যাবে। ট্যাপ করলে স্ক্রিন পরিবর্তন হবে।

📁 Drawer Navigation (File-based)

Drawer Navigation সাধারণত বাম দিক থেকে slide করে আসে এবং অতিরিক্ত অপশন দেখাতে ব্যবহৃত হয়।

import { createDrawerNavigator } from '@react-navigation/drawer';
import BottomTabs from './BottomTabs';
import SettingsScreen from '../screens/SettingsScreen';

export type DrawerParamList = {
  Tabs: undefined;
  Settings: undefined;
};

const Drawer = createDrawerNavigator<DrawerParamList>();

export default function DrawerNavigator() {
  return (
    <Drawer.Navigator>
      <Drawer.Screen name="Tabs" component={BottomTabs} />
      <Drawer.Screen name="Settings" component={SettingsScreen} />
    </Drawer.Navigator>
  );
}

👉 এখানে Drawer এর ভিতরে Bottom Tab রাখা হয়েছে
👉 এটি বাস্তব প্রজেক্টে সবচেয়ে বেশি ব্যবহৃত প্যাটার্ন

📲 Output:

বাম দিক থেকে swipe করলে একটি Drawer খুলবে যেখানে TabsSettings অপশন থাকবে।

🔗 Root Navigator (App Entry Point)

import { NavigationContainer } from '@react-navigation/native';
import DrawerNavigator from './navigation/DrawerNavigator';

export default function App() {
  return (
    <NavigationContainer>
      <DrawerNavigator />
    </NavigationContainer>
  );
}

✅ কেন এই File-based Navigation ব্যবহার করবেন?

  • কোড পরিষ্কার ও স্কেলেবল থাকে
  • Team project-এ কাজ করা সহজ
  • TypeScript support থাকায় bug কম হয়
  • Production-ready architecture

✨ Summary

এই টিউটোরিয়ালে আপনি শিখলেন:

  • File-based Navigation Structure
  • Bottom Tab Navigation (TypeScript)
  • Drawer Navigation এর সাথে Tab Integration
  • Real-world App Navigation Pattern
👼 Quiz
/

লোড হচ্ছে...