Android O(8.0)에서 등장한 Adaptive Icon에 자동으로 환경별 라벨 지정

소개



이번에는 ↓ 이런 환경별 라벨 부착을 Android8에서 등장한 Adaptive Icon에서도 자동 생성하여 즐기자! 라는 이야기입니다. 


그건 그렇고, Adaptive Icon은 이런 녀석입니다.


여러분은 앱을 여러 환경 준비할 때 앱 아이콘, 어떻게 되나요?
dev, stg, debug 등의 환경 마다 색을 바꾸거나, 라벨을 붙이거나, gradle-android-ribbonizer-plugin (을)를 사용하거나.
ribbonizer-plugin 사용하는 것이 많다고 생각합니다만, Adaptive Icon에 대응하고 있지 않기 때문에 상기와 같은 라벨을 붙일 수 없습니다.

하지만 Adaptive Icon에서도 즐기고 싶다…
그렇다고 해서, 대응하고 있지 않다면 라이브러리를 만들어 버릴까, 조사하고 있는 동안에 Adaptive Icon에 대응한 라이브러리를 발견했으므로 그 소개입니다.

easylauncher-gradle-plugin



easylauncher-gradle-plugin은 Adaptive Icon을 지원하며, 처음 소개한 이미지처럼 라벨을 붙일 수 있습니다.
게다가 ribbonizer-plugin보다 설정이 간단합니다.

설정 방법



build.gradle
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.akaita.android:easylauncher:1.3.1'
    }
}
  • android 블록 내에서 정의한 buildTypes, productFlavors 등의 블록을 easylauncher 블록 내에 기술하고, 라벨을 붙이고 싶은 환경에 filters = grayRibbonFilter()를 추기합니다. redRibbonFilter("pro") 와 같이 임의 문자열의 라벨을 붙일 수도 있고, 생략하면 블록의 환경명이 자동적으로 부여됩니다.

  • app/build.gradle
    apply plugin: 'com.akaita.android.easylauncher'
    
    // 略
    
    android {
    // 略
        buildTypes {
    
            debug {
                debuggable true
                applicationIdSuffix = '.debug'
                versionNameSuffix = 'd'
                signingConfig signingConfigs.debug
            }
            release {
                debuggable false
                minifyEnabled false
                signingConfig signingConfigs.release
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    productFlavors {
            dev {
                applicationIdSuffix = '.dev'
            }
            stg {
                applicationIdSuffix = '.stg'
            }
            pro {
    
            }
        }
    
    }
    
    easylauncher {
        // "manifest application[android:icon]" is automatically added to the list
        iconNames "@mipmap/ic_launcher_foreground" // Traditional launcher icon
        foregroundIconNames "@mipmap/ic_launcher_foreground" // Foreground of adaptive launcher icon
    
        defaultFlavorNaming = true // Use flavor name for default ribbon, instead of the type name
    
        buildTypes {
            debug {}
            release {}
        }
    
        productFlavors {
            dev {
                // こうすることでグレー色のラベルdevが生成される
                filters = grayRibbonFilter()
            }
            stg {
                filters = greenRibbonFilter()
            }
            pro {}
        }
    
        variants {
            proDebug {
                // proReleaseにラベルを付けたくない場合はここでdebugのときのみ設定
                filters = redRibbonFilter("pro")
            }
        }
    }
    

    설정은 이상! 여기까지 할 수 있으면 build 하는 것으로 아이콘이 자동 생성됩니다. 이 설정으로 생성된 아이콘이 이쪽↓. 커스터마이즈성 높고, 그 밖에도 이미지를 오버레이 하거나, 사이즈 바꾸거나 여러가지 할 수 있습니다. 신경이 쓰이는 분은 작자님의 페이지를 봐 주세요.


    마지막으로



    Adaptive Icon을 활용하고 있는 앱, 별로 본 적은 없습니다만 어떻습니까? 의식해 보면 의외로 대응하고 있었습니다.
    하지만 일단이 라이브러리 덕분에 계속 즐길 수있을 것 같습니다. 저자 akaita, FUJI Goro에게 감사

    좋은 웹페이지 즐겨찾기