Flutter Heroes
📈 Telegram kanali Flutter Heroes analitikasi
Flutter Heroes (@flutterdev) Ingliz til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 24 985 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 4 956-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 24 985 obunachiga ega bo‘ldi.
27 Yanvar, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -163 ga, so‘nggi 24 soatda esa 0 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 0% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining N/A% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 0 marta ko‘riladi; birinchi sutkada odatda 0 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 0 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent developer, firebase, widget, hemantpra389, engineer kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Kanal uchun tavsif kiritilmagan.
Yuqori yangilanish chastotasi (oxirgi ma’lumot 28 Yanvar, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
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
