LeoAndo / development-conference-memo

0 stars 0 forks source link

Android Emoji 2021 (Seigo Nonaka) #23

Open LeoAndo opened 2 years ago

LeoAndo commented 2 years ago

https://youtu.be/RKAEoQy3l7A?t=13118

LeoAndo commented 2 years ago

Androidで使えるのは Unicode Emoji Unicode Emojiの種類は、「Single Code Point」、複数のcodeからなる「Sequence」と呼ばれる絵文字も提供されている

https://youtu.be/RKAEoQy3l7A?t=13372

LeoAndo commented 2 years ago

Android Emoji Fragmentation

Androidシステムが、絵文字を表示できない時、「Single Code Point」では豆腐状態になる 「Sequence」では、絵文字が独立されて表示される

OSバージョン違いによる文字化け問題 https://youtu.be/RKAEoQy3l7A?t=13661 https://youtu.be/RKAEoQy3l7A?t=13843

LeoAndo commented 2 years ago

絵文字文字化け問題の対策

https://github.com/LeoAndo/droidkaigi2021-memo/issues/23#issuecomment-950971817 の文字化け問題の対策をここにまとめます。

Android 12の場合

System FontにUpdateが入ったら、Google Play Service経由でフォントをダウンロードすることが可能で、アプリは何もしなくても新しいフォントが使えるようになる。 https://youtu.be/RKAEoQy3l7A?t=14008

Andorid 11まで

EmojiCompatの処理 https://youtu.be/RKAEoQy3l7A?t=14182

LeoAndo commented 2 years ago

EmojiCompat 1.4がリリースされた

https://youtu.be/RKAEoQy3l7A?t=14198

1.4から、JetpackのAppCompatを使っていれば、EmojiCompatを使う必要がなくなった androidx.emoji2:emoji2ライブラリを導入してAppCompatTextViewを使用すれば絵文字対応が可能!

https://youtu.be/RKAEoQy3l7A?t=14218 https://developer.android.com/guide/topics/ui/look-and-feel/emoji-compat?hl=ja https://developer.android.com/jetpack/androidx/releases/emoji2?hl=ja

LeoAndo commented 2 years ago

layout XMLでTextViewを使うとLayoutInflaterで自動にAppCompatTextViewに変換するらしい。

AppCompatActivityを使用していれば、AppCompatViewInflaterが内部で呼ばれ、AppCompatTextViewに自動変換される動き??

https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:appcompat/appcompat/src/main/java/androidx/appcompat/app/AppCompatViewInflater.java;l=73?q=AppCompatViewInflater&ss=androidx%2Fplatform%2Fframeworks%2Fsupport&hl=ja&start=1