Pro Yearly is on sale from $80 to $50! »

苦戦!リモートプッシュ通知の実装 / remote_push_notification_android

42a6a049ac8f5265f31858a9509217fb?s=47 uhooi
October 28, 2020

苦戦!リモートプッシュ通知の実装 / remote_push_notification_android

集まれKotlin好き!Kotlin愛好会 vol.25 @オンライン
https://love-kotlin.connpass.com/event/192472/

## 参考リンク

### ウホーイ図鑑(Android)

- Google Play
https://play.google.com/store/apps/details?id=com.theuhooi.uhooipicbook&hl=ja

- リポジトリ
https://github.com/uhooi/UhooiPicBook-Android

- リモートプッシュ通知実装のPR
https://github.com/uhooi/UhooiPicBook-Android/pull/57

- リモートプッシュ通知実装のIssue
実装時の参考リンクをまとめている
https://github.com/uhooi/UhooiPicBook-Android/issues/39

- プッシュ通知をバナー表示するコミット
https://github.com/uhooi/UhooiPicBook-Android/pull/57/commits/adc7ac54f992a4645d9908d18ad70cc316291dc7

- アイコンを表示するコミット
https://github.com/uhooi/UhooiPicBook-Android/pull/57/commits/be689158c19091b27d55492e4fd407697ebb0905

- フォアグラウンド時に通知を受け取ってもタイトルとテキストを正しく表示するコミット
https://github.com/uhooi/UhooiPicBook-Android/pull/57/commits/554a5cfd18287529ed28a08b742bea43f56cbf15

42a6a049ac8f5265f31858a9509217fb?s=128

uhooi

October 28, 2020
Tweet

Transcript

  1. 2020.10.28 (Wed) 集まれKotlin好き!Kotlin愛好会 vol.25 @オンライン @the_uhooi 苦戦! の実装 リモートプッシュ通知

  2. iOS app developer ️ Kotlin 愛好会初登壇

  3. オリジナルモンスター図鑑 累計 100 万 DL (予定) / 主要画面数: 2

  4. お知らせ機能を追加しました

  5. 採用したサービス

  6. 採用したサービス Firebase Cloud Messaging (FCM)

  7. リモートプッシュ通知の流れ

  8. リモートプッシュ通知の流れ 【ユーザー】お知らせの通知チャネルを作成する(初回起動時)

  9. リモートプッシュ通知の流れ 【ユーザー】お知らせの通知チャネルを作成する(初回起動時) ↓ 【ウホーイ】Firebase のコンソールから FCM の通知を送る

  10. リモートプッシュ通知の流れ 【ユーザー】お知らせの通知チャネルを作成する(初回起動時) ↓ 【ウホーイ】Firebase のコンソールから FCM の通知を送る ↓ 【ユーザー】プッシュ通知を受け取る

  11. 実装の詳細 https://github.com/uhooi/UhooiPicBook-Android/pull/57

  12. 苦戦したこと①: 通知チャネルの概念がわからない

  13. 「通知チャネル」とは?

  14. 「通知チャネル」とは? ・ざっくりいうと「通知の種類」のこと

  15. 「通知チャネル」とは? ・ざっくりいうと「通知の種類」のこと ・Android 8.0 で追加された機能

  16. 「通知チャネル」とは? ・ざっくりいうと「通知の種類」のこと ・Android 8.0 で追加された機能
 ・通知の送信前にチャネルを作成する必要がある

  17. 苦戦したこと②: バナー表示されない

  18. importance を HIGH にするとバナー表示される

  19. 苦戦したこと③: アイコンが黒い丸になる

  20. アイコンをモノクロかつ背景を透過にして解決

  21. でも YouTube はカラー…

  22. 苦戦したこと④: FG で受け取ると null になる

  23. ただの実装漏れw

  24. ただの実装漏れw FCM から受け取った通知をもとに、プッシュ通知を 構築して送付する処理を実装する必要があった

  25. ただの実装漏れw FCM から受け取った通知をもとに、プッシュ通知を 構築して送付する処理を実装する必要があった BG で通知を受け取ると、 FCM で設定したタイトルとテキストがそのまま表示される

  26. コードを修正して解決

  27. 苦戦したこと⑤: バイブしない .setDefaults(Notification.DEFAULT_SOUND or Notification.DEFAULT_VIBRATE)

  28. 権限とバイブ時間の指定が必要

  29. 権限とバイブ時間の指定が必要 <uses-permission android:name="android.permission.VIBRATE" />

  30. 権限とバイブ時間の指定が必要 <uses-permission android:name="android.permission.VIBRATE" /> .setVibrate(longArrayOf(0, 1000, 500, 1000))

  31. わからないこと①: 謎のフラグ

  32. わからないこと②: チャネル関連定数の定義場所

  33. まとめ

  34. まとめ ・FCM を使えば無料でリモートプッシュ通知を実現できる

  35. まとめ ・FCM を使えば無料でリモートプッシュ通知を実現できる ・実装は難しいが、公式ドキュメントが充実している

  36. まとめ ・FCM を使えば無料でリモートプッシュ通知を実現できる ・実装は難しいが、公式ドキュメントが充実している ・アドバイスやレビューありがとうございました m(_ _)m