Google은 흑인 공동체를 위한 인종 간 평등을 진전시키기 위해 노력하고 있습니다. Google에서 어떤 노력을 하고 있는지 확인하세요.

기능 플러그인을 사용하는 인스턴트 앱 만들기

주의: 이 페이지의 워크플로는 Android 스튜디오 3.1을 사용하여 인스턴트 앱을 만든 개발자에게만 적용됩니다.

인스턴트 지원 앱 번들을 만들려면 대신 Android 스튜디오 3.3을 사용할 것을 강력하게 권장합니다.

이 가이드에서는 인스턴트 앱을 작업하도록 개발 환경을 설정하는 방법을 설명합니다. 그런 다음, 프로젝트 생성 마법사나 기존 앱에서 인스턴트 앱을 만드는 방법을 알아보고 인스턴트 앱을 포함하는 Android 스튜디오 프로젝트를 실행하고 디버그하는 방법도 알아봅니다. 마지막으로, 인스턴트 앱 게시와 관련된 리소스를 안내합니다.

아직 다운로드하지 않았다면 Android 스튜디오 3.0 이상을 다운로드한 후에 이 가이드의 단계를 따르세요.

개발 환경 준비하기

Android 스튜디오에서 Android SDK 관리자를 엽니다. SDK Platforms 탭에서 Android 6.0(API 레벨 23) 이상이 설치되어 있는지 확인합니다.

그런 다음, SDK Tools 탭을 열고 다음 패키지를 설치합니다.

  • Android SDK 빌드 도구 26.x 이상
  • Android SDK 플랫폼 도구 25.x 이상
  • Android SDK 도구(최신)
  • Google Play 인스턴트 개발 SDK(최신)
  • 지원 저장소(최신)
    • 지원 저장소의 모든 종속성(각 종속성의 최신 버전)

지원되는 권한만 요청하기

인스턴트 앱은 Android App Bundle을 사용하여 기존 앱을 인스턴트 지원 앱으로 만들기 가이드의 목록에 나오는 권한만 사용할 수 있습니다.

인스턴트 앱 만들기

다음 워크플로 중 하나를 사용하여 인스턴트 앱을 만들 수 있습니다.

새 인스턴트 앱 프로젝트 만들기

인스턴트 앱을 만들려면 다음 단계를 완료하세요.

  1. Android 스튜디오를 시작하고 새 프로젝트를 만듭니다.
    • 아직 프로젝트를 열지 않았다면 Welcome to Android Studio 창에서 Start a new Android Studio project를 클릭합니다.
    • 이미 프로젝트를 열어둔 상태라면 File > New Project를 선택합니다.
  2. Create Android Project 창에서 다음을 수행합니다.
    1. Application name 상자에 'My First Instant App'을 입력합니다.
    2. Company domain 상자에 'example.com'을 입력합니다.
    3. Package name을 'com.example.myfirstinstantapp' 그대로 둡니다.
    4. Next를 클릭합니다.
  3. Target Android Devices 창에서 다음을 수행합니다.
    1. Phone and Tablet이 선택되어 있는지 확인합니다.
    2. Minimum SDK 목록에서 Include Android Instant App support를 선택합니다. Next를 클릭합니다.
  4. Customize Instant App Support 창에서 기본 설정을 그대로 둡니다. Next를 클릭합니다.
  5. Add an Activity to Mobile 창에서 Empty Activity를 선택합니다. Next를 클릭합니다.
  6. Configure Activity 창에서 다음을 수행합니다.
    • Instant App URL Host 상자에 'myfirstinstantapp.example.com'(따옴표 없이)을 입력합니다.
    • Instant App URL route 상자에 '/hello'(따옴표 없이)를 입력합니다.
    • 다른 설정의 기본값을 유지합니다.
    • Finish를 클릭합니다.

Android 스튜디오에서 새 프로젝트 파일이 빌드되어 로드됩니다.

기존 앱 모듈화하기

이 섹션에서는 기존 모놀리식 앱을 모듈화된 앱으로 변환하는 방법과 새로 모듈화한 앱에 인스턴트 지원 기능을 추가하는 방법을 설명합니다.

기본 기능 모듈과 APK 모듈 만들기

