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


Я храню закладки в [linkding](https://github.com/sissbruecker/linkding). На Android мне хотелось сохранять найденную страницу через системное меню «Поделиться» и сразу возвращаться к чтению. Но сервер иногда недоступен с телефона. В такой момент ссылка должна остаться на устройстве и дойти до linkding позже.

Для этого я разработал [ShareDing для Android](https://github.com/juev/shareding): приложение сначала записывает закладку на телефоне и только потом пытается связаться с linkding.

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

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

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

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

<div class="shareding-gallery">
  <a href="https://static.juev.org/2026/09/shareding-queue.png"><img src="https://static.juev.org/2026/09/shareding-queue.png" alt="Очередь ссылок ShareDing" width="1200" height="2400" loading="lazy"><span>Очередь</span></a>
  <a href="https://static.juev.org/2026/09/shareding-add-bookmark.png"><img src="https://static.juev.org/2026/09/shareding-add-bookmark.png" alt="Форма добавления закладки в ShareDing" width="1200" height="2400" loading="lazy"><span>Добавление</span></a>
  <a href="https://static.juev.org/2026/09/shareding-settings.png"><img src="https://static.juev.org/2026/09/shareding-settings.png" alt="Настройки подключения ShareDing" width="1200" height="2400" loading="lazy"><span>Настройки</span></a>
</div>

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

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

## GitHub и F-Droid

Первый способ установить ShareDing — скачать APK из [релизов на GitHub](https://github.com/juev/shareding/releases/latest). Для релиза я настроил GitHub Actions: workflow собирает и подписывает APK, проверяет его версию и подпись, затем публикует файл вместе с контрольной суммой SHA-256. Сейчас там доступна версия 0.2.0.

Для F-Droid я подготовил [заявку на добавление приложения](https://gitlab.com/fdroid/fdroiddata/-/merge_requests/50135). В ней зафиксированы исходный commit и версия 0.2.0, а сборка F-Droid уже успешно сравнила свой APK с опубликованным на GitHub. Теперь жду решения сопровождающих F-Droid.

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

Для Google Play я тоже подготовил подписанный пакет приложения, описание, скриншоты и политику конфиденциальности. Перед публикацией моему аккаунту нужно пройти закрытое тестирование: по [правилам Google](https://support.google.com/googleplay/android-developer/answer/14151465) в нём должны участвовать минимум 12 человек, непрерывно зарегистрированных в тесте не менее 14 дней. После этого мне предстоит ответить Google, как люди пользовались приложением и какие отзывы оставили. Поэтому нужны участники, которые действительно попробуют ShareDing и смогут рассказать, что получилось, а что нет.

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

