Flutter. При запуске приложения, как лучше запросить асинхронные данные ? [Best Practices]
Сейчас работаю над приложением и при запуске необходимо получить по API userId, а затем подписаться на сокеты:
final userId = await fetchUser();
subscribeSocket(userId)
Трудность в том, что до инициализации провайдера, т.е. в main методе нельзя вызывать, т.к. не смогу сохранить информацию о user. Если в FutureBuilder, то получу повторный вызов подписки несколько раз (видимо из-за рендера). Как вариант intialState, но у меня сомнения в правильности.
Ответы (2 шт):
Автор решения: Daniil
→ Ссылка
Если вам нужно вызывать ф-ию при запуске - initState() шикарный вариант. Опять же, как уже было в ответе выше - bloc, будет лучшим решением (если он нужен). Как говорил дядюшка Боб,
не стоит использовать чистую архитектуру там, где она не нужна.