Skip to content

Commit

Permalink
feat/devtools (#82)
Browse files Browse the repository at this point in the history
  • Loading branch information
nank1ro committed Dec 18, 2023
1 parent 45ca1fb commit 90fce16
Show file tree
Hide file tree
Showing 38 changed files with 873 additions and 34 deletions.
26 changes: 18 additions & 8 deletions .vscode/launch.json
Expand Up @@ -5,49 +5,59 @@
"type": "dart",
"request": "launch",
"program": "main.dart",
"cwd": "packages/solidart/example"
"cwd": "packages/solidart/example",
},
{
"name": "flutter_solidart Example",
"type": "dart",
"request": "launch",
"program": "lib/main.dart",
"cwd": "packages/flutter_solidart/example"
"cwd": "packages/flutter_solidart/example",
},
{
"name": "Flutter: Run all Tests",
"type": "dart",
"request": "launch",
"program": "./test/",
"cwd": "packages/solidart"
"cwd": "packages/solidart",
},
{
"name": "Todos",
"type": "dart",
"request": "launch",
"program": "lib/main.dart",
"cwd": "examples/todos/"
"cwd": "examples/todos/",
},
{
"name": "Counter",
"type": "dart",
"request": "launch",
"program": "lib/main.dart",
"cwd": "examples/counter/"
"cwd": "examples/counter/",
},
{
"name": "Toggle Theme",
"type": "dart",
"request": "launch",
"program": "lib/main.dart",
"cwd": "examples/toggle_theme/"
"cwd": "examples/toggle_theme/",
},
{
"name": "Github search",
"type": "dart",
"request": "launch",
"program": "lib/main.dart",
"cwd": "examples/github_search/"
}
"cwd": "examples/github_search/",
},
{
"name": "DevTools extension",
"type": "dart",
"request": "launch",
"program": "lib/main.dart",
"cwd": "packages/solidart_devtools_extension",
"args": [
"--dart-define=use_simulated_environment=true"
]
},
]
}
6 changes: 6 additions & 0 deletions README.md
Expand Up @@ -286,6 +286,12 @@ value.
`context.get<Signal<ThemeMode>>` where `Signal<ThemeMode>` is the type
of signal with its type value.

## DevTools

<img src="https://raw.githubusercontent.com/nank1ro/solidart/main/assets/devtools.png" height="800">

You can debug your application using the Solidart DevTools extension and filter your signals.

## Examples

### Sample features using flutter_solidart:
Expand Down
Binary file added assets/devtools.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions examples/counter/devtools_options.yaml
@@ -0,0 +1,2 @@
extensions:
- solidart: true
2 changes: 1 addition & 1 deletion examples/counter/pubspec.yaml
Expand Up @@ -31,7 +31,7 @@ environment:
dependencies:
flutter:
sdk: flutter
flutter_solidart: ^1.6.1
flutter_solidart: ^1.7.0

# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
Expand Down
2 changes: 2 additions & 0 deletions examples/github_search/devtools_options.yaml
@@ -0,0 +1,2 @@
extensions:
- solidart: true
2 changes: 1 addition & 1 deletion examples/github_search/pubspec.yaml
Expand Up @@ -30,7 +30,7 @@ environment:
dependencies:
flutter:
sdk: flutter
flutter_solidart: ^1.6.1
flutter_solidart: ^1.7.0
json_annotation: ^4.8.1
equatable: ^2.0.5
http: ^1.0.0
Expand Down
2 changes: 2 additions & 0 deletions examples/todos/devtools_options.yaml
@@ -0,0 +1,2 @@
extensions:
- solidart: true
2 changes: 1 addition & 1 deletion examples/todos/pubspec.yaml
Expand Up @@ -31,7 +31,7 @@ environment:
dependencies:
flutter:
sdk: flutter
flutter_solidart: ^1.6.1
flutter_solidart: ^1.7.0

# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
Expand Down
2 changes: 1 addition & 1 deletion examples/toggle_theme/pubspec.yaml
Expand Up @@ -31,7 +31,7 @@ environment:
dependencies:
flutter:
sdk: flutter
flutter_solidart: ^1.6.1
flutter_solidart: ^1.7.0

# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
Expand Down
6 changes: 6 additions & 0 deletions packages/flutter_solidart/CHANGELOG.md
@@ -1,3 +1,9 @@
## 1.7.0

### Changes from solidart

- **FEAT**: Add DevTools extension to solidart.

## 1.6.1

### Changes from solidart
Expand Down
6 changes: 6 additions & 0 deletions packages/flutter_solidart/README.md
Expand Up @@ -286,6 +286,12 @@ value.
`context.get<Signal<ThemeMode>>` where `Signal<ThemeMode>` is the type
of signal with its type value.

## DevTools

<img src="https://raw.githubusercontent.com/nank1ro/solidart/main/assets/devtools.png" height="800">

You can debug your application using the Solidart DevTools extension and filter your signals.

## Examples

### Sample features using flutter_solidart:
Expand Down
2 changes: 2 additions & 0 deletions packages/flutter_solidart/example/devtools_options.yaml
@@ -0,0 +1,2 @@
extensions:
- solidart: true
2 changes: 1 addition & 1 deletion packages/flutter_solidart/example/lib/pages/counter.dart
Expand Up @@ -9,7 +9,7 @@ class CounterPage extends StatefulWidget {
}

class _CounterPageState extends State<CounterPage> {
final counter = Signal(0);
final counter = Signal(0, options: SignalOptions(name: 'counter'));

@override
Widget build(BuildContext context) {
Expand Down
Expand Up @@ -9,8 +9,9 @@ class DerivedSignalsPage extends StatefulWidget {
}

class _DerivedSignalsPageState extends State<DerivedSignalsPage> {
late final count = Signal(0);
late final doubleCount = Computed(() => count() * 2);
late final count = Signal(0, options: SignalOptions(name: 'count'));
late final doubleCount =
Computed(() => count() * 2, options: SignalOptions(name: 'doubleCount'));

@override
Widget build(BuildContext context) {
Expand Down
Expand Up @@ -9,8 +9,8 @@ class DualSignalBuilderPage extends StatefulWidget {
}

class _DualSignalBuilderPageState extends State<DualSignalBuilderPage> {
final counter1 = Signal(0);
final counter2 = Signal(0);
final counter1 = Signal(0, options: SignalOptions(name: 'counter1'));
final counter2 = Signal(0, options: SignalOptions(name: 'counter2'));

@override
Widget build(BuildContext context) {
Expand Down
2 changes: 1 addition & 1 deletion packages/flutter_solidart/example/lib/pages/effects.dart
Expand Up @@ -9,7 +9,7 @@ class EffectsPage extends StatefulWidget {
}

class _EffectsPageState extends State<EffectsPage> {
final count = Signal(0);
final count = Signal(0, options: SignalOptions(name: 'count'));
late final DisposeEffect disposeEffect;

@override
Expand Down
Expand Up @@ -13,7 +13,7 @@ class ListSignalPage extends StatefulWidget {
}

class _ListSignalPageState extends State<ListSignalPage> {
final items = ListSignal([1, 2]);
final items = ListSignal([1, 2], options: SignalOptions(name: 'items'));

@override
void initState() {
Expand Down
3 changes: 2 additions & 1 deletion packages/flutter_solidart/example/lib/pages/map_signal.dart
Expand Up @@ -15,7 +15,8 @@ class MapSignalPage extends StatefulWidget {
}

class _MapSignalPageState extends State<MapSignalPage> {
final items = MapSignal({'a': 1, 'b': 2});
final items =
MapSignal({'a': 1, 'b': 2}, options: SignalOptions(name: 'items'));

@override
void initState() {
Expand Down
9 changes: 6 additions & 3 deletions packages/flutter_solidart/example/lib/pages/resource.dart
Expand Up @@ -12,13 +12,16 @@ class ResourcePage extends StatefulWidget {
}

class _ResourcePageState extends State<ResourcePage> {
final userId = Signal(1);
final userId = Signal(1, options: SignalOptions(name: 'userId'));

late final user = Resource(fetcher: fetchUser, source: userId);
late final user = Resource(
fetcher: fetchUser,
source: userId,
options: ResourceOptions(name: 'user'));

late final userHairColor = user.select((data) {
return jsonDecode(data)['hair_color'] as String;
});
}, name: 'userHairColor');

Future<String> fetchUser() async {
// simulating a delay to mimic a slow HTTP request
Expand Down
Expand Up @@ -13,7 +13,7 @@ class SetSignalPage extends StatefulWidget {
}

class _SetSignalPageState extends State<SetSignalPage> {
final items = SetSignal({1, 2});
final items = SetSignal({1, 2}, options: SignalOptions(name: 'items'));

@override
void initState() {
Expand Down
3 changes: 2 additions & 1 deletion packages/flutter_solidart/example/lib/pages/show.dart
Expand Up @@ -10,7 +10,8 @@ class ShowPage extends StatefulWidget {
}

class _ShowPageState extends State<ShowPage> {
final loggedIn = Signal(false);
final loggedIn =
Signal<bool>(false, options: SignalOptions(name: 'loggedIn'));

@override
Widget build(BuildContext context) {
Expand Down
2 changes: 1 addition & 1 deletion packages/flutter_solidart/example/pubspec.yaml
Expand Up @@ -36,7 +36,7 @@ dependencies:
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.2
flutter_solidart: ^1.6.1
flutter_solidart: ^1.7.0

dev_dependencies:
flutter_test:
Expand Down
4 changes: 2 additions & 2 deletions packages/flutter_solidart/pubspec.yaml
@@ -1,6 +1,6 @@
name: flutter_solidart
description: A simple State Management solution for Flutter applications inspired by SolidJS
version: 1.6.1
version: 1.7.0
repository: https://github.com/nank1ro/solidart
documentation: https://docs.page/nank1ro/solidart~dev
topics:
Expand All @@ -16,7 +16,7 @@ dependencies:
flutter:
sdk: flutter
meta: ^1.9.1
solidart: ^1.4.1
solidart: ^1.5.0

dev_dependencies:
flutter_test:
Expand Down
4 changes: 4 additions & 0 deletions packages/solidart/CHANGELOG.md
@@ -1,3 +1,7 @@
## 1.5.0

- **FEAT**: Add DevTools extension to solidart.

## 1.4.1

- **BUGFIX**: The method `didUpdateSignal` of `SolidartObserver` was not triggered for collections.
Expand Down
6 changes: 6 additions & 0 deletions packages/solidart/README.md
Expand Up @@ -170,3 +170,9 @@ ResourceBuilder(

The `on` method forces you to handle all the states of a Resource (_ready_, _error_ and _loading_).
The are also other convenience methods to handle only specific states.

## DevTools

<img src="https://raw.githubusercontent.com/nank1ro/solidart/main/assets/devtools.png" height="800">

You can debug your application using the Solidart DevTools extension and filter your signals.
1 change: 1 addition & 0 deletions packages/solidart/extension/devtools/.pubignore
@@ -0,0 +1 @@
!./build
4 changes: 4 additions & 0 deletions packages/solidart/extension/devtools/config.yaml
@@ -0,0 +1,4 @@
name: solidart
issueTracker: https://github.com/nank1ro/solidart/issues
version: 0.0.1
materialIconCodePoint: "0xf0249"
13 changes: 8 additions & 5 deletions packages/solidart/lib/src/core/core.dart
@@ -1,22 +1,25 @@
import 'dart:async';
import 'dart:collection';
import 'dart:convert';
import 'dart:developer' as dev;
import 'dart:math';

import 'package:collection/collection.dart';
import 'package:meta/meta.dart';
import 'package:solidart/src/utils.dart';

part 'atom.dart';
part 'collections/list.dart';
part 'collections/map.dart';
part 'collections/set.dart';
part 'computed.dart';
part 'config.dart';
part 'derivation.dart';
part 'devtools.dart';
part 'effect.dart';
part 'reactive_context.dart';
part 'read_signal.dart';
part 'resource.dart';
part 'signal.dart';
part 'signal_options.dart';
part 'signal_base.dart';
part 'collections/list.dart';
part 'collections/set.dart';
part 'collections/map.dart';
part 'config.dart';
part 'signal_options.dart';

0 comments on commit 90fce16

Please sign in to comment.