Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
2020.10.28 (Wed) 集まれKotlin好き!Kotlin愛好会 vol.25 @オンライン @the_uhooi 苦戦! の実装 リモートプッシュ通知
Slide 2
Slide 2 text
iOS app developer ️ Kotlin 愛好会初登壇
Slide 3
Slide 3 text
オリジナルモンスター図鑑 累計 100 万 DL (予定) / 主要画面数: 2
Slide 4
Slide 4 text
お知らせ機能を追加しました
Slide 5
Slide 5 text
採用したサービス
Slide 6
Slide 6 text
採用したサービス Firebase Cloud Messaging (FCM)
Slide 7
Slide 7 text
リモートプッシュ通知の流れ
Slide 8
Slide 8 text
リモートプッシュ通知の流れ 【ユーザー】お知らせの通知チャネルを作成する(初回起動時)
Slide 9
Slide 9 text
リモートプッシュ通知の流れ 【ユーザー】お知らせの通知チャネルを作成する(初回起動時) ↓ 【ウホーイ】Firebase のコンソールから FCM の通知を送る
Slide 10
Slide 10 text
リモートプッシュ通知の流れ 【ユーザー】お知らせの通知チャネルを作成する(初回起動時) ↓ 【ウホーイ】Firebase のコンソールから FCM の通知を送る ↓ 【ユーザー】プッシュ通知を受け取る
Slide 11
Slide 11 text
実装の詳細 https://github.com/uhooi/UhooiPicBook-Android/pull/57
Slide 12
Slide 12 text
苦戦したこと①: 通知チャネルの概念がわからない
Slide 13
Slide 13 text
「通知チャネル」とは?
Slide 14
Slide 14 text
「通知チャネル」とは? ・ざっくりいうと「通知の種類」のこと
Slide 15
Slide 15 text
「通知チャネル」とは? ・ざっくりいうと「通知の種類」のこと ・Android 8.0 で追加された機能
Slide 16
Slide 16 text
「通知チャネル」とは? ・ざっくりいうと「通知の種類」のこと ・Android 8.0 で追加された機能 ・通知の送信前にチャネルを作成する必要がある
Slide 17
Slide 17 text
苦戦したこと②: バナー表示されない
Slide 18
Slide 18 text
importance を HIGH にするとバナー表示される
Slide 19
Slide 19 text
苦戦したこと③: アイコンが黒い丸になる
Slide 20
Slide 20 text
アイコンをモノクロかつ背景を透過にして解決
Slide 21
Slide 21 text
でも YouTube はカラー…
Slide 22
Slide 22 text
苦戦したこと④: FG で受け取ると null になる
Slide 23
Slide 23 text
ただの実装漏れw
Slide 24
Slide 24 text
ただの実装漏れw FCM から受け取った通知をもとに、プッシュ通知を 構築して送付する処理を実装する必要があった
Slide 25
Slide 25 text
ただの実装漏れw FCM から受け取った通知をもとに、プッシュ通知を 構築して送付する処理を実装する必要があった BG で通知を受け取ると、 FCM で設定したタイトルとテキストがそのまま表示される
Slide 26
Slide 26 text
コードを修正して解決
Slide 27
Slide 27 text
苦戦したこと⑤: バイブしない .setDefaults(Notification.DEFAULT_SOUND or Notification.DEFAULT_VIBRATE)
Slide 28
Slide 28 text
権限とバイブ時間の指定が必要
Slide 29
Slide 29 text
権限とバイブ時間の指定が必要
Slide 30
Slide 30 text
権限とバイブ時間の指定が必要 .setVibrate(longArrayOf(0, 1000, 500, 1000))
Slide 31
Slide 31 text
わからないこと①: 謎のフラグ
Slide 32
Slide 32 text
わからないこと②: チャネル関連定数の定義場所
Slide 33
Slide 33 text
まとめ
Slide 34
Slide 34 text
まとめ ・FCM を使えば無料でリモートプッシュ通知を実現できる
Slide 35
Slide 35 text
まとめ ・FCM を使えば無料でリモートプッシュ通知を実現できる ・実装は難しいが、公式ドキュメントが充実している
Slide 36
Slide 36 text
まとめ ・FCM を使えば無料でリモートプッシュ通知を実現できる ・実装は難しいが、公式ドキュメントが充実している ・アドバイスやレビューありがとうございました m(_ _)m