Mobile/react-native
[react-native] react-native-splash-screen
춘햄
2024. 2. 13. 23:04
react-native-splash-screen은 React Native 애플리케이션에서 시작 화면(스플래시 스크린)을 쉽게 구현할 수 있게 도와주는 라이브러리이다.
이 라이브러리를 사용하면 앱이 로딩되는 동안 사용자에게 보여줄 초기 화면을 설정할 수 있으며, 앱의 로딩 경험을 개선하는 데 유용하다.
이 글에서는 Android와 iOS 환경에서 각각 셋팅하는 방법과 기본적인 사용 예제에 대하여 설명하려고 한다.
yarn add react-native-splash-screen
npm install react-native-splash-screen --save
Android 환경에서의 셋팅
- android/app/src/main/java/[...]/MainActivity.java 파일을 열고, import org.devio.rn.splashscreen.SplashScreen;와 같이 SplashScreen을 import 한다.
- onCreate 메소드 내에서 SplashScreen.show(this);를 추가하여 스플래시 스크린이 표시되도록 설정한다. 이는 앱이 시작될 때 스플래시 스크린이 나타나게 한다.
◎MainActivity.java
import android.os.Bundle;
import org.devio.rn.splashscreen.SplashScreen;
public class MainActivity extends ReactActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
SplashScreen.show(this);
super.onCreate(savedInstanceState);
}
}
- android/app/src/main/res/layout/ 디렉토리에 launch_screen.xml 파일을 생성하고, 스플래시 스크린의 레이아웃을 정의한다.
◎ launch_screen.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="false"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:background="#6200EE"
android:gravity="center_vertical"
android:orientation="vertical">
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/splash_icon" />
</RelativeLayout>
이후에는 android/app/src/main/res/drawable/ 디렉토리에 스플래시 이미지(splash.png)를 추가한다.
iOS 환경에서의 셋팅
- Xcode를 열고, 프로젝트의 Images.xcassets에 새로운 Image Set을 추가한다. 이 Image Set을 Splash라고 명명하고, 스플래시 스크린으로 사용할 이미지들을 추가한다.
- AppDelegate.m 파일을 열고, #import "RNSplashScreen.h"를 추가하여 RNSplashScreen을 import 한다.
- didFinishLaunchingWithOptions 메소드 내에 [RNSplashScreen show];를 추가하여 스플래시 스크린이 표시되도록 설정한다.
◎ AppDelegate.m
#import "RNSplashScreen.h" // 여기에 import 문 추가
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[RNSplashScreen show];
return YES;
}
사용 예제
React Native 애플리케이션에서 react-native-splash-screen을 사용하는 기본 예제는 다음과 같다.
◎App.js
import React, { Component } from 'react';
import { View, Text } from 'react-native';
import SplashScreen from 'react-native-splash-screen';
export default class App extends Component {
componentDidMount() {
SplashScreen.hide(); // 앱이 준비되면 스플래시 스크린을 숨긴다.
}
render() {
return (
<View>
<Text>Welcome to React Native!</Text>
</View>
);
}
}
이 예제에서는 앱의 componentDidMount 생명주기 메소드에서 SplashScreen.hide()를 호출하여, 앱이 로드되고 준비가 완료되면 스플래시 스크린을 숨기는 방법을 보여준다.
react-native-splash-screen을 통해 구현된 스플래시 스크린은 사용자에게 앱이 로딩되는 동안 보다 나은 사용자 경험을 제공하며, 앱의 전반적인 인상을 향상시킬 수 있다.