강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

김라영님의 프로필 이미지
김라영

작성한 질문수

[2025] 비전공자도 가능한 React Native 앱 개발 마스터클래스

[스플래쉬 스크린] 스플래쉬 스크린의 작동 원리

안드로이드 스플래시 및 AppIcon설정 전체 과정 및 관련 질문

해결된 질문

작성

·

112

0

안드로이드 설정 과정이 전체가 약간 헷갈려있게 되어있는 것 같아서,,, 이게 맞는지 궁금해서 남깁니다
npm i react-native-splash-screen --save 을 통해서 npm을 설치한다

  1. 앱로고와 스플래시 화면을 준비해준다

    1. 아래 사이트에서 앱 로고를 만들어준다

      EasyAppIcon - Create Mobile App Icon

    2. 앱 아이콘들을 android폴더에 넣어준다

      • android/app/src/main/res의 아래에 mipmap-hdpi~로 시작하는 파일들에 이름에 맞춰서 앱 아이콘들을 넣어준다

         

    3. 스플래시 화면(아마도 이미지)을 android/app/src/main/res/drawable폴더에 넣어준다

      1. 반드시 launch_screen이라는 이름으로 넣어준다 -> launch_screen.png

      image.png

       

  2. android/setting.gradle에 가서 아래처럼 설정해준다

    include ':react-native-splash-screen'   
    project(':react-native-splash-screen').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-splash-screen/android')
    

     

  3. android/app/build.gradle (113번 줄)

    implementation project(':react-native-splash-screen')
    
  4. android/app/src/main/java/com/coin/MainActivity.kt에 7번째 줄에

    import android.os.Bundle;
    import org.devio.rn.splashscreen.SplashScreen;
    
  5. android/app/src/main/java/com/coin/MainActivity.kt에 12~15번째 줄에

     override fun onCreate(savedInstanceState: Bundle?) {
        SplashScreen.show(this)
        super.onCreate(null)
      }
    

     

  6. . . . /MainApplication.kt (14번 줄)에

    import org.devio.rn.splashscreen.SplashScreenReactPackage
    
  7. . . . /MainApplication.kt (24번 줄)에

    SplashScreenReactPackage()
    
  8. 스플래시 화면을 숨겨주기 위해 App.tsx에

    • 아래 내용을 추가해준다

    useEffect(() => {
        setTimeout(() => {
          SplashScreen.hide();
        }, 500);
      }); // 의존성 배열 없음 - 매 렌더링마다 실행됨
    
  9. values.colors.xml파일을 만들어서 아래 내용을 추가해준다

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <!-- 다른 색상들이 있다면 유지하세요 -->
        <color name="status_bar_color">#000000</color> <!-- 원하는 색상 코드로 변경 가능 -->
    </resources>
    
  • 질문1. 잘 나오는 것 같기는 한데 총 과정이 이게 맞을까요?

  • 질문2. 그리고 스플래시화면이 뜨기 전에 앱 로고가 전체적으로 뜨고(흰바탕에 설정한 앱 로고가 중앙에 작게 나옴) 스플래시 화면이 뜨는데 원래 이런거 맞나요?

  • 질문3. 그리고 values/colors.xml파일은 왜 설정해주는 건가요?

     

답변 2

0

정현우님의 프로필 이미지
정현우
지식공유자

답변1. 넵 오류가 없이 잘 뜨셨다면 올바른 전체 설정과정입니다. 원래 스플래쉬 스크린 설정 방법이 조금 까다롭긴 합니다.

답변2. 넵 맞습니다, 원래 앱을 열었을때 기본적으로 아이콘이 먼저 표시되더라구요. 실제로 사용하시는 앱들 중에서도 여러 개가 그런 식으로 표시됩니다.

답변3. colors.xml 파일같은 경우엔 핸드폰 상태창(화면 맨 위에 항상 뜨는 시간, 알림, 와이파이 등의 정보를 포함하는 창)의 색을 지정해주는 파일입니다. 그런데, colors.xml 파일을 바꾸시거나 삭제하셔도 아무런 반응이 없으실 겁니다. 하지만 스플래쉬 스크린 공식 문서에 나와있는 정식 설정방법이므로 추후 오류가 생길 염려를 하지 않도록 설정해 준 것입니다.

궁금증이 해결 되셨으면 좋겠습니다.

0

안녕하세요, 인프런 AI 인턴입니다. 김라영님.

주신 내용을 바탕으로 안드로이드 스플래시 및 AppIcon 설정 전체 과정에 대한 설명을 드리겠습니다.

우선적으로 귀하가 공유하신 세부 단계는 주로 react-native-splash-screen 패키지를 활용한 안드로이드 스플래시 화면 설정 과정입니다. 이 과정에서 명확히 설정해야 할 부분과 자주 헷갈릴 수 있는 요소들을 설명해 드리겠습니다.

1. 설정 과정 확인

귀하가 공유하신 설정 과정은 대체로 올바릅니다. 이 방식은 react-native 프로젝트에서 스플래시 스크린을 설정하기 위한 전형적인 과정으로, 앱 아이콘과 스플래시 이미지를 적절한 위치에 저장하고, 네이티브 모듈을 통해 스플래시 화면을 제어합니다.

2. 스플래시 화면 전 로딩 스크린

안드로이드 앱이 로드되기 전에 시스템 레벨 스플래시를 잠시 보여주는 것은 일반적인 현상입니다. 이 시스템 스플래시는 앱 아이콘이 중심에 있는 상태로 보여질 수 있으며, 이는 앱이 완료되기 전에 약간의 초기 로딩 시간을 보완하기 위해 사용됩니다. react-native-splash-screen 는 메인 스플래시 화면을 제어하며, 시스템 스플래시와 다른 설정입니다.

3. values/colors.xml 파일 설정

values/colors.xml 파일은 안드로이드에서 상태 바의 색상 등을 설정하기 위해 사용됩니다. 특히, 상태 바 색상(status_bar_color)을 사용자의 테마에 맞게 지정하는 것이 일반적이며, 프레임워크에 따라 앱의 전체적 색상 일관성을 유지하기 위해 중요할 수 있습니다.

추가 참고 자료

아래의 관련 질문 링크에서도 비슷한 문제와 설정의 수준에 대한 논의가 이루어졌습니다. 추가적으로 따라가 보시면 좋을 것 같습니다.

  1. expo로 설치해도 되나요?

    • 내용 요약: Expo를 사용해 개발할 때와 네이티브 설정의 차별점에 대해 설명하고 있습니다.
  2. 프로젝트 생성에 대해서?

    • 내용 요약: 프로젝트 생성 시 다양한 설정 이슈와 해결 방법에 대해 언급되어 있습니다.

위의 답변들이 김라영님의 문제 해결에 도움이 되길 바랍니다. 추가로 궁금한 점이 있거나 다른 도움이 필요하시면 언제든지 질문해 주세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

김라영님의 프로필 이미지
김라영

작성한 질문수

질문하기