Музей юмора для Android

Опубликовано 28.10.2026 07:16:00 в категории Мобильная разработка

«Музей юмора» — Android-приложение с коллекцией анекдотов, афоризмов, историй, стишков, хокку и изречений, которую я собираю с конца 1980-х. Работает без интернета, ничего не просит и ничего не собирает.

Что это?

Музей Юмора — это анекдоты, афоризмы, истории, фразы и изречения, стишки, хокку и другие литературные произведения, которые я начал собирать ещё в конце 1980-х и собираю по сей день. Самые лучшие и проверенные, смешные и остроумные.

Раньше эта коллекция жила в блоге. Теперь её можно носить в кармане: открыл — и читаешь, в метро, в очереди или в самолёте.

Тип приложения

«Музей юмора» — клиент-серверное приложение с упором на работу без сети (offline-first).

Сервер. Коллекция хранится в блоге calabonga.net и отдаётся через публичный API только для чтения. Сервер сам отбирает записи для публикации и отсеивает контент 18+, а приложению отдаёт готовую ленту страницами по 50 записей — от новых к старым.

Клиент. Android-приложение на .NET MAUI. Экраны никогда не обращаются к сети напрямую: они читают локальную базу на телефоне, а сеть лишь пополняет её.

  • При первом запуске приложение за несколько минут загружает коллекцию (около 4500 записей). Если связь оборвалась, загрузка продолжится с того же места.
  • Дальше приложение при каждом запуске, при появлении сети и по жесту «потянуть вниз» докачивает только новые записи.
  • Правку записи на сервере приложение подхватывает, когда Вы открываете шутку. Если запись удалена, она пропадёт и с телефона.
  • Нет сети — ничего страшного: всё, что загрузилось, читается как обычно. Проблемы со связью показываются ненавязчивой плашкой, а не диалогом.

Регистрации нет. Персональные данные не собираются. Приложению нужны только два разрешения: доступ в интернет и состояние сети.

Возможности

  • Случайный экспонат. Главный экран показывает случайную запись из коллекции целиком. Нажмите на неё — откроется полный текст. После долгого перерыва приложение выберет другой экспонат.
  • Лента. Вся коллекция списком от новых записей к старым. У каждой карточки вид (анекдот, история, афоризм, фраза и изречение, стишки, хокку, разное), заголовок, начало текста и дата.
  • Чтение. Полный текст записи с переносами строк, как в оригинале, и кнопка «Дальше» — листайте записи подряд, не возвращаясь в ленту.
  • Поиск. Поиск по заголовку и тексту, с фильтром по виду записи. Сначала ищет по локальной базе (мгновенно и без сети), а если ничего не нашлось — предлагает поискать на сервере.
  • Закладка. Одна на всё приложение: «остановился на этом месте». Главный экран напомнит о ней, и одним нажатием Вы вернётесь в ленту ровно к этой записи.
  • Избранное. Сердечко на карточке сохраняет любимые записи (до 5) в отдельный список.
  • Тёмная тема в фирменном стиле calabonga.net и шрифт Source Sans 3 — глаза не устают вечером.
  • Обновления. Приложение само подскажет, что вышла новая версия.
  • Журнал для разработчика. Если что-то пошло не так, на экране «Про музей» есть кнопка «Отправить журнал». Файл уходит только туда, куда Вы отправите его сами.

Для кого

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

Технические подробности (для блога)

.NET 10, .NET MAUI (только Android), CommunityToolkit.Mvvm, клиент API генерируется Kiota из OpenAPI-документа, локальная база SQLite (sqlite-net-pcl), MVVM, слои Maui → Infrastructure → Application, тесты xUnit v3.

Скриншоты

 

Комментарии к статье ()

Загрузка...

Что-то пошло не по сценарию и завершилось ошибкой. Перезагрузить страницу (F5) 🗙

Переподключаем сервер...

Переподключение сломалось... Пробуем еще раз сек.

Не получилось переподключится.
Пожалуйста, обновите страницу F5

Сессия была поставлена сервером на паузу.

Восстановить сессию не получилось.
Пожалуйста, обновите страницу F5.