Skip to content

Instantly share code, notes, and snippets.

@Kurogoma4D
Kurogoma4D / stream_provider_leaks.dart
Last active January 12, 2024 08:22
Using `StreamProvider.future` may cause memory leaks.
// flutter_riverpod: 2.4.9
import 'dart:async';
import 'dart:math' as math;
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
final random = math.Random();
@Kurogoma4D
Kurogoma4D / stream_provider_inspection.dart
Created January 30, 2023 08:47
StreamProvider inspection.
import 'package:riverpod/riverpod.dart';
final originalStream = StreamProvider.family.autoDispose<String, String>((ref, prefix) {
return Stream.value('$prefix foo');
});
final prefixStore = StateProvider.autoDispose<String?>((_) => null);
final originalListener = StreamProvider.autoDispose<String>((ref) {
final prefix = ref.watch(prefixStore);
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
typedef ValueTransitionBuilder<T> = Widget Function(
BuildContext context,
T value,
Widget? child,
);
import 'package:meta/meta.dart';
import 'package:riverpod/riverpod.dart';
@immutable
class Count {
final int countA;
final int countB;
Count(this.countA, this.countB);
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
void main() {
GoRouter.setUrlPathStrategy(UrlPathStrategy.path);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
MyApp({Key? key}) : super(key: key);
import 'dart:async';
import 'dart:ui' as ui;
import 'package:flutter/material.dart';
import 'package:graphx/graphx.dart';
void main() {
runApp(const MyApp());
}
import 'dart:async';
import 'dart:ui' as ui;
import 'package:flutter/material.dart';
import 'package:graphx/graphx.dart';
void main() {
runApp(const MyApp());
}
import 'package:flutter/material.dart';
import 'package:flutter/physics.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
import 'package:flutter/material.dart';
import 'package:flutter/physics.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
import 'package:flutter/material.dart';
import 'package:flutter/physics.dart';
import 'dart:math' as math;
final random = math.Random();
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override