인스턴트 앱을 만들려면 먼저 다음 모듈을 만들어야 합니다.

  • 기본 기능 모듈: 만드는 모든 인스턴트 앱에 번들로 포함되는 기능 모듈입니다. 인스턴트 앱 환경과 최초 설치한 앱 환경을 모두 포함하는 Android App Bundle의 기본 모듈과는 다릅니다.
  • 최소 모듈: 앱의 APK 파일을 빌드하는 데 꼭 필요한 공유 코드만 포함합니다.

위 프로세스를 완료하면 앱의 빌드 프로세스가 앱의 로직에서 분리되어 로직 기반 모듈의 일부를 인스턴트 앱으로 변환하는 것이 가능해집니다.

앱을 기본 기능 모듈로 지정하기

앱을 만들면 'app'이라는 모듈이 자동으로 포함됩니다. 이 섹션에서는 기본 기능 모듈의 일부로 앱의 로직을 선언하는 방법을 설명합니다.

앱의 로직을 기본 기능 모듈로 이동하려면 다음 단계를 따르세요.

  1. 모듈 이름을 예를 들어 base로 바꿉니다.
  2. 새로 이름을 지정한 모듈을 참조하도록 앱 리소스의 import 문을 업데이트합니다.
  3. 모듈의 base/build.gradle 파일을 열고 다음과 같이 변경하여 모듈을 기능 모듈로 지정합니다.

    base/build.gradle

        // Replace
        // apply plugin: 'com.android.application'
        // with
        apply plugin: 'com.android.feature'
  4. 이 모듈은 앱의 기본 기능 모듈을 나타내므로, baseFeature 플래그를 true로 설정하여 기본 기능 모듈임을 표시합니다.

    base/build.gradle

        android {
            ...
            baseFeature true
            ...
        }

    참고: 앱에 기능 모듈이 하나만 있는 경우 앱을 기본 기능 모듈로 지정해야 합니다.

최소 APK 모듈 만들기

기본 기능 모듈을 만드는 것 외에 최소 모듈도 만들어야 합니다. 이 모듈에는 앱의 APK 파일을 빌드하는 데 필수적인 공유 코드를 포함합니다.

최소 모듈을 만들려면 다음 단계를 완료하세요.

  1. File > New > New Module...을 선택합니다.
  2. Create New Module 대화상자가 나타나면 Phone & Tablet Module을 선택합니다. Next를 클릭합니다.
  3. Phone & Tablet Module 창에서 모듈 이름과 패키지 이름을 선택합니다. 이 가이드에서는 모듈 이름으로 apk를 사용합니다.

    Next를 클릭합니다.

  4. Add an Activity to Mobile 창에서 Add No Activity를 선택합니다. Finish를 클릭합니다.

Android 스튜디오에서 최소 모듈 만들기가 완료되고 만든 모듈이 프로젝트 창에 로드됩니다.

최소 모듈과 기능 모듈 연결하기

기능 모듈을 만들었지만 앱의 최소 모듈과 연결하지 않는다면 Android 스튜디오에서 앱의 APK 파일에 기능 모듈이 포함되지 않습니다. 연결하려면 다음 단계를 완료하세요.

  1. com.android.application을 선언하는 Gradle 모듈에서 항상 애플리케이션 ID를 선언해야 하므로 기능 모듈의 applicationID 줄을 최소 모듈로 이동합니다.

    그러려면 다음 코드 스니펫의 안내를 따릅니다.

    base/build.gradle

        android {
           defaultConfig {
               // Remove this line
               // applicationId "com.mycompany.example"
               ...
           }
           ...
        }
    
        dependencies {
              // Add this line to declare this module's dependency
              // on the minimal module
              application project(":apk")
        }

    apk/build.gradle

        android {
            ...
            defaultConfig {
                // replace
                // applicationId "com.mycompany.example.apk"
                // with
                applicationId "com.mycompany.example"
                ...
            }
            ...
        }
  2. 최소 모듈은 앱의 각 기능 모듈에 종속되어야 합니다. 그러려면 다음 코드 스니펫과 같이 컴파일 종속성을 업데이트합니다.

    apk/build.gradle

        dependencies {
            implementation project(':base')
            // If your app contains feature modules other than the base feature module,
            // add dependency lines that are similar to the following:
            // implementation project(':feature1')
            // implementation project(':feature2')
        }
  3. 기본 기능 모듈에서 다음 내용이 포함되도록 AndroidManifest.xml 파일을 업데이트합니다.

    base/src/main/AndroidManifest.xml

        <manifest xmlns:android="http://schemas.android.com/apk/res/android"
                  xmlns:tools="http://schemas.android.com/tools"
                  package="com.mycompany.example">
        ...
        </manifest>
  4. 앱의 manifest 파일별로 고유한 패키지를 참조해야 하므로, APK의 AndroidManifest.xml에서 다음과 같이 이름을 업데이트합니다.

    apk/src/main/AndroidManifest.xml

        <manifest xmlns:android="http://schemas.android.com/apk/res/android"
                  package="com.mycompany.example.app">
        </manifest>

