Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lesnitsky/fps_jank_flash_widget
🟥 A flutter widget that flashes when flutter fails to render a frame in a certain timeframe
https://github.com/lesnitsky/fps_jank_flash_widget
flutter performance-monitoring
Last synced: about 2 months ago
JSON representation
🟥 A flutter widget that flashes when flutter fails to render a frame in a certain timeframe
- Host: GitHub
- URL: https://github.com/lesnitsky/fps_jank_flash_widget
- Owner: lesnitsky
- License: mit
- Created: 2022-03-29T16:56:47.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-08-23T17:34:16.000Z (about 1 year ago)
- Last Synced: 2024-07-08T17:49:14.998Z (2 months ago)
- Topics: flutter, performance-monitoring
- Language: C++
- Homepage: https://pub.dev/packages/fps_jank_flash_widget
- Size: 194 KB
- Stars: 37
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# FPS Jank Flash widget
A flutter widget that flashes when flutter fails to render a frame in a certain timeframe
[![lesnitsky.dev](https://lesnitsky.dev/icons/shield.svg?hash=96)](https://lesnitsky.dev?utm_source=fps_jank_flash_widget)
[![GitHub stars](https://img.shields.io/github/stars/lesnitsky/fps_jank_flash_widget.svg?style=social)](https://github.com/lesnitsky/fps_jank_flash_widget)
[![Twitter Follow](https://img.shields.io/twitter/follow/lesnitsky_dev.svg?label=Follow%20me&style=social)](https://twitter.com/lesnitsky_dev)## Installation
```sh
flutter pub add fps_jank_flash_widget
flutter packages get
```## Usage
```dart
import 'package:fps_jank_flash_widget/fps_jank_flash_widget.dart';void main() {
const frameBudget = Duration(milliseconds: 17); // 60 fps
FPSJankFlash.frameBudget = frameBudget;runApp(FPSJankFlash.overlay(child: const MyApp()));
}
````FPSJankFlash` could be used directly:
```dart
import 'package:fps_jank_flash_widget/fps_jank_flash_widget.dart';class SomeWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Stack(
children: [
Column(
children: [
/// ... your widgets,
],
),
const FPSJankFlash(),
]
);
}
}
```You can also use a `JankObserver`:
```dart
import 'package:fps_jank_flash_widget/fps_jank_flash_widget.dart';void main() {
JankObserver.addListener(() {
print('jank detected');
});runApp(YourApp());
}
```If you're testing the app on a higher refresh rate displays, override the frame duration budget:
```dart
import 'package:fps_jank_flash_widget/fps_jank_flash_widget.dart';void main() {
const refreshRate = 120;
final budgetMs = 1000 ~/ refreshRate;
FPSJankFlash.frameBudget = Duration(milliseconds: budgetMs);runApp(FPSJankFlash.overlay(child: const MyApp()));
}
```## License
MIT
[![lesnitsky.dev](https://lesnitsky.dev/icons/shield.svg?hash=96)](https://lesnitsky.dev?utm_source=fps_jank_flash_widget)
[![GitHub stars](https://img.shields.io/github/stars/lesnitsky/fps_jank_flash_widget.svg?style=social)](https://github.com/lesnitsky/fps_jank_flash_widget)
[![Twitter Follow](https://img.shields.io/twitter/follow/lesnitsky_dev.svg?label=Follow%20me&style=social)](https://twitter.com/lesnitsky_dev)