Split Screen이란? 화면에 두 개의 앱을 표시하는 모드

저자: IT Sectr 게시일: 2026-06-08 읽는 시간: 9 분

Split Screen은 화면을 분할하여 두 개의 앱을 동시에 나란히 실행하고 사용 가능한 공간을 나누는 모드입니다. 사용자는 창 사이의 구분선을 드래그하여 비율을 변경하고 각 절반에서 앱을 빠르게 전환할 수 있습니다. Android Developers (2025)에 따르면 Split Screen은 화면 너비 600dp 이상의 모든 기기에서 필수 호환성 프로그램의 일부이며 Android와 iPadOS 모두에서 지원됩니다.

주요 내용

  • Split Screen — 드래그 가능한 구분선으로 화면에 두 개의 앱 표시.
  • Android Split Screen — Android 7.0부터 작동, Overview를 통해 활성화.
  • iPad Split View — iPadOS의 유사 모드, 세 가지 구분선 위치 지원.
  • 적응 — 앱이 창 크기 변경을 처리하고 상태를 유지해야 함.
  • 최소 너비 — Split Screen에서 앱 창이 220dp까지 축소 가능.

Split Screen이란?

Split Screen은 화면이 두 개의 기능 영역으로 분할되고 각 영역에 별도의 앱이 포함되는 멀티태스킹 모드입니다. 하나의 창이 다른 창 위에 떠 있는 Slide Over나 PiP와 달리 Split Screen은 두 앱에 동등한 상태를 부여합니다. 각 앱이 화면의 절반을 차지합니다.

이 모드는 Android(7.0 Nougat부터), iPadOS(iOS 9부터), Windows(Snap Assist) 및 일부 Linux 데스크톱 환경에서 사용할 수 있습니다. 모바일 개발에서 Split Screen은 태블릿과 폴더블 기기에서 필수 시나리오로 간주되며, 멀티태스킹은 플랫폼의 주요 이점입니다.

사용자는 Overview(Android)에서 앱 아이콘을 길게 누르거나 Dock(iPad)에서 드래그하여 Split Screen을 활성화합니다. 활성화 후 화면이 분할되고 사용자는 최근 앱 목록이나 Dock에서 두 번째 앱을 선택합니다.

Android에서 Split Screen: 작동 방식

Android에서 Split Screen은 Window Manager를 통해 관리됩니다. 사용자가 모드를 활성화하면 시스템이 두 개의 StackView를 생성합니다. 각 Activity당 하나씩입니다. 창 사이의 구분선은 시스템에서 렌더링되며 최소 두께는 1dp이지만 제스처 내비게이션이 있는 기기에서는 증가할 수 있습니다.

각 앱은 onConfigurationChanged를 통해 크기 변경 알림을 받습니다. Activity가 이 이벤트를 처리하지 않으면 파괴되고 재생성됩니다. 비디오와 게임의 경우 이는 중요합니다. Activity를 재생성하면 재생 위치나 게임 상태가 재설정됩니다.

구분선을 드래그하여 창 비율을 변경할 수 있습니다. Android는 50/50, 70/30, 30/70의 세 가지 상태를 지원합니다. 사용자는 앱을 교체할 수도 있으며, configChanges가 처리되지 않으면 Activity가 다시 시작됩니다.

iPadOS의 Split View: 특징

Split View는 iPadOS에서 Split Screen을 구현한 것입니다. 화면 분할이 항상 중앙에서 시작되는 Android와 달리 iPadOS는 사용자에게 50/50, 25/75, 75/25의 세 가지 구분선 위치를 제공합니다. 모드는 Dock 또는 App Exposé를 통해 활성화됩니다.

iPadOS에서 Split View의 앱은 Slide Over(떠 있는 창)로 축소될 수 있습니다. 이것은 Apple의 고유한 기능입니다. 사용자는 데이터 손실 없이 Split View의 창을 Slide Over로 또는 그 반대로 변환할 수 있습니다. 개발자는 전체 화면, Split View, Slide Over의 세 가지 모드를 모두 지원해야 합니다.

iOS에서 Split View를 지원하려면 앱이 Size Classes와 씬(UIScene)을 통해 적응형 레이아웃을 구현해야 합니다. iOS 13부터 Apple은 앱이 멀티 윈도우 모드를 올바르게 처리할 것을 요구합니다. 그렇지 않으면 시스템이 iPad에서 Activity를 강제로 다시 시작할 수 있습니다.

설정 변경 처리

Split Screen에 진입하거나 종료할 때 설정 변경이 발생합니다. 창의 너비, 높이 및 종횡비가 변경됩니다. 표준 Android 동작은 Activity를 재생성하는 것입니다(onDestroy + onCreate). 이를 방지하려면 매니페스트에서 android:configChanges를 지정하세요.

재생성 시 Activity는 View 및 ViewModel 상태를 잃습니다. UI 상태를 저장하려면 SavedStateHandle 또는 Application 범위의 ViewModel을 사용하세요. 복잡한 객체의 경우 onRetainNonConfigurationInstance()가 대안입니다.

kotlin
@Override
fun onConfigurationChanged(newConfig: Configuration) {
    super.onConfigurationChanged(newConfig)
    val isSplitScreen = isInMultiWindowMode()
    if (isSplitScreen) {
        adjustLayoutForSplitScreen()
    }
}

