Я рад поделиться тем, над чем работал уже давно: DisHub — новое мобильное приложение, созданное специально для форумов Discourse.
Как и многие из вас, я очень люблю использовать Discourse, но всегда чувствовал, что официальное мобильное приложение несколько ограничено — это по большей просто веб-оболочка с минимальным использованием истинных нативных функций. Кроме того, проект Fig, похоже, больше недоступен, да и был он только для Android.
Поэтому я решил создать DisHub с нуля, используя Flutter. Мои цели были просты:
Обеспечить нативную производительность и плавные анимации для форумов Discourse
Предоставить настоящие push-уведомления, используя возможности устройства
Упростить управление несколькими форумами в одном приложении
Добавить инструменты для модераторов и администраторов, которые можно реально использовать в пути
Создать красивый, чистый и простой интерфейс, который будет естественно ощущаться на мобильных устройствах
Ключевые возможности:
Управление всеми вашими форумами Discourse в одном приложении
Сверхбыстрая нативная навигация и анимации
Настраиваемые мобильные уведомления
Действия администраторов и модераторов (флагирование, удаление, редактирование, блокировка и т. д.)
Тёмная и светлая темы
Разработано для участников, модераторов и администраторов
Приложение полностью построено на Flutter, и я благодарен за всю обратную связь и тестирование, которые получил от сообществ Flutter и Discourse. Ваши идеи помогли превратить этот проект во что-то, чем я горжусь.
Я был бы рад, если бы любой заинтересованный попробовал его, особенно если вы управляете или участвуете в сообществе Discourse. Отзывы, предложения или вопросы всегда приветствуются!
Я протестировал ваше приложение DisHub, и в целом оно работает отлично. Мне очень нравится плавный интерфейс, современный дизайн и высокая производительность. Надеюсь, что ваше обновление скоро станет ещё более эффективным. И поскольку вы проделываете отличную работу, ваше приложение скоро станет ещё лучше.
Я протестировал ваше приложение на iOS и смог найти свой Discourse, но после авторизации приложения меня перекидывает на общедоступную страницу, и я не авторизован. Не знаю, это проблема или я что-то сделал не так
У меня возникло несколько проблем при начале работы.
Приложение позволяло перейти за экран входа и предлагало «добавить новое сообщество». Однако одновременно отображался список сообществ. Сообщество, которое я хотел присоединить, отсутствовало в списке, поэтому я попытался его «добавить», но это вызвало ошибку.
Затем я понял, что приложение не просит меня войти в мою собственную Discourse-систему, а предлагает создать учётную запись для этого приложения. Одним из преимуществ другого приложения Discourse было то, что оно не пыталось завладеть моей учётной записью: я просто вводил данные для входа на веб-сайт Discourse, чтобы получить доступ.
После создания учётной записи я смог добавить своё сообщество в список. На iPhone 13 поле для ввода названия сообщества было скрыто клавиатурой, и я не мог его увидеть.
Как только я преодолел эти препятствия, я смог войти в своё сообщество, и всё работало довольно хорошо. Я всегда считал, что веб-сайты Discourse достаточно хорошо работают в мобильном режиме, и ситуация постепенно улучшается.
После небольшого тестирования я получил письмо от Supabase с просьбой подтвердить регистрацию. Поскольку я не имел никакого отношения к Supabase, я пометил это письмо как спам и удалил его.
Как это приложение обрабатывает аутентификацию с экземпляром Discourse? Используется ли API или открывается веб-представление этого сайта? Хранятся ли учетные данные или используется нативная аутентификация Discourse? Понимание этого критически важно с точки зрения безопасности пользователей.
Привет! Прежде всего, спасибо за создание Dishub — это очень интересный проект, и мне понравилось его тестировать. В процессе работы с приложением я столкнулся с рядом проблем, которыми хочу поделиться. Надеюсь, этот отзыв поможет улучшить опыт для всех пользователей.
Вот некоторые проблемы и предложения, которые я заметил при использовании Dishub:
Валидация URL форума
При добавлении нового форума, если URL введён без префикса https://, приложение выдаёт ошибку.
Регистрация через Google не работает
Вариант регистрации через Google не функционирует. После нажатия на него и выбора аккаунта ничего не происходит.
Ссылка в письме для регистрации по электронной почте нерабочая
Процесс регистрации по электронной почте отправляет подтверждение, но ссылка внутри письма ведёт на страницу с ошибкой «Страница не найдена».
Читаемость тёмной темы
В тёмном режиме названия категорий отображаются тёмным текстом, из-за чего их трудно читать на тёмном фоне.
Поддержка форумов с направлением справа налево (RTL)
Для форумов с направлением текста справа налево (RTL) весь макет должен, в идеале, переключаться на RTL. Как минимум, содержимое постов должно выравниваться и отображаться справа налево, а не слева направо.
Проблема с отступами на мобильных устройствах
На мобильных устройствах текст начинается очень близко к правому краю экрана, что снижает читаемость. Это усугубляется, если у пользователя на экране есть трещина или скол защитного стекла по краю.
Отображение тем в подкатегориях
При выборе родительской категории все темы отображаются, как и ожидалось. Однако при выборе подкатегории список тем становится пустым вместо отображения тем этой подкатегории.
Множественный выбор тегов
Было бы очень полезно, если бы можно было выбирать несколько тегов одновременно.
Прокрутка левой боковой панели
Левое меню не прокручивается. В результате некоторые опции внизу невозможно открыть или увидеть на экранах меньшего размера.
Выпадающий список категорий при создании темы
На странице «Создать тему» поле категории не предоставляет выпадающее меню для просмотра и выбора существующих категорий.
Огромное спасибо за ваши усилия и за то, что рассмотрите этот отзыв.
Я не совсем уверен, какой скриншот отправить, так как не знаю, где должна находиться кнопка выхода. Возможно, если вы покажете мне, где она находится, я смогу отправить скриншот, подтверждающий её отсутствие, или подтвердить, что она есть, а проблема была в моей ошибке.