Тёмная сторона эмодзи или почему в сообщениях dtf нет смайлов

Low quality meme
Low quality meme

Проблема 1. Эмодзи разные

На устройствах любой символ можно представить в виде числового кода, будь то буква A или 🥹. Таким образом в каждой из OS (то есть Windows, Linux и т.д.) есть свой набор шрифтов и эмодзи в их числе.

Поскольку в глазах дизайнеров позволять каждой OS использовать свои шрифты это кощунство, в современной разработке почти каждый сайт включает в себя файлы с необходимыми для его работы шрифтами.

Проблема 2. Эмодзи большие

Окей, мы добавили файл со шрифтами на свой сайт, но получится ли также с эмодзи? В отличие от обычных букв изображение нельзя так просто масштабировать без потери качества.

Тут к нам на помощь приходит векторная графика, о сжатии которой раньше и не думали. Это не проблема, когда они предустановлены в операционной системе, но в вебе такое не внедришь. Можете представить, что с загрузкой каждого сайта вам придётся дополнительно грузить 20мбайт смайликов? Позже выходили разные форматы шрифтов поддерживающие эмодзи, но не обрели большую популярность по тем или иным причинам.

Наконец, в 2022 году выходят релизы Chrome и Firefox, которые поддерживают стандарт COLRv1, позволяющий делать красивую векторную графику с градиентами и при этом хранить её достаточно компактно. Но и тут не обошлось без проблем - ей оказалась Apple. Они выкатили список претензий, большинство из которых позже были исправлены, но позиция компании так и не изменилась.

Тёмная сторона эмодзи или почему в сообщениях dtf нет смайлов

Проблема 3. С эмодзи сложно

Что у нас получается, встроенные эмодзи использовать зашквар, шрифт подключать дорого, как же выкручиваются?

Реализация очевидная, но довольно непростая - все видимые эмодзи заменяются на картинки. Процесс примерно такой:

  • Пользователь набирает текст, в поле ввода отслеживается каждый символ и сразу заменяется на картинку, если попался эмодзи символ
  • После того как текст сохраняется, картинка отправляется на сервер уже в качестве символа или тега
  • Когда приходит время отобразить текст, символы эмодзи снова заменяются на картинки

Кроме этого, нужно реализовать еще клавиатуру эмодзи, а она огромная - больше двух тысяч, браузер может просто зависнуть пытаясь загрузить их все. Тут приходится выкручиваться подгружая только те, которые в видимой части клавиатуры. Как видите, нюансов немало, так что полностью понимаем разрабов дтф.

Автор, когда все-таки решил в этом покопаться
2
1
10 комментариев