Devtools - Performance tools for Flutter

Related tags

Templates devtools
Overview

Dart & Flutter DevTools

Build Status

What is this?

Dart & Flutter DevTools is a suite of performance tools for Dart and Flutter.

Getting started

For documentation on installing and trying out DevTools, please see our docs.

Contributing and development

Contributions welcome! See our contributing page for an overview of how to build and contribute to the project.

Terms and Privacy

By using Dart DevTools, you agree to the Google Terms of Service. To understand how we use data collected from this service, see the Google Privacy Policy.

Comments
  • Dart Devtools not working after update.

    Dart Devtools not working after update.

    This morning when I run Devtools I got an updating message and after update DevTools opened but shows nothing. this is my Devtools URL = http://127.0.0.1:9100/#?hide=debugger&ide=VSCode&theme=dark&uri=http%3A%2F%2F127.0.0.1%3A49683%2F7P9jVJjp0SU%3D%2F&page=inspector

    My Flutter version is 1.19.0-4.1.pre My Dart version is 2.9.0 (build 2.9.0-14.1.beta).

    bug 
    opened by azad47808 64
  • Switch to using Path URL Strategy

    Switch to using Path URL Strategy

    This changes the app to use the PageUrlStrategy in Flutter, which means URLs will just be standard like /foo instead of being added to the fragment like /#/foo.

    @kenzieschmoll this seems to work well from my testing, including from VS Code (with a small tweak I'll ship in the next week or so), although I'm not certain there aren't pages with unusual navigation I may have missed.

    Some things I'm not certain but should be checked before merging though"

    • [x] It doesn't affect IntelliJ/Android Studio negatively (VS Code requires a change because it's over-encoding or URLs was causing issues here)
    • [ ] It doesn't affect anyone not using defaultHandler in the server... I've had to extend defaultHandler to be able to serve up index.html when a request comes in for something like /memory, because although navigations are usually done client-side, it's possible that the user hits Refresh or we try to launch directly on to a page which will now send /page_id to the server instead of just / which won't otherwise get the contents of index.html to launch the Flutter app.
    • [x] Survey parsing may need updating

    I'm not sure who best knows the answer to these questions though.

    Fixes #2475.

    opened by DanTup 55
  • I can build the app, but I get the following error: Invalid argument(s): A directory corresponding to fileSystemPath

    I can build the app, but I get the following error: Invalid argument(s): A directory corresponding to fileSystemPath "/Users/develien/.pub-cache/hosted/pub.dartlang.org/devtools-2.9.2/build" could not be found

    Invalid argument(s): A directory corresponding to fileSystemPath "/Users/develien/.pub-cache/hosted/pub.dartlang.org/devtools-2.9.2/build" could not be found

    There seems to be a problem with the 2.9.2 commit as there were no problems until yesterday.

    opened by kyudongDev 41
  • Unable to inspect response bodies on Network page

    Unable to inspect response bodies on Network page

    As described at the Flutter 1.22 announcement - Updated Network Page in DevTools, we should be able to inspect network calls after getting the newest flutter version using flutter upgrade, but I'm not able to locate/use the feature.

    I'm currently running devtools 0.9.2, so I tried to force the update to the latest release by running pub global activate devtools 0.9.3 but it fails trying to resolve dependencies:

    Because devtools >=0.9.3 depends on devtools_shared 0.9.3 which doesn't match any versions, devtools >=0.9.3 is forbidden.
    So, because pub global activate depends on devtools 0.9.3, version solving failed.
    pub finished with exit code 1
    

    You can check the same error on pub.dev here https://pub.dev/documentation/devtools/0.9.3/log.txt

    So what I tried instead was to clone this repo and build from v0.9.3 tag and master branch. In both cases the build passes fine, but again the feature doesn't seem to be there. Every request on the Network page never completes, so no Response tab appears and Header sections are empty.

    While running the app in debug mode one of the exceptions shown was this one:

    Error: Assertion failed: file:///.../devtools/packages/devtools_app/lib/src/http/http_request_data.dart:62:16
    requestEndEvent == null
    is not true
        at Object.throw_ [as throw] (http://localhost:63874/dart_sdk.js:4333:11)
        at Object.assertFailed (http://localhost:63874/dart_sdk.js:4276:15)
        at Function.fromTimeline (http://localhost:63874/packages/devtools_app/src/ui/gtags.dart.lib.js:68892:48)
        at network_controller.NetworkController.new.processNetworkTrafficHelper
        (http://localhost:63874/packages/devtools_app/src/ui/gtags.dart.lib.js:69224:61)
        at network_controller.NetworkController.new.processNetworkTraffic
        (http://localhost:63874/packages/devtools_app/src/ui/gtags.dart.lib.js:69254:36)
        at network_service.NetworkService.new.refreshNetworkData
        (http://localhost:63874/packages/devtools_app/src/ui/gtags.dart.lib.js:68569:32)
        at refreshNetworkData.next (<anonymous>)
        at http://localhost:63874/dart_sdk.js:37669:33
        at _RootZone.runUnary (http://localhost:63874/dart_sdk.js:37523:58)
        at _FutureListener.thenAwait.handleValue (http://localhost:63874/dart_sdk.js:32497:29)
        at handleValueCallback (http://localhost:63874/dart_sdk.js:33044:49)
        at Function._propagateToListeners (http://localhost:63874/dart_sdk.js:33082:17)
        at _Future.new.[_completeWithValue] (http://localhost:63874/dart_sdk.js:32925:23)
        at async._AsyncCallbackEntry.new.callback (http://localhost:63874/dart_sdk.js:32947:35)
        at Object._microtaskLoop (http://localhost:63874/dart_sdk.js:37784:13)
        at _startMicrotaskLoop (http://localhost:63874/dart_sdk.js:37790:13)
        at http://localhost:63874/dart_sdk.js:33299:9
    

    Relevant information from flutter doctor

    [✓] Flutter (Channel stable, 1.22.0, on Mac OS X 10.15.6 19G2021)
        • Flutter version 1.22.0
        • Framework revision d408d302e2 (2 days ago), 2020-09-29 11:49:17 -0700
        • Engine revision 5babba6c4d
        • Dart version 2.10.0
    

    Is this feature not ready yet, despite the announcement and PR #2374 / Issue #2335 being closed, or am I missing something?

    network page 
    opened by gustavogamino 40
  • Enable layout explorer in widget inspector on web platform

    Enable layout explorer in widget inspector on web platform

    We are publishing new version of dwds that now supports VMService.evaluate() for dart expressions. Widget inspector will work with this version when dwds is updated in flutter, so it would be great to enable it in devtools at the same time.

    See: https://github.com/dart-lang/webdev/pull/1285

    opened by annagrin 37
  • Flutter inspector bugging out/freezing in Visual Studio Code

    Flutter inspector bugging out/freezing in Visual Studio Code

    Today was the first day I came across this issue with flutter widget inspector. When you click "Select Widget Mode" then select an element, it will freeze, and this inception-like view will occur:

    Screen Shot 2020-12-30 at 2 19 09 PM

    In addition, if you just resize this window in Visual Studio code, the Widget Inspector view goes blank:

    Screen Shot 2020-12-30 at 2 26 49 PM

    I've almost lost an entire day of development because of this stupid bug. I even tried using a different computer and its still happening.

    I have a feeling something got updated automatically and broke things. Does anyone have any idea why this is occurring? It was working so well then all the sudden today it decided to break. I tried the simulator (iOS and android) and device, no luck.

    vs-code 
    opened by joshoconnor89 33
  • getDartDevelopmentServiceVersion Method not found

    getDartDevelopmentServiceVersion Method not found

    Good day.

    When I click on the Dev Tools button, a disconnect occurs. I tried:

    • to run ios and android in VS Code
    • to run android in android studio
    • Reinstalled dart
    • Flutter clean
    • Removed app from device

    How to solve this problem?

    Thanks

    Installed extensions in VS Code: Flutter 3.19.0 Dart 3.19.1

    [✓] Flutter (Channel stable, 1.22.6, on Mac OS X 10.15.7 19H2 darwin-x64, locale en-RU)
        • Flutter version 1.22.6 at /Users/yauheni.prakapenka/flutter
        • Framework revision 9b2d32b605 (7 days ago), 2021-01-22 14:36:39 -0800
        • Engine revision 2f0af37152
        • Dart version 2.10.5
    
    [✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
        • Android SDK at /Users/yauheni.prakapenka/Library/Android/sdk
        • Platform android-30, build-tools 30.0.3
        • ANDROID_HOME = /Users/yauheni.prakapenka/Library/Android/sdk
        • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
        • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
        • All Android licenses accepted.
    
    [✓] Xcode - develop for iOS and macOS (Xcode 12.2)
        • Xcode at /Applications/Xcode.app/Contents/Developer
        • Xcode 12.2, Build version 12B45b
        • CocoaPods version 1.8.4
    
    [✓] Android Studio (version 4.1)
        • Android Studio at /Applications/Android Studio.app/Contents
        • Flutter plugin installed
        • Dart plugin version 201.9317
        • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    
    [✓] IntelliJ IDEA Community Edition (version 2020.3.2)
        • IntelliJ at /Applications/IntelliJ IDEA CE.app
        • Flutter plugin installed
        • Dart plugin version 203.6912
    
    [✓] VS Code (version 1.52.1)
        • VS Code at /Applications/Visual Studio Code.app/Contents
        • Flutter extension version 3.19.0
    
    [✓] Connected device (1 available)
        • AOSP on IA Emulator (mobile) • emulator-5554 • android-x86 • Android 9 (API 28) (emulator)
        ! Error: iPhone Xr is not connected. Xcode will continue when iPhone Xr is connected. (code -13)
    

    Screenshot 01-30-2021 11 08 15

    opened by yauheniprakapenka 30
  • Switch to new routing/pages APIs

    Switch to new routing/pages APIs

    This switches away from onGenerateRoute and friends and instead returns Pages and uses RouterDelegate+RouteInformationParser to control the pages we display (and persist them in the address bar).

    All tests are passing, though I had two make some changes (see my comments below) that may/may not be correct.

    I've manually tested all the bits I can think of (including things like disconnecting/reconnecting), though I'm not confident I haven't missed something (for example I'm less familiar with the snapshot pages etc.).

    Fixes #1725.

    opened by DanTup 26
  • Dev tools unable to connect to VM service via HTTPS

    Dev tools unable to connect to VM service via HTTPS

    When dev-tools are launched from within VSCode they try connecting to the Flutter app via an HTTPS connection but fails to do so. Only when I manually change the URL to one with HTTP does it work. image

    opened by bh0mbalziyad 26
  • DevTools problem:  an infinite loop problem freezes the app

    DevTools problem: an infinite loop problem freezes the app

    devtoollllllllllllllllll

    DevTools does no longer work, it freeze the app at that step when trying to connect:

    {"event":"app.started","params":{"appId":"7cce3816-01c7-414d-88d2-b4c66aa9e919"}}] [{"id":0,"result":{"value":"android","type":"_extensionType","method":"ext.flutter.platformOverride"}}] [{"id":1,"result":{"timeDilation":"1.0","type":"_extensionType","method":"ext.flutter.timeDilation"}}] [{"id":2,"result":{"enabled":"false","type":"_extensionType","method":"ext.flutter.debugPaint"}}] [{"id":3,"result":{"enabled":"false","type":"_extensionType","method":"ext.flutter.debugPaintBaselinesEnabled"}}] [{"id":4,"result":{"enabled":"false","type":"_extensionType","method":"ext.flutter.repaintRainbow"}}] [{"id":5,"result":{"enabled":"false","type":"_extensionType","method":"ext.flutter.showPerformanceOverlay"}}] [{"id":6,"result":{"enabled":"true","type":"_extensionType","method":"ext.flutter.debugAllowBanner"}}] [{"id":7,"result":{"enabled":"false","type":"_extensionType","method":"ext.flutter.inspector.structuredErrors"}}] [{"id":8,"result":{"enabled":"false","type":"_extensionType","method":"ext.flutter.inspector.show"}}] [{"id":9,"result":{"enabled":"false","type":"_extensionType","method":"ext.flutter.inspector.trackRebuildDirtyWidgets"}}] [{"id":10,"result":{"enabled":"false","type":"_extensionType","method":"ext.flutter.inspector.trackRepaintWidgets"}}] [{"id":11,"result":{"enabled":"true","type":"_extensionType","method":"ext.flutter.inspector.structuredErrors"}}] [{"id":12,"result":{"enabled":"false","type":"_extensionType","method":"ext.flutter.inspector.trackRebuildDirtyWidgets"}}] [{"id":13,"result":{"enabled":"false","type":"_extensionType","method":"ext.flutter.inspector.trackRepaintWidgets"}}]

    It does not open the link!

    An Observatory debugger and profiler on sdk gphone x86 is available at: http://127.0.0.1:61814/UNYPG_eq9Qg=/ The Flutter DevTools debugger and profiler on sdk gphone x86 is available at: http://127.0.0.1:9108?uri=http%3A%2F%2F127.0.0.1%3A61814%2FUNYPG_eq9Qg%3D%2F

    It does not open the link!

    the loading goes on and on

    Could you help?

    waiting for customer response 
    opened by benedicte69 24
  • Support Firefox

    Support Firefox

    I'd really like to be able to use my browser of choice, Firefox, with Flutter's DevTools.

    (Not only that, but I'd also appreciate if web projects in general weren't tied to specific browsers — it hurts web standards and I'd hate another IE-like situation where standards don't matter.)

    opened by 12people 24
  • Show/hide chart on memory page.

    Show/hide chart on memory page.

    Apply some improvements discussed in go/devtools-memory-coltrolpane-ux:

    1. Show/hide chart
    2. Move chart related controls to the right of chart area
    3. Do not display top border of the charts (was not discussed but seems right)
    opened by polina-c 0
  • Clarify which frame raster stats correspond to

    Clarify which frame raster stats correspond to

    When the Raster Stats tab is selected, it is not clear which frame the raster stats are for. We could include the frame # in the UI and or show "Now raster stats for current frame" if a frame without raster stats is selected.

    performance page 
    opened by jacob314 0
  • Layout and Build times don't add up

    Layout and Build times don't add up

    Here the frame took 160ms but build+layout is over 300ms. Looking at the timeline, It seems like the value for build is calculated incorrectly or the two times can overlap due to cascading builds and layouts and we need to factor that into the UI to not double count.

    Screen Shot 2022-09-23 at 9 02 19 AM Screen Shot 2022-09-23 at 9 03 01 AM

    Repro json file. dart_devtools_2022-09-23_09:03:04.681.json.txt

    bug performance page 
    opened by jacob314 0
  • Enable `Objects` tab and cleanup `VM Tools` screens

    Enable `Objects` tab and cleanup `VM Tools` screens

    This change enables the object inspector / program explorer view under the VM Tools tab.

    This change also updates VMInfoCard to not use a backing Card to make the UI of VM Tools views more consistent with the rest of DevTools.

    Example before VMInfoCard UI change: image

    Example after VMInfoCard UI change:

    image

    opened by bkonyi 0
  • Add support for inspecting objects in an isolate's object store

    Add support for inspecting objects in an isolate's object store

    The object store is used to provide easy and cheap access to important VM objects within the VM. Examples of objects stored in the object store include:

    • Code stubs (e.g., allocation paths, async/await machinery)
    • References to core classes (e.g., Null, Object, Never)
    • Common type arguments (e.g., <String, dynamic>)
    • References to frequently accessed fields / functions (e.g., _objectEquals(), _Enum._name)
    • Cached, per-isolate data (e.g., library URI mappings)

    The object store is considered one of the GC roots by the VM's garbage collector, meaning that objects in the store will be considered live, even if they're not referenced anywhere else in the program.

    The Object Store tab under the Objects VM tooling tab allows for users to inspect elements contained within the object store, where they may not necessarily be reachable from the program explorer. Tapping a link to an object store entry will display the entry in the object viewport and, if present in the program explorer, mark the relevant VMServiceObjectNodes as selected.

    image

    opened by bkonyi 0
Releases(v0.9.2)
Owner
Flutter
Flutter is Google's UI toolkit for building beautiful, natively compiled applications for mobile, web, desktop, and embedded devices from a single codebase.
Flutter
Dart-ci-tools - A container image with flutter and various CI tools.

dart-ci-tools Container built from the official Dart image, with various CI tools written in Dart. Project Notes There are tools available to: deploy

null 1 Jan 12, 2022
Performance overlay for Flutter apps that works on web.

performance Performance overlay for Flutter apps that works on web. Repo structure This repo currently contains the following packages: Package Conten

null 23 Mar 23, 2022
PrestaShop Mobile Application - High Performance Flutter App

PrestaShop Mobile Application High performance mobile application developed with Flutter technology. Beside the performance and architecture the uniqu

Binshops 7 May 30, 2022
🦀🦀 High performance Crypto library of Rust implementation for Flutter

r_crypto Rust backend support crypto flutter library, much faster than Dart-implementation library, light-weight library. Some crypto support hardware

Tino 26 Jul 22, 2022
Fake Firebase Performance for use during Flutter unit & widget tests.

Fake Firebase Performance Fakes to write unit tests for apps using Firebase Performance monitoring. Instantiate a FakeFirebasePerformance, then pass i

Philipp Bauer 2 Apr 16, 2022
Write iOS&Android Code using Dart. This package liberates you from redundant glue code and low performance of Flutter Channel.

Dart_Native Dart_Native operates as both a code generator tool and a bridge to communicate between Dart and native APIs. Replaces the low-performing F

DartNative 868 Sep 23, 2022
Flutter project that shows how to work with ObjectBox - High Performance NoSQL Database.

Flutter ObjectBox Example Flutter project that shows how to work with ObjectBox - High Performance NoSQL Database. This project shows - how to persist

Sandip Pramanik 4 Sep 2, 2022
AI Library to create efficient Artificial Neural Networks. Computation uses SIMD (Single Instruction Multiple Data) to improve performance.

eneural_net eNeural.net / Dart is an AI Library for efficient Artificial Neural Networks. The library is portable (native, JS/Web, Flutter) and the co

null 19 Mar 11, 2022
A super effective dart library delivering performance & ensuring greater build speed.

A super effective Dart and Flutter library for delivering performante app ?? & ensuring greater build speed ?? . The package has some cook utilizes wh

Rexford Asamoah 2 Nov 22, 2021
Ozzie is your testing friend. Ozzie will take an screenshot during integration tests whenever you need. Ozzie will capture performance reports for you.

ozzie.flutter Ozzie is your testing friend. Ozzie will take an screenshot during integration tests whenever you need. Ozzie will capture performance r

Jorge Coca 41 Aug 22, 2022
A collection of useful algorithms in Dart with keeping performance and flexibility on mind.

algorithmic A collection of useful algorithms in Dart with keeping performance and flexibility on mind. Usage The following import will give you acces

Sudipto Chandra 6 Feb 15, 2022
[Flutter SDK V.2] - Youtube Video is a Flutter application built to demonstrate the use of Modern development tools with best practices implementation like Clean Architecture, Modularization, Dependency Injection, BLoC, etc.

[Flutter SDK V.2] - Youtube Video is a Flutter application built to demonstrate the use of Modern development tools with best practices implementation like Clean Architecture, Modularization, Dependency Injection, BLoC, etc.

R. Rifa Fauzi Komara 11 Aug 24, 2022
Redesign Unsplash Mobile Application with flutter tools.

flutter_splash Redesign Unsplash Mobile Application with flutter tools. About its open source application based Unsplash API for training Flutter , Di

pouya 1 Sep 5, 2021
A set of useful sliver tools that are missing from the flutter framework

sliver_tools A set of useful sliver tools that are missing from the flutter framework. Here is a taste what you can make using this package The struct

Pieter van Loon 372 Sep 22, 2022
A container image with flutter and various CI tools.

flutter-ci-tools A Docker container built from the cirrusci/flutter image, with various CI tools. Project Notes With the available tools you can: depl

null 1 Jan 12, 2022
A PC client to control mobiles by adb tools in Flutter.

mobile_controller A new Flutter project for PC to control mobiles by adb tool. Develop in progress, not release yet... Features Provide computer contr

Flukit 4 Mar 6, 2022
Provide powerfull tools to help you build your Flutter design system.

Provide powerfull tools to help you build your design system. About flutter_design contains packages to help you bootstrap your design system with a w

Min Zhao 17 Sep 13, 2022
Various eBay tools for Flutter development

Flutter Glove Box given_when_then golden_toolkit page_object Contains various testing tools that eBay Motors App team is using in their development on

eBay 251 Sep 15, 2022
PalestineDevelopers is an open-source tools code-base

PalestineDevelopers مبادرة لإحياء إسم فلسطين بتقديم أدوات برمجية تحمل إسم أرض الميعاد Flutter Packages .. will be replaced .. will be replaced .. will

Mohamed Sayed 10 Jan 4, 2022