Привет! В прошлом я перепробовал большое количество сервисов для хранения данных, но так и не нашел ни один, который бы меня полностью устраивал. Какие-то были слишком простые и позволяли хранить только закладки или заметки, другие только файлы, третьи были громоздкими и сложными.
Самым удобным вариантом стал личный чат «Избранное» в Telegram, позволяющий хранить всё подряд, причем бесплатно и безлимитно с синхронизацией между всеми устройствами. Но удобство быстро пропадало с увеличением хранимых данных, найти что-то в огромной общей куче становилось всё труднее. Я пробовал и расставлять хештеги в сообщениях, но лень быстро победила, и создавать личные приватные каналы, как советует сам Telegram, но пользоваться ими было всё ещё неудобно, они каждый раз перемешивались, что сильно затрудняло поиск нужного, даже если выделить их в отдельную папку.
В итоге в начале марта этого года я принял решение создать собственное приложение, которое представляет из себя почти полноценный Telegram клиент. «Почти», потому что в нём отображаются только личный чат «Избранное» и личные приватные каналы, разделённые по категориям. В моём приложении и чат, и каналы называются «папками» для сходства с обычным хранилищем.
Изначально отображается только категория «Быстрый доступ» с папкой «Общая папка» — это личный чат «Избранное» в официальном клиенте, эту папку можно скрыть в настройках, если она вам не нужна. Дальше вы можете создать любую собственную папку с любой категорией, в официальном клиенте будет создан личный заархивированный приватный канал. Судя по Telegram API, разрешённое количество создаваемых каналов ограничено каким-то числом, но создав 50 штук, я так и не получил ошибку.
Категория «Быстрый доступ» всегда наверху, остальные категории и папки сортируются в алфавитном порядке.
На данный момент в папках можно хранить заметки (с форматированием), ссылки, чеклисты, фотографии, видео и любые другие документы. Все файлы хранятся в исходном качестве без какого-либо сжатия. Фотографии и видео можно просмотреть прямо в приложении или скачать к себе на устройство.
В официальном клиенте чеклисты представляют из себя обычные сообщения с определенным форматированием.
Любое сообщение можно отредактировать, удалить, скопировать, переместить и расшарить. Также можно расшаривать любые данные в приложение при условии, что оно установлено в Windows 10 из Microsoft Edge, в Android из Chrome, про Safari чуть ниже.
В настройках можно выбрать язык интерфейса (на данный момент русский или английский), а также светлую или тёмную тему (по умолчанию системная).
Единственным условием использования приложения является автоматическая подписка на канал TgStorage, в котором будут публиковаться новости, опросы, объявления, связанные с приложением, а также рекламные посты, как личные, которые будут мотивировать продолжать развивать данное приложения, так и от Telegram, анонсированные ранее Павлом Дуровым для оплаты их серверов.
На данный момент есть два канала, один русскоязычный для России и стран СНГ, другой англоязычный для всего остального мира.
Сервис представляет из себя прогрессивное вэб-приложение (PWA), которое можно использовать как в браузере, так и установить на любое устройство из браузера и пользоваться им как нативным.
Приложение напрямую связывается с серверами Telegram, ваша информация нигде больше не хранится и никуда не передается. Из сторонних сервисов используется Vercel, он забирает код из GitHub и раздает пользователям собранные скрипты и стили. А также Sentry, в который отправляются ошибки без каких-либо личных данных (можно выключить в настройках). Не подключены даже Google или Yandex аналитика. Любой желающий может проверить исходники на GitHub.
Наличие новой версии приложения проверяется при каждом открытии или раз в сутки, если оно не закрывалось. Для обновления будет показано соответствующее уведомление.
Почему PWA?
Microsoft и Google активно развивают данное направление приложений, стирая различия между вэбом и нативом, что позволяет сократить время и расходы на разработку, не теряя в качестве и функциональности, ну и не связываться со сторами. К сожалению, Apple, родоначальник PWA (Стив Джобс анонсировал вэб-приложения на WWDC 2007), в данный момент сильно препятствует этому развитию, особенно в iOS, в котором до сих пор запрещены сторонние движки браузеров (Chrome и Firefox являются тем же Safari с другой оболочкой). Но эта тема для отдельной большой статьи, если вам интересно, можете почитать, как Safari убивает вэб (англ.), прикрываясь безопасностью.
Я старался сделать работу приложения максимально производительной, если у вас что-то тормозит, просьба сообщить мне об этом.
Для рендеринга используется preact (это лёгкая и быстрая альтернатива react’у), API Telegram выполняется в отдельном Web Worker’е, как и блюр превьюшек. Для анимаций используется Web Animations API. Стриминг видео и стриминговое скачивание файлов реализовано через Service Worker. Отображаемые картинки и последние 20 сообщений из каждой папки сохраняются в IndexedDB, база с картинками очищается при закрытии приложения. В ближайшем будущем скорее всего добавится еще и библиотека libde265, сконвертированная из C++ в WebAssembly, чтобы можно было проигрывать iPhone’овские видео на других устройствах.
Адрес приложения:
Самым удобным вариантом стал личный чат «Избранное» в Telegram, позволяющий хранить всё подряд, причем бесплатно и безлимитно с синхронизацией между всеми устройствами. Но удобство быстро пропадало с увеличением хранимых данных, найти что-то в огромной общей куче становилось всё труднее. Я пробовал и расставлять хештеги в сообщениях, но лень быстро победила, и создавать личные приватные каналы, как советует сам Telegram, но пользоваться ими было всё ещё неудобно, они каждый раз перемешивались, что сильно затрудняло поиск нужного, даже если выделить их в отдельную папку.
В итоге в начале марта этого года я принял решение создать собственное приложение, которое представляет из себя почти полноценный Telegram клиент. «Почти», потому что в нём отображаются только личный чат «Избранное» и личные приватные каналы, разделённые по категориям. В моём приложении и чат, и каналы называются «папками» для сходства с обычным хранилищем.
Изначально отображается только категория «Быстрый доступ» с папкой «Общая папка» — это личный чат «Избранное» в официальном клиенте, эту папку можно скрыть в настройках, если она вам не нужна. Дальше вы можете создать любую собственную папку с любой категорией, в официальном клиенте будет создан личный заархивированный приватный канал. Судя по Telegram API, разрешённое количество создаваемых каналов ограничено каким-то числом, но создав 50 штук, я так и не получил ошибку.
Категория «Быстрый доступ» всегда наверху, остальные категории и папки сортируются в алфавитном порядке.
На данный момент в папках можно хранить заметки (с форматированием), ссылки, чеклисты, фотографии, видео и любые другие документы. Все файлы хранятся в исходном качестве без какого-либо сжатия. Фотографии и видео можно просмотреть прямо в приложении или скачать к себе на устройство.
В официальном клиенте чеклисты представляют из себя обычные сообщения с определенным форматированием.
Любое сообщение можно отредактировать, удалить, скопировать, переместить и расшарить. Также можно расшаривать любые данные в приложение при условии, что оно установлено в Windows 10 из Microsoft Edge, в Android из Chrome, про Safari чуть ниже.
В настройках можно выбрать язык интерфейса (на данный момент русский или английский), а также светлую или тёмную тему (по умолчанию системная).
Монетизация
Единственным условием использования приложения является автоматическая подписка на канал TgStorage, в котором будут публиковаться новости, опросы, объявления, связанные с приложением, а также рекламные посты, как личные, которые будут мотивировать продолжать развивать данное приложения, так и от Telegram, анонсированные ранее Павлом Дуровым для оплаты их серверов.
На данный момент есть два канала, один русскоязычный для России и стран СНГ, другой англоязычный для всего остального мира.
Техническая часть
Сервис представляет из себя прогрессивное вэб-приложение (PWA), которое можно использовать как в браузере, так и установить на любое устройство из браузера и пользоваться им как нативным.
Приложение напрямую связывается с серверами Telegram, ваша информация нигде больше не хранится и никуда не передается. Из сторонних сервисов используется Vercel, он забирает код из GitHub и раздает пользователям собранные скрипты и стили. А также Sentry, в который отправляются ошибки без каких-либо личных данных (можно выключить в настройках). Не подключены даже Google или Yandex аналитика. Любой желающий может проверить исходники на GitHub.
Наличие новой версии приложения проверяется при каждом открытии или раз в сутки, если оно не закрывалось. Для обновления будет показано соответствующее уведомление.
Почему PWA?
Microsoft и Google активно развивают данное направление приложений, стирая различия между вэбом и нативом, что позволяет сократить время и расходы на разработку, не теряя в качестве и функциональности, ну и не связываться со сторами. К сожалению, Apple, родоначальник PWA (Стив Джобс анонсировал вэб-приложения на WWDC 2007), в данный момент сильно препятствует этому развитию, особенно в iOS, в котором до сих пор запрещены сторонние движки браузеров (Chrome и Firefox являются тем же Safari с другой оболочкой). Но эта тема для отдельной большой статьи, если вам интересно, можете почитать, как Safari убивает вэб (англ.), прикрываясь безопасностью.
Я старался сделать работу приложения максимально производительной, если у вас что-то тормозит, просьба сообщить мне об этом.
Для рендеринга используется preact (это лёгкая и быстрая альтернатива react’у), API Telegram выполняется в отдельном Web Worker’е, как и блюр превьюшек. Для анимаций используется Web Animations API. Стриминг видео и стриминговое скачивание файлов реализовано через Service Worker. Отображаемые картинки и последние 20 сообщений из каждой папки сохраняются в IndexedDB, база с картинками очищается при закрытии приложения. В ближайшем будущем скорее всего добавится еще и библиотека libde265, сконвертированная из C++ в WebAssembly, чтобы можно было проигрывать iPhone’овские видео на других устройствах.
Известные проблемы
- Расшаривание данных в приложение не работает в Safari.
- Не скачиваются файлы в Safari, вместо этого они открываются для просмотра. Фотографии можно скачать только из контекстного меню браузера или в официальном приложении Telegram.
- Некоторые устройства (например, Samsung и Xiaomi) в любой момент могут убить приложение, даже при обычном выборе файла для загрузки, т.к. считают, что оно ушло в бэкграунд. Решается отключением оптимизации расхода батареи для установленного приложения.
Ближайшие планы
- Сделать выбор нескольких сообщений, сейчас удалять и перемещать сообщения можно только по одному.
- Сделать создание подпапок.
- Улучшить поддержку оффлайн режима.
- Сделать загрузку файлов в бэкграунде (кроме Safari).
- Всякие мелкие доработки для более удобного использования.
Вместо заключения
Адрес приложения:
TgStorage
Advanced Saved Messages of the Telegram. Organize your notes, links, checklists, photos and any documents in the free unlimited Telegram Cloud.
tgstorage.com