Рубрика #СегодняВПроекте
Джекпот 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