Skip to content
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

Discussion: Remove Twemoji #326

Open
earboxer opened this issue Oct 29, 2020 · 3 comments
Open

Discussion: Remove Twemoji #326

earboxer opened this issue Oct 29, 2020 · 3 comments

Comments

@earboxer
Copy link

Phone Sync (ocsms) is a fairly simple tool for synchronizing SMS. That being said, I was surprised to see it's 58 MiB large, the largest app I have installed on my Nextcloud server. The twemoji dependency is currently over half of that. Due to how Nextcloud keeps the 3 latest backups, this is a few hundred megabytes on my server that I can't use for other things.

Unicode is a standard which is supported by all major operating systems. Emoji distribution should be done on a system level (e.g. apt install noto-color-emoji, pamac install ttf-twemoji, apk add font-noto-emoji), and people may prefer their system emoji to having each application specify their own emojis. Twemoji support in Phone Sync is only helpful for the people running outdated operating systems, which is decreasing every year.

Unicode grows every year, putting a maintenance burden on this project if it includes Twemoji: every year, it needs to be updated to include the latest Twemoji (this also doesn't bode well for disk usage).

For these reasons, I think it would be best to remove Twemoji from this app.

@toolstack @nerzhul

Alternate solutions to this issue:

  • Clean up unneeded files for a minimal Twemoji install
  • Use externally loaded Twemoji (we don't like this option because of privacy reasons).
@toolstack
Copy link
Contributor

toolstack commented Oct 29, 2020

Last time I checked, which was a while ago, a lot of browsers still had issues with displaying emoji correctly. Many still display simple black and white emoji instead of full colour ones.

As such, I'd be against this.

Not to discount your concern, but if 200 meg is the breaking point for your sever, it might be time to look at other things before this ;)

Since almost all of the Twemoji size is in the images, there's not much you can do to optimise it and as you mentioned, externally loading it is not desirable.

@earboxer
Copy link
Author

Yeah, SVG in OpenType fonts are currently not displayed in color by links -g, chromium, midori or servo.

(My server is a virtual machine (in the cloud) with a limited amount of storage for (roughly) one user; I just want an additional 200 megs of storage space... easy to achieve I guess just by removing this app, but you're right, maybe I should be focusing my concern on nextcloud core which keeps three backups... one or two would be fine IMO).

But that being said, there is some optimization that can be made to this app. Like the large unused patch file, or having all emoji as both SVG and PNG, and perhaps some of the vendored phone number locality naming code. Given the functionality of this app, it should not be nearly as large as it is right now.

@e-alfred
Copy link
Collaborator

e-alfred commented Nov 2, 2020

There are other apps that have a similar size nowadays (like for example the Maps app or the OCR app) and Nextcloud increased the Curl timeouts specifically for that as an example of accepting the fact that some apps have a certain size. Hosting elsewhere is obviously out of the question because Nextcloud is about hosting on your OWN server, having 3rd party dependencies that allow others to track you and might have availability issues is not a good idea in that regard.

As others have said, compatibility issues still remain and therefore giving up a working solution to UX/UI problems for a few megabytes is not a solution at all. If you can help us optimize the app size without compromising the usability, any contribution to that is welcome as there is surely much room for improvement.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants