Назови свой топ-3 лучших библиотек в Flutter.

«Назови свой топ-3 лучших библиотек в Flutter.» — вопрос из категории Flutter виджеты, который задают на 29% собеседований Flutter Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Мой топ-3 библиотек для production-разработки на Flutter:

  1. Riverpod (замена Provider) – Современный state-менеджмент и dependency injection.

    • Почему: Решает проблемы Provider (например, с context), имеет отличную поддержку типов, тестируемость и не зависит от дерева виджетов.
      
      final counterProvider = StateProvider<int>((ref) => 0);

    class MyWidget extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final count = ref.watch(counterProvider); return Text('Count: $count'); } }

  2. Dio – HTTP-клиент.

    • Почему: Превосходит стандартный http пакет благодаря interceptors (для логирования, добавления токенов), поддержке отмены запросов, FormData, и встроенным трансформаторам ответов.
      final dio = Dio();
      dio.interceptors.add(LogInterceptor());
      final response = await dio.get<Map<String, dynamic>>('/user/1');
      final user = User.fromJson(response.data!);
  3. GoRouter (или AutoRoute) – Навигация.

    • Почему: Объявляемая маршрутизация с type-safe передачей аргументов. Гораздо чище и надежнее, чем Navigator.pushNamed с arguments типа Map<String, dynamic>.
      GoRoute(
      path: '/user/:id',
      builder: (context, state) {
      final userId = state.pathParameters['id']!; // Тип - String
      return UserProfilePage(userId: userId);
      },
      );