[Android] 기존 앱에 Firebase를 넣었을 때 빠져들었던 이야기.

[Android] 30분 설치 푸시 알림 Firebase 도입의 간단함과 편리함에 감사드립니다. 곧 본사응용 프로그램도 도입되었습니다.
그러나 기존 앱에 편입돼 발표 전 동작을 확인할 때 예상 밖의 문제가 발생해 빠져서 남았다.
Firebase Analytics 및 Notification 기능을 사용하려고 합니다.
(동작 확인은 기본적으로 Nexus5의 6.0.1로 수행됨)

기존play-services 라이브러리와 충돌


결론

  • play-services 라이브러리를 구글 서비스 플러그인으로 교체
  • Firebase Get Started에 적어주세요.

    문제점 및 해결 방법


    문제점


    기존 응용 프로그램에서play-services를 사용할 때 "Get Started"와 같이 라이브러리와 플러그인을 직접 추가하면 ANR이 발생합니다.
    ※ 어플리케이션이 시작되면 홈 화면으로 다시 어플리케이션으로 돌아갈 때 ANR이 발생하기 때문에 주의하기 어렵습니다...
    라이브러리 충돌.

    해결 방법


    이미 구글 Analytics 등을 사용해 "Get Started"에 따라 가져오면 다음과 같다.
    app/build.gradle (대응 전)
    
    dependencies {
        // 略
    
        // google play service
        compile 'com.google.android.gms:play-services:9.0.2'
        compile 'com.google.android.gms:play-services-base:9.0.2'
        compile 'com.google.android.gms:play-services-gcm:9.0.2'
    
        // ADD Firebase
        compile 'com.google.firebase:firebase-core:9.0.2'
        compile 'com.google.firebase:firebase-messaging:9.0.2'
        compile 'com.google.firebase:firebase-crash:9.0.2'
    }
    
    apply plugin: 'com.google.gms.google-services'
    
    play-services를 삭제한 후play-service-analytics를 추가하면 됩니다.(Analytics를 사용하지 않는 경우 추가 필요 없음)
    app/build.지원 후
    
    dependencies {
        // 略
    
        // google play service
        compile 'com.google.android.gms:play-services-base:9.0.2'
        compile 'com.google.android.gms:play-services-gcm:9.0.2'
        compile 'com.google.android.gms:play-services-analytics:9.0.2'
    
        // ADD Firebase
        compile 'com.google.firebase:firebase-core:9.0.2'
        compile 'com.google.firebase:firebase-messaging:9.0.2'
        compile 'com.google.firebase:firebase-crash:9.0.2'
    }
    
    apply plugin: 'com.google.gms.google-services'
    

    공지 아이콘을 사용자 정의할 수 없습니다.


    결론

  • 간단하고 윤곽만으로 판별할 수 있는 아이콘으로 만들기
  • 문제점 및 해결 방법


    문제점


    9.0.2 현재 상황은 Firebase Notification에서 응용 프로그램이 백그라운드에 나타날 때공지 아이콘을 사용자 정의할 수 없습니다..
    사용하는 아이콘은 응용 프로그램의 Launcher 아이콘이지만 Notification용 아이콘으로 변경할 수 없습니다.
    그리고 아이콘 이미지는 smallIcon에 설정된 규격인 것 같아서 안드로이드 단말기 버전에 따라 아이콘을 판별할 수 없습니다.
    (수중에 4.x와 6개의 단말기만 있고 5.0 이상의 단말기는 판별할 수 없습니까?)
    따라서 흔히 볼 수 있는 원각 사각형 아이콘에 서비스 이름 등이 적힌 아이콘이라면 전혀 판별할 수 없다.

    앞뒤의 외관에 대응하다


    둥근 모서리의 사각형 아이콘 (빨간색 테두리 밖 투과) 을 사용했지만 다음과 같이 어떤 응용 프로그램이 알렸는지 전혀 알 수 없습니다...

    배경 투사 윤곽만 아는 아이콘으로 만들면

    왠지 어떤 앱에서 알림이 왔는지 알 것 같아.

    Launcher 아이콘 예


    예를 들어 아래 화면은 두 번째 단락의 Launcher 아이콘이라면 판별할 수 있지만 그 외에 어느 프로그램의 알림인지 알 수 없습니다.

    그럼에도 불구하고 Launcher 아이콘을 쉽게 바꿀 수는 없을 것 같아서 Notification 아이콘을 좀 일찍 사용자 정의했으면 좋겠어요...

    (사은품) Google Play 서비스를 Firebase APIs에 전송하는 동작


    Google APIs for Android, 다음과 같은 기록이 있다.
    ・App Invites (now Firebase Invites) is still available at com.google.android.gms.appinvite, but going forward you should use com.google.firebase:firebase-invites.
    
    ・Firebase Cloud Messaging builds on and improves the Google Cloud Messaging API. You can keep using Google Cloud Messaging with com.google.android.gms.gcm, but we recommend upgrading to com.google.firebase:firebase-messaging.
    
    초의역은 다음과 같다.
  • App Invitescom.google.firebase:firebase-invites를 사용하려면 를 사용하십시오.com.google.android.gms.appinvite 지금은 사용할 수 있지만 사용할 수 없는지도 모른다.
  • Firebase Cloud Messaging>Google Cloud Messaging API.com.google.android.gms.gcm도 사용할 수 있지만 com.google.firebase Firebase Cloud Messaging으로 옮기는 것을 추천합니다.
  • 이에 따라 구글은 I/O 2016에서 Firebase와의 대화를 바탕으로 다양한 기능을 Firebase로 이전할 계획인 것으로 보인다.
    구글 교도들은 이 시기에 Firebase를 도입하는 것이 어떤지 고려해 보려고 한다.
    기념책

    좋은 웹페이지 즐겨찾기