mirror of
https://github.com/flutter/samples.git
synced 2025-11-08 22:09:06 +00:00
Flutter 3.29 beta (#2571)
This commit is contained in:
@@ -16,21 +16,17 @@ main() async {
|
||||
print(json.encode({'firstFrame': analyzer.onFirstFrame.value}));
|
||||
});
|
||||
analyzer.onFirstPaint.addListener(() {
|
||||
print(json.encode({
|
||||
'firstPaint': analyzer.onFirstPaint.value?.$1,
|
||||
'firstContentfulPaint': analyzer.onFirstPaint.value?.$2,
|
||||
}));
|
||||
print(
|
||||
json.encode({
|
||||
'firstPaint': analyzer.onFirstPaint.value?.$1,
|
||||
'firstContentfulPaint': analyzer.onFirstPaint.value?.$2,
|
||||
}),
|
||||
);
|
||||
});
|
||||
analyzer.onAdditionalFrames.addListener(() {
|
||||
print(json.encode({
|
||||
'additionalFrames': analyzer.onAdditionalFrames.value,
|
||||
}));
|
||||
print(json.encode({'additionalFrames': analyzer.onAdditionalFrames.value}));
|
||||
});
|
||||
runApp(
|
||||
WebStartupAnalyzerSample(
|
||||
analyzer: analyzer,
|
||||
),
|
||||
);
|
||||
runApp(WebStartupAnalyzerSample(analyzer: analyzer));
|
||||
}
|
||||
|
||||
class WebStartupAnalyzerSample extends StatelessWidget {
|
||||
@@ -102,12 +98,14 @@ class _WebStartupAnalyzerScreenState extends State<WebStartupAnalyzerScreen> {
|
||||
),
|
||||
if (widget.analyzer.firstPaint != null)
|
||||
TimingWidget(
|
||||
name: 'First paint',
|
||||
timingMs: widget.analyzer.firstPaint!),
|
||||
name: 'First paint',
|
||||
timingMs: widget.analyzer.firstPaint!,
|
||||
),
|
||||
if (widget.analyzer.firstContentfulPaint != null)
|
||||
TimingWidget(
|
||||
name: 'First contentful paint',
|
||||
timingMs: widget.analyzer.firstContentfulPaint!),
|
||||
name: 'First contentful paint',
|
||||
timingMs: widget.analyzer.firstContentfulPaint!,
|
||||
),
|
||||
if (widget.analyzer.additionalFrames != null) ...[
|
||||
for (var i in widget.analyzer.additionalFrames!)
|
||||
TimingWidget(name: 'Frame', timingMs: i.toDouble()),
|
||||
@@ -130,11 +128,7 @@ class TimingWidget extends StatelessWidget {
|
||||
final String name;
|
||||
final double timingMs;
|
||||
|
||||
const TimingWidget({
|
||||
super.key,
|
||||
required this.name,
|
||||
required this.timingMs,
|
||||
});
|
||||
const TimingWidget({super.key, required this.name, required this.timingMs});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
||||
@@ -3,7 +3,7 @@ description: "flutter_web_startup_analyzer example"
|
||||
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
||||
version: 1.0.0+1
|
||||
environment:
|
||||
sdk: ^3.5.0
|
||||
sdk: ^3.7.0-0
|
||||
flutter: ^3.16.0
|
||||
dependencies:
|
||||
flutter:
|
||||
|
||||
@@ -16,7 +16,7 @@ class FrameAnalyzer {
|
||||
List<int> additionalFrameTimes = [];
|
||||
|
||||
FrameAnalyzer(this._binding, {this.additionalFrames = 10})
|
||||
: _remainingFrames = additionalFrames;
|
||||
: _remainingFrames = additionalFrames;
|
||||
|
||||
Future<void> captureAdditionalFrames() {
|
||||
_binding.addTimingsCallback(_timingsCallback);
|
||||
|
||||
@@ -52,9 +52,11 @@ class WebStartupAnalyzer extends WebStartupAnalyzerBase {
|
||||
List<int>? get additionalFrames => _additionalFrames;
|
||||
|
||||
WebStartupAnalyzer({int additionalFrameCount = 5})
|
||||
: _widgetsBinding = WidgetsFlutterBinding.ensureInitialized() {
|
||||
_frameAnalyzer =
|
||||
FrameAnalyzer(_widgetsBinding, additionalFrames: additionalFrameCount);
|
||||
: _widgetsBinding = WidgetsFlutterBinding.ensureInitialized() {
|
||||
_frameAnalyzer = FrameAnalyzer(
|
||||
_widgetsBinding,
|
||||
additionalFrames: additionalFrameCount,
|
||||
);
|
||||
_captureStartupMetrics();
|
||||
startupTiming = {
|
||||
'domContentLoaded': domContentLoaded,
|
||||
@@ -76,8 +78,11 @@ class WebStartupAnalyzer extends WebStartupAnalyzerBase {
|
||||
_additionalFrames = value;
|
||||
onAdditionalFrames.value = value;
|
||||
});
|
||||
onChange =
|
||||
Listenable.merge([onFirstFrame, onFirstPaint, onAdditionalFrames]);
|
||||
onChange = Listenable.merge([
|
||||
onFirstFrame,
|
||||
onFirstPaint,
|
||||
onAdditionalFrames,
|
||||
]);
|
||||
}
|
||||
|
||||
_captureStartupMetrics() {
|
||||
|
||||
@@ -3,7 +3,7 @@ description: "Captures web startup timing data in a Flutter web app"
|
||||
version: 0.1.0-wip
|
||||
|
||||
environment:
|
||||
sdk: ^3.5.0
|
||||
sdk: ^3.7.0-0
|
||||
flutter: ^3.16.0
|
||||
|
||||
dependencies:
|
||||
|
||||
Reference in New Issue
Block a user