Flutter catalog pages are generated by
sample_page.dart
Catalog generation steps:
1. Put formatted comment to the code.
2. Generate markdown file and codes for flutter driver.
• Render app's widgets one by one.
3. (Convert markdown file to HTML file and host it.) <=
managed by committers
Slide 13
Slide 13 text
Tail of flutter/examples/catalog/animated_list.dart
...
/*
Sample Catalog
Title: AnimatedList
Summary: An AnimatedList for displaying a list of cards that stay
in sync with an app-specific ListModel. When an item is added to or removed
from the model, the corresponding card animates in or out of view.
Description:
Tap an item to select it, tap it again to unselect. Tap '+' to insert at the
...
*/
Slide 14
Slide 14 text
Generated markdown
---
layout: page
title: "AnimatedListState Sample Apps"
permalink: /catalog/samples/AnimatedListState_index/
---
All of the sample apps listed here use the Flutter AnimatedListState class in an interesting way.
The Sample App Catalog page lists all of the sample apps.
...
Slide 15
Slide 15 text
Result
!
Slide 16
Slide 16 text
How to generate
$ git clone https://github.com/flutter/flutter.git
$ cd flutter/examples/catalog
$ ../../bin/flutter packages get
$ dart bin/sample_page.dart ${commit_hash}
$ ../../bin/flutter drive test_driver/screenshot.dart
Slide 17
Slide 17 text
Flutter Driver
"flutter drive" command runs apps on emulators or
devices.
Good to test apps performance.
Slide 18
Slide 18 text
Getting screenshots by Flutter
Driver
screenshot_test.dart
driver = await FlutterDriver.connect();
...
await driver.waitUntilNoTransientCallbacks();
final List pixels = await driver.screenshot();
final File file = new File(path);
await file.writeAsBytes(pixels);
print('wrote $file');
await driver.tap(find.byValueKey('screenshotGestureDetector'));
Slide 19
Slide 19 text
Screenshots in Flutter
• 2 usage of sceenshots
• Golden file testing
• Catalog / Styleguide / Previews on Store
• Use "matchesGoldenFile" for golden files testing
• Use "driver.screenshot()" for catalog generation
• sample_page.dart is good reference.