deeplink validation tool is a hybrid tool, since some of the validation would require a running application. For example, we want to know if a deeplink can be handled on the dart side, it need to be able to run the app directly.
Suggestion was deleted
Show more
Show less
Comment details cannot be verified
Chun-Heng Tai
Jun 23, 2023
Approver
Also some of the code I have already put into place is going through vm services, but essentially, they are just running cli command and parse the output. So it doesn't really need a running instance. How would these static tool communicate with the project if there isn't a vmserivce?
Reply was deleted
Show more
Show less
Comment details cannot be verified
1 reply
New
Polina Cherkasova
May 24, 2023
Approver
Should we show tabs grayed, when they are unavailable?
Otherwise magically appearing/disappearing tabs will be confusing for user.
May be we want to show them by groups in the list, to create ultimate clarity:
----------------------------------- Memory
-- Require connected app --- Performance ...
-- Require connected app with VM --
... -----------------------------------
Suggestion was deleted
Show more
Show less
Comment details cannot be verified
Tao Dong
May 25, 2023
Approver
I share the same concern about having tabs appear and disappear automatically. We could potentially provide a toggle button for hiding/unhiding inactive tools and the setting can be persistent across sessions.
Reply was deleted
Show more
Show less
Comment details cannot be verified
Kenzie Davisson
May 30, 2023
Approver
At some point we did show all the tabs at all times, but decided against that in favor of showing only tabs that are available for the connected application. For example, it's odd for a Dart CLI app to connect to DevTools and then the user sees the "Flutter Inspector" tab. Or for a Dart web app to connect to DevTools and see a bunch of tabs that aren't actually available (like the CPU profiler and Memory tabs).
Reply was deleted
Show more
Show less
Comment details cannot be verified
2 replies
New
Ben Konyi
May 24, 2023
Approver
If this means loading a saved snapshot from disk vs continuing to display the most recent snapshot after disconnecting from a VM service, I think it makes sense to display them as static tabs.
Suggestion was deleted
Show more
Show less
Comment details cannot be verified
Tao Dong
May 25, 2023
Approver
@kenzieschmoll@google.com Wouldn't we consider Performance and CPU profilers "hybrid tooling" according to the definition earlier in the doc?
Reply was deleted
Show more
Show less
Comment details cannot be verified
Kenzie Davisson
May 25, 2023
Approver
Their static use case would be one button with some text: "Upload a snapshot to analyze performance data, or connect to a running application".
Do you think we want to show the whole screen for this or accomplish this with a single "upload" / "open" type button at the top of devtools with the other actions? In the future when more DevTools screens have offline support, this would mean we are showing a lot of tabs and screens that may only have a one button static use case.
Reply was deleted
Show more
Show less
Comment details cannot be verified
2 replies
New
Tao Dong
May 25, 2023
Approver
We did some exploration on an "overview page" in the past, maybe we can revisit that work. Here are links to artifacts: go/flutter-dart-devtools-overview-ux, go/dart-devtools-overview-study.
I think the homepage can be a good place to show what tools are available and when to use which one. If there's live data, showing a summary from each tool could be useful for monitoring purposes.
Suggestion was deleted
Show more
Show less
Comment details cannot be verified
Kenzie Davisson
May 25, 2023
Approver
"I think the homepage can be a good place to show what tools are available"
Would this be redundant if we always show the tab bar? The available tools at that point would be the tabs that are present.
Reply was deleted
Show more
Show less
Comment details cannot be verified
Tao Dong
May 26, 2023
Approver
The homepage could show a brief description and maybe some visuals about each tool to help the user understand what's in DevTools and when they should go to each tab. It could also include tabs that are not active at the moment and let users know what is needed to activate them.
Reply was deleted
Show more
Show less
Comment details cannot be verified
2 replies
New
Danny Tuppeny
May 25, 2023
Approver
We might need to think about this experience when there may be multiple debug sessions in the IDE. For example I could launch my app on multiple devices at he same time, but we (presumably) only have one sidebar panel for each page.
VS Code's debug toolbar has a drop-down to select a debug session when there are multiple, and we can react to that - but I don't know if will be obvious enough if we use that (and it may be odd if the user triggers a breakpoint in one app - which changes the active debug session - and it automatically changes the embedded DevTools windows?)
Suggestion was deleted
Show more
Show less
Comment details cannot be verified
Kenzie Davisson
May 25, 2023
Approver
This raises the question to me, should DevTools support debugging multiple app connections at the same time, with a similar app connection selector experience? If we were able to serialize the devtools state for later loading, we could restore data when a user is switching between app connections instead of destroying what they are currently looking at and connecting to a new app.
This would be non-trivial work, but could be worth considering. Another option is to assume that, if a user manually switches app connections, they are okay with their devtools state being changed as well. However for the breakpoint triggered case, I'm not sure what the best solution would be there. Maybe a little popup over their current tool that says "you are about to switch to another application - continue - do not switch".
Reply was deleted
Show more
Show less
Comment details cannot be verified
Danny Tuppeny
May 26, 2023
Approver
Yeah, that could work. So VS Code could tell DevTools whenever the active debug session changes, and DevTools can handle switching (or prompting the user, or whatever).
It might be useful for VS Code to provide DevTools with the debug session names because in the case of multiple devices these will likely have the device name in them. If a user is running their app on both Android and iOS, and chooses not to let DevTools switch (so that the embedded inspector is not showing the same debug session that VS Code has selected), having some visible label making that clear would be useful.
(right now, we don't actually have a way for VS Code to tell DevTools about a new debug session at all, because we'd open a new editor tab for it - so we'd need to define how we'd do this)
Reply was deleted
Show more
Show less
Comment details cannot be verified
Kenzie Davisson
May 26, 2023
Approver
One big blocker here is how we'd support this if DevTools was started from Flutter tools, in which case it is tightly coupled to the app that Flutter tools launched with `flutter run`.
Reply was deleted
Show more
Show less
Comment details cannot be verified
Danny Tuppeny
May 27, 2023
Approver
Isn't all of this only applicable when embedded in the IDE (in which case it would always be the IDEs standalone version)?
Reply was deleted
Show more
Show less
Comment details cannot be verified
4 replies
New
You're suggesting
Gemini created these notes. They can contain errors so should be double-checked. How Gemini takes notes
Drag image to reposition
11
10
9
8
7
6
5
4
3
2
1
1
2
3
4
5
6
7
8
9
10
Outline
Outline
Document tabs
Static Tooling in DevTools (PUBLICLY SHARED)
5
Headings you add to the document will appear here.
SUMMARY
WHAT PROBLEM IS THIS SOLVING?
BACKGROUND
Audience
Glossary
Non-goals
OVERVIEW
USAGE EXAMPLES
DETAILED DESIGN/DISCUSSION
Connection state discoverability
Static Tooling
“Hybrid” Tooling
Runtime Tooling
DevTools Tab Bar
Embedding in IDEs
What about static tools that don’t need their own DevTools tab?