Google Play 인스턴트용 추가 기능 모듈 만들기

기능 모듈이 있으면 앱을 더 쉽게 업데이트할 수 있습니다. 뿐만 아니라 개발자는 사용자가 앱을 설치할 필요 없이 링크를 클릭하여 특정 기능 모듈 내의 기능에 액세스할 수 있도록 하는 인스턴트 앱을 더 간편하게 만들 수 있습니다.

기능 모듈을 처음부터 만드는 경우 Google Play 인스턴트용 기능을 즉시 추가할 수 있습니다.

Google Play 인스턴트용 새 기능 모듈을 만들려면 다음 단계를 완료하세요.

  1. Android 스튜디오에서 File > New > New Module...을 선택합니다.
  2. Create New Module 창이 나타나면 Instant App을 선택하고 Next를 클릭합니다.
  3. 새 기능 모듈의 이름을 지정합니다. 이 가이드에서는 이름을 'instant'로 지정합니다. Finish를 클릭합니다.

Android 스튜디오에서 새 인스턴트 앱 기능 모듈 만들기와 로드가 완료됩니다.

기본 기능 모듈 종속성 확인하기

기능 모듈이 앱의 기본 기능 모듈 종속성을 포함하는지 확인합니다.

instant/build.gradle

dependencies {
        implementation project(':base')
    }
    

'사용해 보기' 기능 사용 설정하기

그림 1. 인스턴트 앱에 표시된 '사용해 보기' 버튼

Google Play 인스턴트에서 개발자는 사용자에게 URL을 클릭하게 하지 않고 인스턴트 앱을 제공할 수 있습니다. '사용해 보기'라는 이 경험은 그림 1과 같이 Play 스토어에서 사용할 수 있습니다.

앱에서 이 기능을 제공하려면 두 가지 옵션이 있습니다.

  1. 기본 활동을 '사용해 보기' 경험의 진입점으로 그대로 둡니다.
  2. 활동에 URL을 추가하고 기본 URL을 선언합니다. 그러면 이 활동이 '사용해 보기' 경험의 진입점이 됩니다.
기본 활동 사용하기

다음 인텐트 필터가 포함된 활동이 진입점이 됩니다.

<activity android:name="com.example...MainActivity" ... >
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>
    
기본 URL 만들기

인스턴트 앱의 URL 액세스를 제공하는 경우에는 기본 URL을 포함해야 합니다. 이 URL은 사용자가 Google Play 스토어에서 사용해 보기를 클릭하거나 인스턴트 앱을 런처에 고정하면 호출되는 URL입니다. 일반적으로 기본 URL은 앱의 기본 기능 모듈에 있는 기본 활동에 해당합니다.

기본 URL을 추가하려면 다음 코드 스니펫과 같이 앱의 기본 활동이 포함된 앱 모듈에 <meta-data> 속성을 포함합니다.

base/manifests/AndroidManifest.xml

<activity android:name="com.example.base.MainActivity" ... >
        <meta-data android:name="default-url"
                   android:value="https://example.com/welcome" />
    </activity>
    

인스턴트 앱의 URL 액세스 제공하기

사용자가 Play 스토어 외부에서(예: 앱의 웹사이트에 있는 배너에서) 인스턴트 앱을 열 수 있도록 하려면 다음 작업 중 하나를 완료하세요.

  • Launch API를 사용합니다.

    https://play.google.com/store/apps/details?id=package_name&launch=true
  • 앱에 앱 링크를 추가합니다. 각 앱 링크는 개발자가 소유한 특정 URL이며, 앱 링크를 클릭하면 인스턴트 앱의 특정 활동이 로드됩니다.

도메인과 앱 연결하기

URL Mapping Editor를 사용하면 인스턴트 앱의 진입점 역할을 할 각 활동과 앱 링크를 연결할 수 있습니다. 자세한 내용은 Android 앱 링크 확인하기를 참고하세요.

