steady_async 0.2.2
steady_async: ^0.2.2 copied to clipboard
Perception-aware async UX for Flutter with calm loading, actions, retries, and pagination.
example/lib/main.dart
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:steady_async/steady_async.dart';
void main() => runApp(const ExampleApp());
class ExampleApp extends StatelessWidget {
const ExampleApp({super.key});
Future<List<String>> _loadItems() async {
await Future<void>.delayed(const Duration(milliseconds: 700));
return const ['Calm loading', 'Safe retry', 'Previous data on refresh'];
}
@override
Widget build(BuildContext context) => MaterialApp(
theme: ThemeData(colorSchemeSeed: const Color(0xFF5B5BD6)),
home: Scaffold(
appBar: AppBar(title: const Text('steady_async')),
body: SteadyAsyncBuilder<List<String>>(
load: _loadItems,
isEmpty: (items) => items.isEmpty,
dataBuilder: (context, items) => ListView.builder(
itemCount: items.length,
itemBuilder: (context, index) => ListTile(
leading: const Icon(Icons.check_circle_outline),
title: Text(items[index]),
),
),
),
),
);
}