Перейти к основному содержанию

ShareDing для Android: ссылки в linkding, даже когда сервер недоступен

29 September 2026

Я храню закладки в linkding . На Android мне хотелось сохранять найденную страницу через системное меню «Поделиться» и сразу возвращаться к чтению. Но сервер иногда недоступен с телефона. В такой момент ссылка должна остаться на устройстве и дойти до linkding позже.

Для этого я разработал ShareDing для Android : приложение сначала записывает закладку на телефоне и только потом пытается связаться с linkding.

Как это работает

ShareDing появляется в системном меню «Поделиться». После выбора в браузере или другом приложении ссылка попадает в локальную очередь, появляется короткое подтверждение, а исходное приложение остаётся на экране. Открывать ShareDing и ждать ответа сервера не нужно.

Фоновую доставку выполняет Android через WorkManager. Если связи нет, linkding недоступен или сервер отвечает ошибкой, запись остаётся в очереди. Когда отправка проходит успешно, она исчезает. Очередь переживает перезапуск приложения и телефона; в самом ShareDing можно увидеть ожидающие ссылки и повторить отправку вручную.

Есть и отдельная форма для добавления закладки: URL, заголовок, описание и теги можно заполнить вручную или запросить данные страницы. В настройках указываются адрес linkding, API-токен и теги по умолчанию. Сервер linkding должен быть доступен по HTTPS; ссылки на обычные HTTP-страницы при этом сохранять можно. Для работы приложения нужен Android 9 или новее.

Приложение написано на Kotlin: Compose отвечает за интерфейс, Room хранит очередь, WorkManager запускает отправку в фоне. Я начал с сохранения из системного меню через прозрачный экран с коротким подтверждением, затем занялся фоновой отправкой.

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

GitHub и F-Droid

Первый способ установить ShareDing — скачать APK из релизов на GitHub . Для релиза я настроил GitHub Actions: workflow собирает и подписывает APK, проверяет его версию и подпись, затем публикует файл вместе с контрольной суммой SHA-256. Сейчас там доступна версия 0.2.0.

Для F-Droid я подготовил заявку на добавление приложения . В ней зафиксированы исходный commit и версия 0.2.0, а сборка F-Droid уже успешно сравнила свой APK с опубликованным на GitHub. Теперь жду решения сопровождающих F-Droid.

Нужна помощь с Google Play

Для Google Play я тоже подготовил подписанный пакет приложения, описание, скриншоты и политику конфиденциальности. Перед публикацией моему аккаунту нужно пройти закрытое тестирование: по правилам Google в нём должны участвовать минимум 12 человек, непрерывно зарегистрированных в тесте не менее 14 дней. После этого мне предстоит ответить Google, как люди пользовались приложением и какие отзывы оставили. Поэтому нужны участники, которые действительно попробуют ShareDing и смогут рассказать, что получилось, а что нет.

Если у вас есть Android-телефон и вы готовы пользоваться приложением хотя бы две недели, напишите мне на адрес электронной почты, указанный на моей визитке . В письме укажите адрес Google-аккаунта, с которым вы пользуетесь Google Play: на него я отправлю приглашение, инструкцию по установке и дальнейшие шаги. Если вы уже используете linkding, ваш опыт особенно поможет проверить отправку ссылок на собственный сервер.