Flutter Pulse
417 subscribers
271 photos
542 links
На канале будут новости про flutter с сайтов, информация об обновлении пакетов, а также авторский контент.
Download Telegram
🎯 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
Лучшие обновленные пакеты за последние 24 часа!

drift_dev 2.27.0
Пакет используется для генерации кода базы данных из классов Table в Drift. В новой версии исправлены ошибки при генерации кода схемы для столбцов, ссылающихся на другие столбцы, улучшены импорты и добавлена возможность игнорировать ограничения столбцов при валидации схемы.
👍 Лайки: 54, 📥 Скачиваний: 219К
https://pub.dev/packages/drift_dev

Drift 2.27.0
Реактивная библиотека для работы с базами данных SQLite. В новой версии добавлена возможность передавать callback-функцию sqlite3 в NativeDatabase для настройки получения связок SQLite.
👍 Лайки: 2.08К, 📥 Скачиваний: 379К
https://pub.dev/packages/drift

Fluwx 5.5.5
Плагин для Flutter, позволяющий вызывать нативные API WeChatSDK. Теперь поддерживается обмен видео на платформе HarmonyOS, а также обновлена версия HarmonyOS SDK до 1.0.14.
👍 Лайки: 250, 📥 Скачиваний: 5.6К
https://pub.dev/packages/fluwx

html_editor_enhanced 2.7.0
Текстовый редактор для Android, iOS и Web, позволяющий писать WYSIWYG HTML-код с помощью оболочки JavaScript Summernote. В новой версии исправлены устаревшие функции в последних версиях Flutter и обновлены зависимости.
👍 Лайки: 626, 📥 Скачиваний: 33.8К
https://pub.dev/packages/html_editor_enhanced

google_api_headers 2.0.0
Пакет используется для получения заголовков, необходимых для вызова API Google с ограниченным ключом API в приложениях Flutter. В новой версии обновлена версия компилятора Android до 33 и добавлена совместимость с Android Gradle Plugin 8.0.
👍 Лайки: 30, 📥 Скачиваний: 79.6К
https://pub.dev/packages/google_api_headers

Pro Image Editor 9.13.0
Виджет Flutter для редактирования изображений в вашем приложении. В новой версии добавлена возможность динамически выравнивать поле ввода текста в редакторе текста.
👍 Лайки: 392, 📥 Скачиваний: 19.8К
https://pub.dev/packages/pro_image_editor

#drift_dev #Drift #Fluwx #html_editor_enhanced #google_api_headers #ProImageEditor #flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages