๐Ÿ“ฑ React Native: SafeAreaView

zooyahoยท2025๋…„ 7์›” 19์ผ
0
post-thumbnail

๐Ÿ“ฑ SafeAreaView ์ปดํฌ๋„ŒํŠธ ์ •๋ฆฌ

SafeAreaView๋Š” React Native์—์„œ iOS๋‚˜ Android์˜ ๋…ธ์น˜ ์˜์—ญ, ์ƒํƒœ๋ฐ”, ํ•˜๋‹จ ํ™ˆ ์ธ๋””์ผ€์ดํ„ฐ ๋“ฑ์„ ํ”ผํ•ด ์•ˆ์ „ํ•œ ์˜์—ญ ์•ˆ์—์„œ๋งŒ UI๋ฅผ ๊ทธ๋ฆฌ๋„๋ก ๋„์™€์ฃผ๋Š” ์ปดํฌ๋„ŒํŠธ์ž…๋‹ˆ๋‹ค.


โœ… SafeAreaView๋ž€?

SafeAreaView๋Š” iOS์˜ safe area ๊ฐœ๋…๊ณผ ๋™์ผํ•˜๊ฒŒ,
๊ธฐ๊ธฐ ํ™”๋ฉด์˜ ์œ„/์•„๋ž˜ ๊ฐ€์žฅ์ž๋ฆฌ ์˜์—ญ์„ ํ”ผํ•ด ์ฝ˜ํ…์ธ ๊ฐ€ ์ž˜๋ฆฌ๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด:

  • iPhone X ์ดํ›„ ๋ชจ๋ธ์—์„œ ๋…ธ์น˜(notch)
  • Android์˜ ์ƒํƒœ๋ฐ”/์†Œํ”„ํŠธ ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ”

๐Ÿ“ฆ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

import { SafeAreaView, Text, StyleSheet } from "react-native";

export default function App() {
  return (
    <SafeAreaView style={styles.root}>
      <Text>Hello, Safe Area!</Text>
    </SafeAreaView>
  );
}

const styles = StyleSheet.create({
  root: {
    flex: 1,
    backgroundColor: "#fff",
  },
});

๐Ÿ’ก ์ฃผ์˜ํ•  ์ 

ํ•ญ๋ชฉ์„ค๋ช…
โœ… flex: 1SafeAreaView๋Š” ์ „์ฒด ํ™”๋ฉด์„ ๋ฎ๋„๋ก ์„ค์ •ํ•ด์•ผ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ flex: 1์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๐Ÿšซ Android์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ๋Š” SafeAreaView๊ฐ€ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (API 28 ์ดํ•˜ ๋“ฑ)
๐Ÿ” ๋Œ€์•ˆreact-native-safe-area-context ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ SafeAreaView ๋˜๋Š” useSafeAreaInsets()๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ์•ˆ์ •์ ์ž…๋‹ˆ๋‹ค.

๐Ÿ”ง ๋” ๊ฐ•๋ ฅํ•œ ๋Œ€์•ˆ (์ถ”์ฒœ)

npm install react-native-safe-area-context
import { SafeAreaProvider, SafeAreaView } from "react-native-safe-area-context";

export default function App() {
  return (
    <SafeAreaProvider>
      <SafeAreaView style={{ flex: 1 }}>
        <Text>์ปจํ…์ธ </Text>
      </SafeAreaView>
    </SafeAreaProvider>
  );
}

์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” iOS/Android ๋ชจ๋‘ ๋” ์ž˜ ์ง€์›ํ•˜๊ณ , ์ค‘์ฒฉ ๊ตฌ์กฐ์—์„œ๋„ ์ž‘๋™์ด ์•ˆ์ •์ ์ž…๋‹ˆ๋‹ค.


โœ… ์ •๋ฆฌ

ํ•ญ๋ชฉ์„ค๋ช…
๋ชฉ์ ๋…ธ์น˜ยท์ƒํƒœ๋ฐ” ๋“ฑ UI ์นจ๋ฒ” ๋ฐฉ์ง€
iOS ์ง€์›๊ธฐ๋ณธ SafeAreaView๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค
Android ์ง€์›react-native-safe-area-context ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค
์Šคํƒ€์ผ๋ฐ˜๋“œ์‹œ flex: 1์„ ์ ์šฉํ•ด์•ผ ์ „์ฒด ์˜์—ญ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ปค๋ฒ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
profile
์ฆ๊ฒ๊ฒŒ ๊ฐœ๋ฐœํ•˜์ž ์ฅฌ์•ผํ˜ธ๐Ÿ‘ป

0๊ฐœ์˜ ๋Œ“๊ธ€