사용자가 링크를 클릭하면 시작되는 기능 모듈의 manifest 파일에 앱 링크가 표시되는지 확인합니다. 다음 예에서는 기능 모듈의 앱 링크가 'survey'라는 이름으로 포함되어 있습니다.

survey/manifests/AndroidManifest.xml

<activity android:name="com.example.survey_module.SurveyActivity" ... >
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data
                android:scheme="http"
                android:host="example.com"
                android:pathPrefix="/survey" />
        </intent-filter>
    </activity>
    

위의 단계를 완료한 후에 브라우저가 인스턴트 앱 대신 URL을 로드하는 경우에는 다음 명령어를 실행하여 DevMan 데이터베이스를 지워 보세요.

$ adb shell pm clear com.google.android.instantapps.devman
    

사용자를 직접 인스턴트 앱으로 보내기

사용자가 앱 링크를 클릭할 때 사용자를 직접 인스턴트 앱으로 보낼 수 있습니다. 그러려면 다음 단계에 따라 앱 링크 확인을 제공하세요.

  1. 인스턴트 앱과 웹사이트의 연결을 선언합니다.
  2. <intent-filter> 요소에 앱 링크에 해당하는 자동 확인 기능을 추가합니다.

    survey/manifests/AndroidManifest.xml

        <activity android:name="com.example.survey.SurveyActivity" ... >
             <intent-filter android:autoVerify="true">
                 ...
             </intent-filter>
        </activity>

인스턴트 앱의 앱 링크를 만들었다면 다음 중 한 가지 방법으로 다른 기능 모듈을 로드할 수 있습니다.

  • 이 기능 모듈과 연결된 URL을 로드하는 인텐트를 호출합니다.
  • Play Core 라이브러리를 사용합니다.

인스턴트 앱 실행하기

Android 5.1(API 레벨 21) 이상을 실행하는 대부분의 기기에 인스턴트 앱을 배포할 수 있습니다. 테스트 기기가 없다면 다음 섹션을 읽고 인스턴트 앱을 실행하기 위해 에뮬레이터를 설정할 수 있는 방법을 알아보세요.

Android 스튜디오에서 프로젝트를 실행하려면 다음을 따르세요.

  1. View > Tool Windows > Project를 클릭한 후 Run > Run 'instantapp'을 선택하여 Project 창을 엽니다.
  2. Select Deployment Target 창에서 앱을 실행할 타겟 기기를 선택합니다.

Android 스튜디오에서 앱이 빌드된 후에 테스트 기기나 에뮬레이터에 설치됩니다.

인스턴트 앱을 지원하는 에뮬레이터 설정하기

인스턴트 앱을 실행하도록 에뮬레이터를 설정하려면 다음 단계를 완료하세요.

  1. Android Virtual Device를 만듭니다. 인스턴트 앱과 관련된 최신 기능을 모두 사용하려면 Android 8.1(API 레벨 27) 이상을 실행하도록 기기를 구성하고, x86 아키텍처를 사용하고, Google API를 포합합니다.

  2. 에뮬레이터를 시작하고 테스트 Google 계정에 로그인합니다.

  3. 시스템의 설정 메뉴에서 Google > Instant Apps로 이동하고 Android 인스턴트 앱을 선택합니다.

게시용으로 인스턴트 앱 배포하기

인스턴트 앱을 게시하기 위해 준비하려면 다음 단계를 완료하세요.

  1. Android 스튜디오에서 Build > Generate Signed APK...를 선택합니다.
  2. Generate Signed APK 창에서 instantapp 모듈을 선택합니다. Next를 클릭합니다.
  3. 인스턴트 앱 배포하기 도움말의 설명대로 단계를 완료합니다.
  4. Google Play Console로 이동하여 버전 준비 및 출시하기 도움말의 설명대로 워크플로를 완료합니다. 인스턴트 앱 APK를 업로드해야 합니다.

Google Play Console에서 앱을 준비하고 출시하는 방법을 자세히 알아보려면 APK에 서명하기를 참고하세요.

추가 리소스

다음과 같은 추가 리소스에서 Google Play 인스턴트를 자세히 알아보세요.

Codelab: 첫 번째 인스턴트 앱 빌드하기
기존 앱에 Google Play 인스턴트 지원을 추가하세요.
Codelab: 다기능 인스턴트 앱 구축하기
다기능 앱을 모듈화하세요.