iPadOS에서 동등한 메커니즘은 traitCollectionDidChange 또는 viewWillTransitionToSize입니다. 개발자는 새 컨테이너 크기를 수신하고 Size Class에 따라 레이아웃을 재구성해야 합니다.

코드에서 Split Screen 지원

Android에서 Split Screen 지원은 매니페스트에서 resizeableActivity 플래그를 설정하는 것으로 시작됩니다. 그런 다음 Activity는 최소 너비 220dp까지 축소될 수 있습니다. 앱이 이러한 좁은 화면을 지원하지 않는 경우 매니페스트에서 android:minWidth를 지정하세요.

iPad의 경우 개발자는 Size Classes를 지원하고 Auto Layout 또는 SwiftUI를 사용하기만 하면 됩니다. SwiftUI는 Split View로 전환할 때 자동으로 인터페이스를 조정합니다. 예를 들어 NavigationSplitView는 스택 모드와 나란히 모드 간에 전환합니다.

실제 기기나 멀티 리사이즈 가능 창 설정이 있는 에뮬레이터에서 Split Screen을 테스트하는 것이 좋습니다. Android Emulator는 ADB를 통해 원하는 수의 창을 실행하고 다양한 비율에서 앱 동작을 확인할 수 있습니다.

플랫폼적응 메커니즘최소 너비
AndroidresizeableActivity + configChanges220 dp
iPadOSSize Classes + UIScene320 pt (기본)

구현 시 흔한 실수

첫 번째 실수는 상태 저장을 무시하는 것입니다. Split Screen에서 Activity는 사용자 작업 없이 언제든지 재생성될 수 있습니다. 데이터가 로컬 변수에만 저장되어 있으면 손실됩니다. 화면 데이터에는 ViewModel을, 중요한 상태에는 SavedStateHandle을 사용하세요.

두 번째 실수는 창이 축소될 때 콘텐츠를 숨기는 것입니다. 일부 개발자는 너비가 특정 임계값 아래로 떨어지면 요소를 숨깁니다. 올바른 접근 방식은 레이아웃을 재구성하는 것입니다. 좁은 화면에서는 모든 것을 숨기는 대신 가장 중요한 것만 표시하세요. Window Size Class는 이 로직에 대한 기성 중단점을 제공합니다.

세 번째 실수는 onWindowFocusChanged를 처리하지 않는 것입니다. Split Screen에서 포커스는 앱을 닫지 않고 창 사이에서 전환될 수 있습니다. 이 이벤트를 무시하면 사용자가 단순히 옆 창을 볼 때 비디오 플레이어가 중지됩니다.

자주 묻는 질문

프로그래밍 방식으로 Split Screen에서 앱을 시작하려면?

FLAG_ACTIVITY_LAUNCH_ADJACENT가 포함된 Intent를 사용하세요. 기기가 Split Screen 모드인 경우 앱이 인접 창에서 열립니다. 기기가 전체 화면 모드인 경우 플래그가 무시됩니다.

Split Screen에서 Activity 수명 주기가 다른가요?

네. Activity는 계속 표시되지만 포커스를 잃습니다. onPause가 호출되지만 onStop은 호출되지 않습니다. Split Screen을 종료하면 onMultiWindowModeChanged가 호출된 다음 onResume이 호출됩니다.

Split Screen에서 창 너비를 확인하는 방법은?

WindowManager.getCurrentWindowMetrics() 또는 Jetpack WindowManager를 사용하세요. Display.getSize()를 사용하지 마세요. 전체 화면이 아닌 현재 앱 창을 반환합니다.

Split Screen이 폴더블 기기에서 지원되나요?

네. 펼쳐진 기기에서 Split Screen은 종종 기본 모드입니다. Samsung Galaxy Z Fold는 가로 모드에서 세 개의 앱을 동시에 표시하는 Split Screen을 제공합니다.

특정 Activity에 대해 Split Screen을 비활성화하려면?

해당 Activity에 android:resizeableActivity="false"를 설정하세요. API 24+의 경우 이 플래그가 Split Screen을 비활성화합니다. Android 12L+에서는 android:minWidth와 android:minHeight를 사용하세요.

요약

  • Split Screen — 화면에 두 개의 앱을 표시하는 모드, Android와 iPadOS에서 사용 가능.
  • Android — resizeableActivity + onConfigurationChanged를 통해 작동.
  • iPadOS — 세 가지 구분선 위치의 Split View, Slide Over로 변환 가능.
  • 적응 — configChanges 또는 재생성을 통한 크기 변경 처리.
  • 상태 저장 — Split Screen에는 ViewModel과 SavedStateHandle이 필수.
  • 테스트 — Android 최소 너비 220dp, iPad 최소 너비 320pt.
  • 결론 — Split Screen은 태블릿과 폴더블 기기를 위한 필수 모드이며 수명 주기 관리와 적응형 레이아웃이 필요합니다.

턴키 방식의 모바일 애플리케이션을 개발해 드립니다

IT Sectr는 2017년부터 스타트업과 기업을 위한 iOS 및 Android 애플리케이션을 만듭니다. 저희가 상담해 드리고 최적의 솔루션을 제안하겠습니다.

프로젝트 논의

더 읽어보기