[rfw] Remote Flutter Widgets package#452
Conversation
57a08b1 to
4d99d31
Compare
|
For review purposes I have split this into two commits, one containing mostly only boilerplate from |
8c21d72 to
70cc385
Compare
|
For anything you want to temporarily exclude on stable, in .cirrus.yml replace: with: (We don't need to do this often enough to have built this ability into the tool; if it becomes an issue we certainly could.) |
41e7ca0 to
a880f22
Compare
|
What are the intended use cases for this package? |
|
@chgibb does the README in the PR provide any illumination? https://github.com/flutter/packages/blob/8cb0765ae57775abfc3fa167e29fc2bd33ff544c/packages/rfw/README.md |
|
Thanks for pointing that out! Indeed it does. It looks like the |
|
Yes, this package's goal is just declarative UI. Imperative scripting is a problem already solved by other technologies, such as JavaScript, Wasm, or Lua. Or Dart, in principle, though in practice today we don't have a good way to execute arbitrary Dart dynamically at runtime on phones. |
|
Enabling this kind of out of band functionality is something I am enthralled with. If you can point me to design documents, blogs or other content digging into the motivations for a first-party package like |
|
@chgibb All the documentation is in the PR itself (there's extensive dartdocs, the README, and four examples). This was just an experiment, there wasn't really a motivating factor beyond my playing with what we could do in the space of server-driven UIs, which is something people ask for occasionally (see the discussion of use cases in the README in the PR). If you have any specific questions I'm more than happy to answer them. :-) |
This package defines a format for describing Flutter widget trees in text or binary files that can be loaded dynamically at runtime. (This commit contains interesting new files for review; boilerplate files from `flutter create` et al are in the next commit.)
This package defines a format for describing Flutter widget trees in text or binary files that can be loaded dynamically at runtime. (This commit contains only boilerplate from flutter create et al.)
|
@dnfield I've added a commit which addresses the review comments found in: Hixie@8cb0765 |
dnfield
left a comment
There was a problem hiding this comment.
LGTM. None of my outstanding comments are blocking.
|
(I must admit I have not carefully reviewed every line of code, but I did try to look more at docs and surface API, as well as tests, which look good enough to get this going to me) |
| late final WasmFunction _dataFetcher; | ||
|
|
||
| Future<void> _loadLogic() async { | ||
| final DateTime expiryDate = DateTime.now().subtract(const Duration(hours: 6)); |
There was a problem hiding this comment.
https://en.wikipedia.org/wiki/Expiration_date#:~:text=expiry%20date is what I was going for.
|
Thanks @dnfield! |
* Allow for a global override of how color filtering is handled wrt to the cache, and allow individual widgets to opt in or out * update golden
This package defines a format for describing Flutter widget trees in
text or binary files that can be loaded dynamically at runtime.
Pre-launch Checklist
[shared_preferences]pubspec.yamlwith an appropriate new version according to the pub versioning philosophy.CHANGELOG.mdto add a description of the change.///).