Рубрика #СегодняВПроекте
Джекпот Flutter-разработчика: данные в реальном времени 🎉
Сегодня я решил задачу, которая часто встречается в разработке приложений: отобразить список событий в реальном времени.
Условия:
1. Если есть ошибка — пользователь должен это видеть.
2. Если данных ещё нет — показываем индикатор загрузки.
3. Если событий нет, вместо пустого списка выводим сообщение.
4. Даты отображаются в формате dd.MM.yyyy, чтобы всё было понятно и аккуратно.
Вот кусок кода, который справляется с этой задачей: ``` import 'package:intl/intl.dart';
StreamBuilder<List<Event>>( stream: eventStream, builder: (context, snapshot) { if (snapshot.hasError) { return Center(child: Text('Ошибка: ${snapshot.error}')); } if (!snapshot.hasData) { return Center(child: CircularProgressIndicator()); }
final events = snapshot.data!; if (events.isEmpty) { return Center(child: Text('Событий нет')); }
return ListView.builder( itemCount: events.length, itemBuilder: (context, index) { final event = events[index]; return ListTile( title: Text(event.title), subtitle: Text(DateFormat('dd.MM.yyyy').format(event.date)), ); }, ); }, ); ``` Особенности:
Использовал intl для форматирования даты, чтобы сделать её понятной для пользователя.
StreamBuilder автоматически обновляет интерфейс при изменении данных, что идеально для списков событий.
Итог: теперь наш проект может динамически подгружать данные, корректно обрабатывать ошибки и показывать пользователю только актуальную информацию. Балдеж😎
Если ты тоже хочешь улучшить свои навыки во Flutter, присоединяйся к моему каналу. Делюсь своим опытом, кодом и полезными фишками каждый день! (Ну стараюсь)
🔗 https://t.me/dev_road #FlutterDev #КодКаждыйДень #StreamBuilder