Flutter Pulse
418 subscribers
271 photos
543 links
На канале будут новости про flutter с сайтов, информация об обновлении пакетов, а также авторский контент.
Download Telegram
Обновлённые пакеты за последние 24 часа, скачанные наибольшее число раз

patrol_finders обновился до версии 2.7.2
Пакет для тестирования Flutter-виджетов. Удален класс PatrolWidgetTester.
👍 Лайки: 43, 📥 Скачиваний: 138К
https://pub.dev/packages/patrol_finders

flutter_custom_tabs обновился до версии 2.2.1
Пакет для запуска URL в кастомных вкладках на мобильных устройствах. Обновление версии.
👍 Лайки: 243, 📥 Скачиваний: 161К
https://pub.dev/packages/flutter_custom_tabs

wakelock_plus обновился до версии 1.2.11
Пакет для предотвращения автоматического выключения экрана устройства. Исправлена проблема с устаревшим пакетом win32 для Windows.
👍 Лайки: 463, 📥 Скачиваний: 1.16М
https://pub.dev/packages/wakelock_plus

Provider обновился до версии 6.1.4
Пакет для упрощения работы с InheritedWidget. Исправлена ошибка, из-за которой MultiProvider не мог наследоваться после обновления 6.1.3.
👍 Лайки: 10.6К, 📥 Скачиваний: 3.77М
https://pub.dev/packages/provider

over_react обновился до версии 5.4.3
Библиотека для создания статически типизированных React-компонентов на языке Dart. Подготовка к React 18 и исправление ошибок.
👍 Лайки: 37, 📥 Скачиваний: 186К
https://pub.dev/packages/over_react

#patrol_finders #flutter_custom_tabs #wakelock_plus #Provider #over_react #flutter #dart #pubdev #flutterpulse
Обновлённые пакеты за последние 24 часа, получившие наибольшее число лайков

Syncfusion Flutter Charts обновился до версии 29.1.40!
Пакет для создания красивых, анимированных и высокопроизводительных графиков в мобильных приложениях на Flutter. Исправлены ошибки с HistogramSeries и коллбэком onPointDoubleTap.
👍 Лайки: 3.48К, 📥 Скачиваний: 191К
https://pub.dev/packages/syncfusion_flutter_charts

Flutter Date Range Picker обновился до версии 29.1.39!
Пакет для выбора одной даты, нескольких дат или диапазона дат. Поддерживает различные виды календарей. Обновлена минимальная версия Dart до 3.7.
👍 Лайки: 1.57К, 📥 Скачиваний: 175К
https://pub.dev/packages/syncfusion_flutter_datepicker

Flutter-WebRTC обновился!
Плагин для Flutter, позволяющий использовать технологию WebRTC для передачи аудио и видео в реальном времени. Добавлены новые функции и улучшения.
👍 Лайки: 1.23К, 📥 Скачиваний: 41.9К
https://pub.dev/packages/flutter_webrtc

Provider обновился до версии 6.1.5!
Обёртка вокруг InheritedWidget, упрощающая его использование. Исправлена ошибка с чтением другого провайдера.
👍 Лайки: 10.7К, 📥 Скачиваний: 4.07М
https://pub.dev/packages/provider

Flutter Calendar обновился до версии 29.1.39!
Мощный инструмент для создания календарей в приложениях Flutter. Исправлены ошибки и обновлена минимальная версия Dart до 3.7.
👍 Лайки: 1.5К, 📥 Скачиваний: 68.6К
https://pub.dev/packages/syncfusion_flutter_calendar

#flutter #dart #pubdev #flutterpulse #syncfusion_flutter_charts #syncfusion_flutter_datepicker #flutter_webrtc #provider #syncfusion_flutter_calendar
🎯 Flutter совет: Шаблон подписки с Provider

Управление подпиской через Provider — один из самых чистых и масштабируемых способов построения архитектуры подписок в Flutter. Ниже — полный шаблон, который можно адаптировать под RevenueCat, Qonversion, Firebase и другие платформы.

---

🔧 Модель состояния подписки

class SubscriptionModel extends ChangeNotifier {
  bool _isSubscribed = false;
  DateTime? _expiryDate;

  bool get isSubscribed => _isSubscribed;
  DateTime? get expiryDate => _expiryDate;

  void updateStatus({required bool subscribed, DateTime? expiry}) {
    _isSubscribed = subscribed;
    _expiryDate = expiry;
    notifyListeners();
  }

  void reset() {
    _isSubscribed = false;
    _expiryDate = null;
    notifyListeners();
  }

  bool get isExpired {
    if (_expiryDate == null) return true;
    return DateTime.now().isAfter(_expiryDate!);
  }
}

---

🧩 Регистрация провайдера в main.dart

void main() {
  runApp(
    ChangeNotifierProvider(
      create: (_) => SubscriptionModel(),
      child: const MyApp(),
    ),
  );
}

---
Использование подписки в UI

Consumer<SubscriptionModel>(
  builder: (context, model, _) {
    if (model.isSubscribed) {
      return const PremiumContent();
    }

    return Column(
      children: [
        const Text("Оформите подписку для доступа к премиум-функциям"),
        ElevatedButton(
          onPressed: () => handleSubscription(context),
          child: const Text("Подписаться"),
        ),
      ],
    );
  },
)

---
Пример обработки подписки

Future<void> handleSubscription(BuildContext context) async {
  final model = context.read<SubscriptionModel>();

  final result = await PurchaseService.buy(); // ваша реализация

  if (result.success) {
    model.updateStatus(
      subscribed: true,
      expiry: result.expiryDate,
    );
  } else {
    ScaffoldMessenger.of(context).showSnackBar(
      const SnackBar(content: Text("Не удалось оформить подписку")),
    );
  }
}

---

💡 Совет: Периодически проверяйте подписку при запуске приложения — особенно если используете серверную валидацию или Webhook-обновления.

💬 Поделитесь в комментариях, как вы реализуете подписки в своих приложениях!

📌 Все советы рубрики — по хэштегу #FlutterPulseTips

#flutter #dart #provider #architecture #subscriptions #revenuecat #qonversion #boilerplate #mobiledev #FlutterPulseTips #UIUX #premiumapps