Yazılım

React Native'de React Navigation Kurulumu ve Kullanımı (Expo ile)

Bu rehberde, Expo ile React Navigation kurulumu, Stack, Bottom Tabs ve Drawer Navigation sistemlerini adım adım öğreneceksiniz.

Aziz Kurt

Aziz Kurt

Bilgisayar Mühendisi

5 dk okuma
React Native'de React Navigation Kurulumu ve Kullanımı (Expo ile)

1. Giriş

Mobil uygulamalarda birden fazla ekran kullanmak kaçınılmazdır. React Native, sayfalar arasında geçiş yapabilmemiz için React Navigation adlı güçlü bir kütüphane sunar.

Bu yazıda, React NavigationExpo ile kuracak ve Stack Navigation, Bottom Tab Navigation ve Drawer Navigation sistemlerini nasıl kullanabileceğimizi adım adım öğreneceğiz.

2. React Navigation Kurulumu

İlk olarak, projemizi oluşturuyoruz. Eğer Expo projeniz yoksa aşağıdaki komutu çalıştırarak yeni bir Expo projesi başlatabilirsiniz:

Terminal
npx create-expo-app myNavigationApp
cd myNavigationApp

Ardından, React Navigation kütüphanesini ve gerekli bağımlılıkları yüklüyoruz:

Shell
npm install @react-navigation/native

Ek olarak, gerekli bağımlılıkları yüklememiz gerekiyor:

Terminal
npx expo install react-native-screens react-native-safe-area-context

Son olarak, Expo Router ile expo install expo-router komutunu çalıştırarak projemizi güncelleyebiliriz.

3. Stack Navigation Kullanımı

Stack Navigation, sayfalar arasında geçiş yapmak için kullanılan en yaygın navigasyon türlerinden biridir. Bir ekran diğerinin üzerine eklenir ve geri dönülebilir.

İlk olarak Stack Navigator paketini yüklüyoruz:

Terminal
npm install @react-navigation/stack

Ardından, App.js dosyanızı aşağıdaki şekilde düzenleyin:

App.tsx
import React from "react";
import { View, Text, Button } from "react-native";
import { NavigationContainer } from "@react-navigation/native";
import { createStackNavigator } from "@react-navigation/stack";
const Stack = createStackNavigator();
const HomeScreen = ({ navigation }) => {
  return (
    <View style={{ flex: 1, justifyContent: "center", alignItems: "center" }}>
      {" "}
      <Text>Anasayfa</Text>{" "}
      <Button
        title="Detaylara Git"
        onPress={() => navigation.navigate("Details")}
      />{" "}
    </View>
  );
};
const DetailsScreen = () => {
  return (
    <View style={{ flex: 1, justifyContent: "center", alignItems: "center" }}>
      {" "}
      <Text>Detaylar Sayfası</Text>{" "}
    </View>
  );
};
export default function App() {
  return (
    <NavigationContainer>
      {" "}
      <Stack.Navigator>
        {" "}
        <Stack.Screen name="Home" component={HomeScreen} />{" "}
        <Stack.Screen name="Details" component={DetailsScreen} />{" "}
      </Stack.Navigator>{" "}
    </NavigationContainer>
  );
}

Bu kod, HomeScreen ve DetailsScreen adlı iki sayfa oluşturur. Butona tıkladığınızda DetailsScreen'e yönlendirilirsiniz.

4. Bottom Tab Navigation Kullanımı

Tab Navigation, Instagram gibi uygulamalarda gördüğümüz alt menü (bottom tab bar) yapısını oluşturmak için kullanılır.

İlk olarak Tab Navigator paketini yüklüyoruz:

Terminal
npm install @react-navigation/bottom-tabs

Daha sonra App.js dosyanızı şu şekilde güncelleyin:

App.js
import React from "react";
import { View, Text } from "react-native";
import { NavigationContainer } from "@react-navigation/native";
import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
import { Ionicons } from "@expo/vector-icons";
const Tab = createBottomTabNavigator();
const HomeScreen = () => (
  <View style={{ flex: 1, justifyContent: "center", alignItems: "center" }}>
    {" "}
    <Text>Anasayfa</Text>{" "}
  </View>
);
const ProfileScreen = () => (
  <View style={{ flex: 1, justifyContent: "center", alignItems: "center" }}>
    {" "}
    <Text>Profil</Text>{" "}
  </View>
);
export default function App() {
  return (
    <NavigationContainer>
      {" "}
      <Tab.Navigator
        screenOptions={({ route }) => ({
          tabBarIcon: ({ color, size }) => {
            let iconName;
            if (route.name === "Home") {
              iconName = "home";
            } else if (route.name === "Profile") {
              iconName = "person";
            }
            return <Ionicons name={iconName} size={size} color={color} />;
          },
        })}
      >
        {" "}
        <Tab.Screen name="Home" component={HomeScreen} />{" "}
        <Tab.Screen name="Profile" component={ProfileScreen} />{" "}
      </Tab.Navigator>{" "}
    </NavigationContainer>
  );
}

Bu kod ile Home ve Profile sayfalarına sahip bir alt sekme navigasyonu oluşturduk. Her sekmenin simgesi, Ionicons kütüphanesi ile belirlenir.

5. Drawer Navigation Kullanımı

Drawer Navigation, uygulamalarımızın sol tarafında açılan yan menüler (drawer) oluşturmak için kullanılır.

İlk olarak Drawer Navigator paketini yüklüyoruz:

Terminal
npm install @react-navigation/drawer

Ardından, App.js dosyanızı aşağıdaki gibi düzenleyin:

App.tsx
import React from "react";
import { View, Text } from "react-native";
import { NavigationContainer } from "@react-navigation/native";
import { createDrawerNavigator } from "@react-navigation/drawer";
const Drawer = createDrawerNavigator();
const HomeScreen = () => (
  <View style={{ flex: 1, justifyContent: "center", alignItems: "center" }}>
    {" "}
    <Text>Anasayfa</Text>{" "}
  </View>
);
const SettingsScreen = () => (
  <View style={{ flex: 1, justifyContent: "center", alignItems: "center" }}>
    {" "}
    <Text>Ayarlar</Text>{" "}
  </View>
);
export default function App() {
  return (
    <NavigationContainer>
      {" "}
      <Drawer.Navigator>
        {" "}
        <Drawer.Screen name="Home" component={HomeScreen} />{" "}
        <Drawer.Screen name="Settings" component={SettingsScreen} />{" "}
      </Drawer.Navigator>{" "}
    </NavigationContainer>
  );
}

Bu sayede Home ve Settings sayfalarına sahip bir yan menü navigasyonu eklemiş olduk.

6. Sonuç

Bu rehberde, React Navigation ile Stack, Bottom Tabs ve Drawer Navigation sistemlerini Expo kullanarak nasıl kuracağımızı öğrendik. Artık çok sayfalı bir uygulama oluşturabilirsiniz! 🚀

Bu Yazıyı Paylaş

Aziz Kurt

Aziz Kurt

Yazılım Geliştirici | React Native & Next.js | API & Veri Analizi


Mobil ve web uygulamaları geliştiriyorum.


React Native, Next.js, PostgreSQL ve yapay zeka projeleriyle ilgileniyorum.

İlgili Yazılar

React Native ile İlk Mobil Uygulamanı Geliştir!

React Native ile İlk Mobil Uygulamanı Geliştir!

2 Nisan 20255 dk