nextcloud / ocsms

📱 Nextcloud/ownCloud PhoneSync server application
https://play.google.com/store/apps/details?id=fr.unix_experience.owncloud_sms
GNU Affero General Public License v3.0
189 stars 52 forks source link

Discussion: Remove Twemoji #326

Open earboxer opened 3 years ago

earboxer commented 3 years ago

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:

toolstack commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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.