Skip to content

Try bundling an emoji font #404

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
gnprice opened this issue Nov 21, 2023 · 4 comments · Fixed by #436
Closed

Try bundling an emoji font #404

gnprice opened this issue Nov 21, 2023 · 4 comments · Fixed by #436
Labels
a-design Visual and UX design

Comments

@gnprice
Copy link
Member

gnprice commented Nov 21, 2023

Since #403, we don't bundle a font for emoji; instead we rely on the system fonts for showing Unicode emoji. This has advantages but also disadvantages:

The reason that since #403 we don't bundle a font is that we haven't found a good emoji font that works in Flutter on iOS, and although the one we were shipping seems to largely work on Android it's not clear it always does. Specifically there's this upstream issue:

and the symptom when it doesn't work is that using the font produces a blank space, even when the system font would have handled the emoji just fine.

If that upstream issue gets fixed, then we should be able to just resume shipping Noto Color Emoji in its COLRv1 form.

@chrisbobbe
Copy link
Collaborator

We learned at flutter/flutter#134897 (comment) that COLRv1 fonts aren't supported on any version of iOS. I think that means Noto Color Emoji just isn't usable on iOS.

So when we go back to bundling Noto Color Emoji, we should do so on Android only. That'll need

or perhaps

; I'm not really sure what the difference is. (That latter issue has a PR that's being actively worked on.)

@gnprice
Copy link
Member Author

gnprice commented Nov 27, 2023

I'm not really sure what the difference is.

Yeah, I'm not either. I left a comment flutter/flutter#96514 (comment) on the less-trafficked issue asking for clarification on how it differs.

@gnprice
Copy link
Member Author

gnprice commented Nov 27, 2023

Even after that PR lands, it might still be somewhat annoying to have the asset just on one platform, because it looks like it doesn't directly support selecting by platform. It would make it possible to do so but only through a workaround: define a "flavor" to control including the font, and then use the no-emoji-font flavor when building releases for iOS.

An alternate solution would be to ship the font unconditionally, but only invoke it on Android; so it'd be in the iOS app bundle but wouldn't get used. I think that'd be fine through the beta period.

(This issue is currently milestoned post-launch, but given what we've discovered in trying to lay out reaction emoji just right — #410 (comment) — we might move it forward.)

chrisbobbe added a commit to chrisbobbe/zulip-flutter that referenced this issue Dec 4, 2023
Downloaded from:
  https://github.com/googlefonts/noto-emoji/tree/d79d23e68/fonts

We removed this in a1da95a, but we want to add it back now that
we're more confident that it will work on Android. In the time since
a1da95a, we learned that COLRv1 fonts just never work on
iOS/macOS; they aren't supported:
  flutter/flutter#134897 (comment)

So, when trying to explain why this font wasn't working in a test on
my iPhone, it seems less necessary to consider a possible unknown
factor that might affect some Android installs too. It was likely
explained just by the fact that the format doesn't have iOS support.

This fixes zulip#435, where the "Licenses" page was broken because we
forgot to remove its reference to the Noto Color Emoji license that
we removed in a1da95a.

Fixes: zulip#404
Fixes: zulip#435
chrisbobbe added a commit to chrisbobbe/zulip-flutter that referenced this issue Dec 4, 2023
Downloaded from:
  https://github.com/googlefonts/noto-emoji/tree/d79d23e68/fonts

We removed this in a1da95a, but we want to add it back now that
we're more confident that it will work on Android. In the time since
a1da95a, we learned that COLRv1 fonts just never work on
iOS/macOS; they aren't supported:
  flutter/flutter#134897 (comment)

So, when trying to explain why this font wasn't working in a test on
my iPhone, it seems less necessary to consider a possible unknown
factor that might affect some Android installs too. It was likely
explained just by the fact that the format doesn't have iOS support.

This fixes zulip#435, where the "Licenses" page was broken because we
forgot to remove its reference to the Noto Color Emoji license that
we removed in a1da95a.

Fixes: zulip#404
Fixes: zulip#435
@gnprice gnprice closed this as completed in 341f2af Dec 5, 2023
@gnprice
Copy link
Member Author

gnprice commented Dec 6, 2023

We closed this in #436, which bundles Noto Color Emoji again and uses it in part of the app. We've split out a new issue:

for using it in the rest of the app.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a-design Visual and UX design
Projects
Status: Done
2 participants