сделать лишь необходимость написания приложения под личный проект. мог бы кто-то опытный оценить насколько это реально в одну морду всё сделать? текущий сайт на vue spa + laravel api (тоже всё сам делал).
я опишу лишь основные штуки, которые мне кажутся сложными в реализации (простыми они не были и на vue, приходилось нормально так подумать над кодом), хотелось бы узнать насколько это сложно повторить на флаттере. я ппц боюсь всё это начинать.
это небольшой дейтинг сайт.
основной канал для реатлайм штук сейчас - это вебсокет на centrifugo, где каждый юзер подписывается на нужные ему каналы.
1. роутинг. простые страницы, где контент подгружается бесконечным скроллом с обычной/курсор пагинацией.
есть сложные страницы вида /:id(id\\d+|\\w+) (из роутера вью). это страницы профиля юзера, например.
аналогично есть страницы приватных чатов между юзерами/публичных чатов. там тоже роуты с id чата или юзера.
2. в личных чатах сообщения приходят просто с сортировкой по времени, фронт их бьет на чанки сначала по дням, потом внутри по последнему отправителю (чтобы сообщения от одного юзера подряд были некой группой). вся эта хрень реактивна и может меняться на лету. (сообщение может быть удалено собеседником, прочитано и тд. об этом сообщает ws).
в личных чатах реализованы войсы а-ля vk. при записи войса сразу анализируется инпут с микрофона и пишется шкала пиков для визуализации голосового сообщения. обычный int массив. при отрисовке войса на vue генерится svg слой с waveform. это реально сделать на флаттер?
3. про сложные кропперы картинок думаю можно не спрашивать, такое точно должно быть в готовых пакетах.
4. нужны пуши. я так понимаю понадобится добавить еще один канал уведомлений в laravel, это не проблема. вопрос по ним следующий: есть ли возможность понимать, при получении пуша, на каком экране приложения юзер сейчас находится? чтобы при переписке с кем-то ему не отображать пуш, если он пришел из этого же чата. возможно вопрос глупый, но я давно продумывал стратегию написания всего этого, смотрел различные примеры, ответ не попадался.
Чозапонос?
Твое сообщение? 🤦
Обсуждают сегодня