Skip to content

Commit

Permalink
Feat:[Riverpod] DEV Flavor에 ProviderObserver 적용 #84
Browse files Browse the repository at this point in the history
  • Loading branch information
juan-rybczinski committed Feb 11, 2024
1 parent b810835 commit e6ecd7a
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 1 deletion.
42 changes: 42 additions & 0 deletions lib/core/logger/provider_logger.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import 'package:flutter/material.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';

class ProviderLogger extends ProviderObserver {
// 로깅할 Provider
final observingProvider = [
// 'currentTabTypeProvider',
// 'petMateSearchFilterProvider',
// 'petSosSearchFilterProvider',
];

@override
void didAddProvider(ProviderBase<Object?> provider, Object? value,
ProviderContainer container) {
super.didAddProvider(provider, value, container);

if (observingProvider.contains(provider.name)) {
debugPrint('Provider added ::: ${provider.name}');
}
}

@override
void didDisposeProvider(
ProviderBase<Object?> provider, ProviderContainer container) {
super.didDisposeProvider(provider, container);

if (observingProvider.contains(provider.name)) {
debugPrint('Provider disposed ::: ${provider.name}');
}
}

@override
void didUpdateProvider(ProviderBase<Object?> provider, Object? previousValue,
Object? newValue, ProviderContainer container) {
super.didUpdateProvider(provider, previousValue, newValue, container);

if (observingProvider.contains(provider.name)) {
debugPrint(
'Provider updated ::: ${provider.name} ::: ${previousValue.toString()} -> ${newValue.toString()}');
}
}
}
3 changes: 2 additions & 1 deletion lib/main_development.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@ import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:pets_next_door_flutter/app.dart';
import 'package:pets_next_door_flutter/app/env/flavors.dart';
import 'package:pets_next_door_flutter/core/logger/provider_logger.dart';

Future<void> main() async {
Flavor.initialize(BuildType.development);

await Flavor.instance.setup();

runApp(const ProviderScope(child: App()));
runApp(ProviderScope(observers: [ProviderLogger()], child: App()));
}

0 comments on commit e6ecd7a

Please sign in to comment.