Flutter Heroes
📈 Аналітичний огляд Telegram-каналу Flutter Heroes
Канал Flutter Heroes (@flutterdev) у мовному сегменті Англійська є активним учасником. На даний момент спільнота об'єднує 24 985 підписників, посідаючи 4 956 місце в категорії Технології та додатки.
📊 Показники аудиторії та динаміка
З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 24 985 підписників.
За останніми даними від 27 січня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на -163, а за останні 24 години на 0, загальне охоплення залишається високим.
- Статус верифікації: Не верифікований
- Рівень залученості (ER): Середній показник залученості аудиторії становить 0%. Протягом перших 24 годин після публікації контент зазвичай збирає N/A% реакцій від загальної кількості підписників.
- Охоплення публікацій: В середньому кожен допис отримує 0 переглядів. Протягом першої доби публікація в середньому набирає 0 переглядів.
- Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 0.
- Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як developer, firebase, widget, hemantpra389, engineer.
📝 Опис та контентна політика
Опис каналу не надано.
Завдяки високій частоті оновлень (останні дані отримано 28 січня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.
typedef Update<T> = T Function(T); Update<Game> moveForward() => (game) { final nposition = game.position.step(); if (!game.map.isValid(nposition)) return game; return game.update(position: nposition); }; Now I want to combine this approach with Riverpod.I have to create a subclass of StateNotifier to store my Game (or any other updateable value because I'm doing this is the most generic way of course):class UpdateableStateNotifier<T> extends StateNotifier<T> { UpdateableStateNotifier(T initialState) : super(initialState); void apply(Update<T> update) => state = update(state); ... To make creating a provider look nicer and to omit all the explicit types otherwise required, I also provide this utility factory function:... static StateNotifierProvider<UpdateableStateNotifier<T>, T> provider<T>(T initialState) => StateNotifierProvider((_) => UpdateableStateNotifier(initialState)); }Then I can setup my gameProvider like so:
final gameProvider = UpdateableStateNotifier.provider(initialGame);Later, I can access the current game state as usual:
Widget build(BuildContext context, WidgetRef ref) { final game = ref.watch(gameProvider); ... To easily apply updates, I extended WidgetRef:extension UpdateableStateNotifierExtension on WidgetRef { void apply<S>(StateNotifierProvider<UpdateableStateNotifier<S>, S> provider, Update<S> update) { read(provider.notifier).apply(update); } } Now, my UI can do this in callbacks or other actions:ref.apply(gameProvider, moveForward());There is a bit more work involved because I also support undo (and redo, because why not) and Update actually returns a FutureOr<T>, but the principle stays the same. November 13, 2021 at 04:15PM by eibaan https://ift.tt/3F4p1SG
