Refactor framework/ and shared/ folders (#8587)

diff --git a/case_study/memory_leaks/memory_leak_app/lib/common.dart b/case_study/memory_leaks/memory_leak_app/lib/common.dart
index c63b179..749806a 100644
--- a/case_study/memory_leaks/memory_leak_app/lib/common.dart
+++ b/case_study/memory_leaks/memory_leak_app/lib/common.dart
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-const String appName = 'Memory Leak';
+const appName = 'Memory Leak';
 
-const String logMenu = 'Log';
-const String aboutMenu = 'About';
+const logMenu = 'Log';
+const aboutMenu = 'About';
diff --git a/case_study/memory_leaks/memory_leak_app/lib/logging.dart b/case_study/memory_leaks/memory_leak_app/lib/logging.dart
index 7444fd6..f767a16 100644
--- a/case_study/memory_leaks/memory_leak_app/lib/logging.dart
+++ b/case_study/memory_leaks/memory_leak_app/lib/logging.dart
@@ -19,10 +19,10 @@
     return _theLogging!;
   }
 
-  final List<String> _logs = [];
+  final _logs = <String>[];
 
   void add(String entry) {
-    final TimeStamp newTimeStamp = TimeStamp.record(DateTime.now());
+    final newTimeStamp = TimeStamp.record(DateTime.now());
 
     _logs.add('[${model.log.length}] : ${newTimeStamp.time}] $entry');
   }
@@ -61,9 +61,9 @@
 
   List<TimeStamp> log = <TimeStamp>[];
 
-  final String _time = '';
-  final String _date = '';
-  final String _meridiem = '';
+  final _time = '';
+  final _date = '';
+  final _meridiem = '';
   Timer? _clockUpdateTimer;
   DateTime now = DateTime.now();
 
@@ -118,7 +118,7 @@
       return;
     }
 
-    final TimeStamp newTimeStamp = TimeStamp.record(now);
+    final newTimeStamp = TimeStamp.record(now);
 
     log.add(newTimeStamp);
 
diff --git a/packages/devtools_app/lib/devtools_app.dart b/packages/devtools_app/lib/devtools_app.dart
index 9433e55..a74c022 100644
--- a/packages/devtools_app/lib/devtools_app.dart
+++ b/packages/devtools_app/lib/devtools_app.dart
@@ -5,11 +5,11 @@
 export 'src/app.dart';
 export 'src/extensions/extension_service.dart';
 export 'src/extensions/extension_service_helpers.dart';
-export 'src/framework/app_bar.dart';
 export 'src/framework/home_screen.dart';
 export 'src/framework/notifications_view.dart';
-export 'src/framework/release_notes/release_notes.dart';
-export 'src/framework/status_line.dart';
+export 'src/framework/release_notes.dart';
+export 'src/framework/scaffold/app_bar.dart';
+export 'src/framework/scaffold/status_line.dart';
 export 'src/screens/app_size/app_size_controller.dart';
 export 'src/screens/app_size/app_size_screen.dart';
 export 'src/screens/debugger/breakpoint_manager.dart';
@@ -58,6 +58,8 @@
 export 'src/screens/vm_developer/vm_developer_tools_controller.dart';
 export 'src/screens/vm_developer/vm_developer_tools_screen.dart';
 export 'src/screens/vm_developer/vm_service_private_extensions.dart';
+export 'src/service/connected_app/connected_app.dart';
+export 'src/service/connected_app/connection_info.dart';
 export 'src/service/editor/editor_client.dart';
 export 'src/service/json_to_service_cache.dart';
 export 'src/service/service_extensions.dart';
@@ -68,11 +70,7 @@
 export 'src/service/vm_service_wrapper.dart';
 export 'src/shared/analytics/analytics.dart';
 export 'src/shared/analytics/analytics_controller.dart';
-export 'src/shared/banner_messages.dart';
 export 'src/shared/charts/treemap.dart';
-export 'src/shared/common_widgets.dart';
-export 'src/shared/connected_app.dart';
-export 'src/shared/connection_info.dart';
 export 'src/shared/console/console_service.dart';
 export 'src/shared/console/eval/eval_service.dart';
 export 'src/shared/console/eval/inspector_tree.dart';
@@ -82,12 +80,16 @@
 export 'src/shared/diagnostics/inspector_service.dart';
 export 'src/shared/environment_parameters/environment_parameters_base.dart';
 export 'src/shared/environment_parameters/environment_parameters_external.dart';
-export 'src/shared/error_badge_manager.dart';
+export 'src/shared/framework/routing.dart';
+export 'src/shared/framework/screen.dart';
 export 'src/shared/globals.dart';
 export 'src/shared/http/http_request_data.dart';
+export 'src/shared/managers/banner_messages.dart';
+export 'src/shared/managers/error_badge_manager.dart';
+export 'src/shared/managers/notifications.dart';
+export 'src/shared/managers/script_manager.dart';
 export 'src/shared/memory/gc_stats.dart';
-export 'src/shared/notifications.dart';
-export 'src/shared/offline_data.dart';
+export 'src/shared/offline/offline_data.dart';
 export 'src/shared/preferences/preferences.dart';
 export 'src/shared/primitives/listenable.dart';
 export 'src/shared/primitives/simple_items.dart';
@@ -95,12 +97,10 @@
 export 'src/shared/primitives/trace_event.dart';
 export 'src/shared/primitives/trees.dart';
 export 'src/shared/primitives/utils.dart';
-export 'src/shared/routing.dart';
-export 'src/shared/screen.dart';
-export 'src/shared/scripts/script_manager.dart';
-export 'src/shared/side_panel.dart';
+export 'src/shared/ui/common_widgets.dart';
 export 'src/shared/ui/filter.dart';
 export 'src/shared/ui/hover.dart';
 export 'src/shared/ui/icons.dart';
 export 'src/shared/ui/search.dart';
-export 'src/shared/utils.dart';
+export 'src/shared/ui/side_panel.dart';
+export 'src/shared/utils/utils.dart';
diff --git a/packages/devtools_app/lib/initialization.dart b/packages/devtools_app/lib/initialization.dart
index 9d69ca0..698bac9 100644
--- a/packages/devtools_app/lib/initialization.dart
+++ b/packages/devtools_app/lib/initialization.dart
@@ -7,12 +7,12 @@
 import 'package:flutter_web_plugins/url_strategy.dart';
 
 import 'src/app.dart';
-import 'src/framework/app_error_handling.dart';
 import 'src/framework/framework_core.dart';
 import 'src/screens/debugger/syntax_highlighter.dart';
 import 'src/shared/analytics/analytics_controller.dart';
 import 'src/shared/config_specific/logger/logger_helpers.dart';
 import 'src/shared/feature_flags.dart';
+import 'src/shared/framework/app_error_handling.dart';
 import 'src/shared/globals.dart';
 import 'src/shared/primitives/url_utils.dart';
 import 'src/shared/primitives/utils.dart';
diff --git a/packages/devtools_app/lib/src/app.dart b/packages/devtools_app/lib/src/app.dart
index b03b679..a5d295f 100644
--- a/packages/devtools_app/lib/src/app.dart
+++ b/packages/devtools_app/lib/src/app.dart
@@ -19,8 +19,8 @@
 import 'framework/home_screen.dart';
 import 'framework/initializer.dart';
 import 'framework/notifications_view.dart';
-import 'framework/release_notes/release_notes.dart';
-import 'framework/scaffold.dart';
+import 'framework/release_notes.dart';
+import 'framework/scaffold/scaffold.dart';
 import 'screens/app_size/app_size_controller.dart';
 import 'screens/app_size/app_size_screen.dart';
 import 'screens/debugger/debugger_controller.dart';
@@ -45,18 +45,18 @@
 import 'service/service_extension_widgets.dart';
 import 'shared/analytics/analytics.dart' as ga;
 import 'shared/analytics/analytics_controller.dart';
-import 'shared/common_widgets.dart';
 import 'shared/feature_flags.dart';
-import 'shared/framework_controller.dart';
+import 'shared/framework/framework_controller.dart';
+import 'shared/framework/routing.dart';
+import 'shared/framework/screen.dart';
 import 'shared/globals.dart';
-import 'shared/offline_data.dart';
-import 'shared/offline_screen.dart';
+import 'shared/offline/offline_data.dart';
+import 'shared/offline/offline_screen.dart';
+import 'shared/primitives/query_parameters.dart';
 import 'shared/primitives/utils.dart';
-import 'shared/query_parameters.dart';
-import 'shared/routing.dart';
-import 'shared/screen.dart';
+import 'shared/ui/common_widgets.dart';
 import 'shared/ui/hover.dart';
-import 'shared/utils.dart';
+import 'shared/utils/utils.dart';
 import 'standalone_ui/standalone_screen.dart';
 
 // Assign to true to use a sample implementation of a conditional screen.
diff --git a/packages/devtools_app/lib/src/example/conditional_screen.dart b/packages/devtools_app/lib/src/example/conditional_screen.dart
index 91597e0..5cf49e2 100644
--- a/packages/devtools_app/lib/src/example/conditional_screen.dart
+++ b/packages/devtools_app/lib/src/example/conditional_screen.dart
@@ -7,10 +7,10 @@
 import 'package:devtools_app_shared/utils.dart';
 import 'package:flutter/material.dart';
 
+import '../shared/framework/screen.dart';
 import '../shared/globals.dart';
-import '../shared/offline_data.dart';
-import '../shared/screen.dart';
-import '../shared/utils.dart';
+import '../shared/offline/offline_data.dart';
+import '../shared/utils/utils.dart';
 
 /// This is an example implementation of a conditional screen that supports
 /// offline mode and uses a provided controller [ExampleController].
diff --git a/packages/devtools_app/lib/src/extensions/embedded/_controller_web.dart b/packages/devtools_app/lib/src/extensions/embedded/_controller_web.dart
index a3154d7..ec923e5 100644
--- a/packages/devtools_app/lib/src/extensions/embedded/_controller_web.dart
+++ b/packages/devtools_app/lib/src/extensions/embedded/_controller_web.dart
@@ -13,10 +13,10 @@
 
 import '../../shared/development_helpers.dart';
 import '../../shared/globals.dart';
+import '../../shared/primitives/query_parameters.dart';
 import '../../shared/primitives/utils.dart';
-import '../../shared/query_parameters.dart';
 import '../../shared/server/server.dart';
-import '../../shared/utils.dart';
+import '../../shared/utils/utils.dart';
 import 'controller.dart';
 
 /// Incrementer for the extension iFrame view that will live for the entire
diff --git a/packages/devtools_app/lib/src/extensions/embedded/_view_web.dart b/packages/devtools_app/lib/src/extensions/embedded/_view_web.dart
index 431c435..7fb7ea9 100644
--- a/packages/devtools_app/lib/src/extensions/embedded/_view_web.dart
+++ b/packages/devtools_app/lib/src/extensions/embedded/_view_web.dart
@@ -13,11 +13,11 @@
 import 'package:flutter/material.dart';
 import 'package:web/web.dart';
 
-import '../../shared/banner_messages.dart';
-import '../../shared/common_widgets.dart';
 import '../../shared/config_specific/copy_to_clipboard/copy_to_clipboard.dart';
 import '../../shared/globals.dart';
-import '../../shared/utils.dart';
+import '../../shared/managers/banner_messages.dart';
+import '../../shared/ui/common_widgets.dart';
+import '../../shared/utils/utils.dart';
 import '_controller_web.dart';
 import 'controller.dart';
 
diff --git a/packages/devtools_app/lib/src/extensions/extension_screen.dart b/packages/devtools_app/lib/src/extensions/extension_screen.dart
index 558bf54..af3c91e 100644
--- a/packages/devtools_app/lib/src/extensions/extension_screen.dart
+++ b/packages/devtools_app/lib/src/extensions/extension_screen.dart
@@ -9,9 +9,9 @@
 
 import '../shared/analytics/analytics.dart' as ga;
 import '../shared/analytics/constants.dart' as gac;
-import '../shared/common_widgets.dart';
+import '../shared/framework/screen.dart';
 import '../shared/globals.dart';
-import '../shared/screen.dart';
+import '../shared/ui/common_widgets.dart';
 import 'embedded/controller.dart';
 import 'embedded/view.dart';
 import 'extension_screen_controls.dart';
diff --git a/packages/devtools_app/lib/src/extensions/extension_screen_controls.dart b/packages/devtools_app/lib/src/extensions/extension_screen_controls.dart
index 3d4cf7c..3818137 100644
--- a/packages/devtools_app/lib/src/extensions/extension_screen_controls.dart
+++ b/packages/devtools_app/lib/src/extensions/extension_screen_controls.dart
@@ -11,9 +11,9 @@
 
 import '../shared/analytics/analytics.dart' as ga;
 import '../shared/analytics/constants.dart' as gac;
-import '../shared/common_widgets.dart';
+import '../shared/framework/routing.dart';
 import '../shared/globals.dart';
-import '../shared/routing.dart';
+import '../shared/ui/common_widgets.dart';
 
 class EmbeddedExtensionHeader extends StatelessWidget {
   const EmbeddedExtensionHeader({
diff --git a/packages/devtools_app/lib/src/extensions/extension_settings.dart b/packages/devtools_app/lib/src/extensions/extension_settings.dart
index 15c40ff..0bd2ce6 100644
--- a/packages/devtools_app/lib/src/extensions/extension_settings.dart
+++ b/packages/devtools_app/lib/src/extensions/extension_settings.dart
@@ -10,9 +10,9 @@
 
 import '../shared/analytics/analytics.dart' as ga;
 import '../shared/analytics/constants.dart' as gac;
-import '../shared/common_widgets.dart';
+import '../shared/framework/routing.dart';
 import '../shared/globals.dart';
-import '../shared/routing.dart';
+import '../shared/ui/common_widgets.dart';
 import 'extension_screen.dart';
 
 /// A [ScaffoldAction] that, when clicked, will open a dialog menu for
diff --git a/packages/devtools_app/lib/src/framework/disconnect_observer.dart b/packages/devtools_app/lib/src/framework/disconnect_observer.dart
index 60cb415..8982d89 100644
--- a/packages/devtools_app/lib/src/framework/disconnect_observer.dart
+++ b/packages/devtools_app/lib/src/framework/disconnect_observer.dart
@@ -9,13 +9,13 @@
 import 'package:devtools_app_shared/utils.dart';
 import 'package:flutter/material.dart';
 
+import '../service/connected_app/connection_info.dart';
 import '../shared/analytics/analytics.dart' as ga;
 import '../shared/analytics/constants.dart' as gac;
 import '../shared/config_specific/import_export/import_export.dart';
-import '../shared/connection_info.dart';
+import '../shared/framework/routing.dart';
 import '../shared/globals.dart';
-import '../shared/query_parameters.dart';
-import '../shared/routing.dart';
+import '../shared/primitives/query_parameters.dart';
 
 class DisconnectObserver extends StatefulWidget {
   const DisconnectObserver({
diff --git a/packages/devtools_app/lib/src/framework/framework_core.dart b/packages/devtools_app/lib/src/framework/framework_core.dart
index 7651e6c..0dbb0f0 100644
--- a/packages/devtools_app/lib/src/framework/framework_core.dart
+++ b/packages/devtools_app/lib/src/framework/framework_core.dart
@@ -17,20 +17,20 @@
 import '../screens/debugger/breakpoint_manager.dart';
 import '../service/service_manager.dart';
 import '../service/vm_service_wrapper.dart';
-import '../shared/banner_messages.dart';
 import '../shared/config_specific/framework_initialize/framework_initialize.dart';
 import '../shared/console/eval/eval_service.dart';
-import '../shared/framework_controller.dart';
+import '../shared/framework/app_error_handling.dart' as error_handling;
+import '../shared/framework/framework_controller.dart';
 import '../shared/globals.dart';
-import '../shared/notifications.dart';
-import '../shared/offline_data.dart';
+import '../shared/managers/banner_messages.dart';
+import '../shared/managers/notifications.dart';
+import '../shared/managers/script_manager.dart';
+import '../shared/managers/survey.dart';
+import '../shared/offline/offline_data.dart';
 import '../shared/preferences/preferences.dart';
 import '../shared/primitives/message_bus.dart';
-import '../shared/scripts/script_manager.dart';
 import '../shared/server/server.dart' as server;
-import '../shared/survey.dart';
-import '../shared/utils.dart';
-import 'app_error_handling.dart' as error_handling;
+import '../shared/utils/utils.dart';
 import 'theme_manager.dart';
 
 typedef ErrorReporter = void Function(String title, Object error);
diff --git a/packages/devtools_app/lib/src/framework/home_screen.dart b/packages/devtools_app/lib/src/framework/home_screen.dart
index 2a0ca50..3085070 100644
--- a/packages/devtools_app/lib/src/framework/home_screen.dart
+++ b/packages/devtools_app/lib/src/framework/home_screen.dart
@@ -12,15 +12,15 @@
 import 'package:provider/provider.dart';
 import 'package:shared_preferences/shared_preferences.dart';
 
+import '../service/connected_app/connection_info.dart';
 import '../shared/analytics/analytics.dart' as ga;
 import '../shared/analytics/constants.dart' as gac;
 import '../shared/config_specific/import_export/import_export.dart';
-import '../shared/connection_info.dart';
+import '../shared/framework/routing.dart';
+import '../shared/framework/screen.dart';
 import '../shared/globals.dart';
 import '../shared/primitives/blocking_action_mixin.dart';
 import '../shared/primitives/utils.dart';
-import '../shared/routing.dart';
-import '../shared/screen.dart';
 import '../shared/title.dart';
 import '../shared/ui/vm_flag_widgets.dart';
 import 'framework_core.dart';
diff --git a/packages/devtools_app/lib/src/framework/initializer.dart b/packages/devtools_app/lib/src/framework/initializer.dart
index ffc9fb0..21b1f30 100644
--- a/packages/devtools_app/lib/src/framework/initializer.dart
+++ b/packages/devtools_app/lib/src/framework/initializer.dart
@@ -8,11 +8,11 @@
 import 'package:devtools_app_shared/utils.dart';
 import 'package:flutter/material.dart';
 
+import '../service/connected_app/connection_info.dart';
 import '../shared/analytics/constants.dart' as gac;
-import '../shared/common_widgets.dart';
-import '../shared/connection_info.dart';
+import '../shared/framework/routing.dart';
 import '../shared/globals.dart';
-import '../shared/routing.dart';
+import '../shared/ui/common_widgets.dart';
 
 // TODO(kenz): see if we can simplify this widget. Several things have changed
 // with DevTools routing and service management code since this widget was
diff --git a/packages/devtools_app/lib/src/framework/notifications_view.dart b/packages/devtools_app/lib/src/framework/notifications_view.dart
index 6c819b2..1349b70 100644
--- a/packages/devtools_app/lib/src/framework/notifications_view.dart
+++ b/packages/devtools_app/lib/src/framework/notifications_view.dart
@@ -9,10 +9,10 @@
 import 'package:flutter/material.dart';
 import 'package:flutter/scheduler.dart';
 
-import '../shared/common_widgets.dart';
 import '../shared/globals.dart';
-import '../shared/notifications.dart';
+import '../shared/managers/notifications.dart';
 import '../shared/primitives/utils.dart';
+import '../shared/ui/common_widgets.dart';
 
 double get _notificationHeight => scaleByFontFactor(175.0);
 final _notificationWidth = _notificationHeight * goldenRatio;
diff --git a/packages/devtools_app/lib/src/framework/release_notes/release_notes.dart b/packages/devtools_app/lib/src/framework/release_notes.dart
similarity index 97%
rename from packages/devtools_app/lib/src/framework/release_notes/release_notes.dart
rename to packages/devtools_app/lib/src/framework/release_notes.dart
index 03ba392..1261eab 100644
--- a/packages/devtools_app/lib/src/framework/release_notes/release_notes.dart
+++ b/packages/devtools_app/lib/src/framework/release_notes.dart
@@ -12,11 +12,11 @@
 import 'package:http/http.dart' as http;
 import 'package:logging/logging.dart';
 
-import '../../shared/primitives/url_utils.dart';
-import '../../shared/server/server.dart' as server;
-import '../../shared/side_panel.dart';
-import '../../shared/utils.dart';
-import '../../standalone_ui/standalone_screen.dart';
+import '../shared/primitives/url_utils.dart';
+import '../shared/server/server.dart' as server;
+import '../shared/ui/side_panel.dart';
+import '../shared/utils/utils.dart';
+import '../standalone_ui/standalone_screen.dart';
 
 final _log = Logger('release_notes');
 
diff --git a/packages/devtools_app/lib/src/framework/about_dialog.dart b/packages/devtools_app/lib/src/framework/scaffold/about_dialog.dart
similarity index 94%
rename from packages/devtools_app/lib/src/framework/about_dialog.dart
rename to packages/devtools_app/lib/src/framework/scaffold/about_dialog.dart
index 2546c7f..04a8e59 100644
--- a/packages/devtools_app/lib/src/framework/about_dialog.dart
+++ b/packages/devtools_app/lib/src/framework/scaffold/about_dialog.dart
@@ -8,11 +8,11 @@
 import 'package:flutter/material.dart';
 import 'package:provider/provider.dart';
 
-import '../shared/analytics/constants.dart' as gac;
-import '../shared/common_widgets.dart';
-import '../shared/globals.dart';
-import '../shared/utils.dart';
-import 'release_notes/release_notes.dart';
+import '../../shared/analytics/constants.dart' as gac;
+import '../../shared/globals.dart';
+import '../../shared/ui/common_widgets.dart';
+import '../../shared/utils/utils.dart';
+import '../release_notes.dart';
 
 class DevToolsAboutDialog extends StatelessWidget {
   const DevToolsAboutDialog(this.releaseNotesController, {super.key});
diff --git a/packages/devtools_app/lib/src/framework/app_bar.dart b/packages/devtools_app/lib/src/framework/scaffold/app_bar.dart
similarity index 97%
rename from packages/devtools_app/lib/src/framework/app_bar.dart
rename to packages/devtools_app/lib/src/framework/scaffold/app_bar.dart
index 121f5ca..6ff65fa 100644
--- a/packages/devtools_app/lib/src/framework/app_bar.dart
+++ b/packages/devtools_app/lib/src/framework/scaffold/app_bar.dart
@@ -8,9 +8,9 @@
 import 'package:flutter/material.dart';
 import 'package:pointer_interceptor/pointer_interceptor.dart';
 
-import '../shared/common_widgets.dart';
-import '../shared/primitives/utils.dart';
-import '../shared/screen.dart';
+import '../../shared/framework/screen.dart';
+import '../../shared/primitives/utils.dart';
+import '../../shared/ui/common_widgets.dart';
 
 class DevToolsAppBar extends StatelessWidget {
   const DevToolsAppBar({
diff --git a/packages/devtools_app/lib/src/framework/report_feedback_button.dart b/packages/devtools_app/lib/src/framework/scaffold/report_feedback_button.dart
similarity index 76%
rename from packages/devtools_app/lib/src/framework/report_feedback_button.dart
rename to packages/devtools_app/lib/src/framework/scaffold/report_feedback_button.dart
index 28af273..a2b2dd6 100644
--- a/packages/devtools_app/lib/src/framework/report_feedback_button.dart
+++ b/packages/devtools_app/lib/src/framework/scaffold/report_feedback_button.dart
@@ -6,11 +6,11 @@
 
 import 'package:flutter/material.dart';
 
-import '../shared/analytics/analytics.dart' as ga;
-import '../shared/analytics/constants.dart' as gac;
-import '../shared/common_widgets.dart';
-import '../shared/globals.dart';
-import '../shared/utils.dart';
+import '../../shared/analytics/analytics.dart' as ga;
+import '../../shared/analytics/constants.dart' as gac;
+import '../../shared/globals.dart';
+import '../../shared/ui/common_widgets.dart';
+import '../../shared/utils/utils.dart';
 
 /// Button that, when clicked, will open the DevTools issue tracker in the
 /// browser.
diff --git a/packages/devtools_app/lib/src/framework/scaffold.dart b/packages/devtools_app/lib/src/framework/scaffold/scaffold.dart
similarity index 94%
rename from packages/devtools_app/lib/src/framework/scaffold.dart
rename to packages/devtools_app/lib/src/framework/scaffold/scaffold.dart
index 9181290..3ef9d40 100644
--- a/packages/devtools_app/lib/src/framework/scaffold.dart
+++ b/packages/devtools_app/lib/src/framework/scaffold/scaffold.dart
@@ -8,21 +8,21 @@
 import 'package:flutter/material.dart';
 import 'package:provider/provider.dart';
 
-import '../app.dart';
-import '../extensions/extension_settings.dart';
-import '../screens/debugger/debugger_screen.dart';
-import '../shared/analytics/prompt.dart';
-import '../shared/banner_messages.dart';
-import '../shared/config_specific/drag_and_drop/drag_and_drop.dart';
-import '../shared/config_specific/import_export/import_export.dart';
-import '../shared/console/widgets/console_pane.dart';
-import '../shared/feature_flags.dart';
-import '../shared/framework_controller.dart';
-import '../shared/globals.dart';
-import '../shared/query_parameters.dart';
-import '../shared/routing.dart';
-import '../shared/screen.dart';
-import '../shared/title.dart';
+import '../../app.dart';
+import '../../extensions/extension_settings.dart';
+import '../../screens/debugger/debugger_screen.dart';
+import '../../shared/analytics/prompt.dart';
+import '../../shared/config_specific/drag_and_drop/drag_and_drop.dart';
+import '../../shared/config_specific/import_export/import_export.dart';
+import '../../shared/console/widgets/console_pane.dart';
+import '../../shared/feature_flags.dart';
+import '../../shared/framework/framework_controller.dart';
+import '../../shared/framework/routing.dart';
+import '../../shared/framework/screen.dart';
+import '../../shared/globals.dart';
+import '../../shared/managers/banner_messages.dart';
+import '../../shared/primitives/query_parameters.dart';
+import '../../shared/title.dart';
 import 'about_dialog.dart';
 import 'app_bar.dart';
 import 'report_feedback_button.dart';
diff --git a/packages/devtools_app/lib/src/framework/settings_dialog.dart b/packages/devtools_app/lib/src/framework/scaffold/settings_dialog.dart
similarity index 93%
rename from packages/devtools_app/lib/src/framework/settings_dialog.dart
rename to packages/devtools_app/lib/src/framework/scaffold/settings_dialog.dart
index 6eff9d6..7d0a0d7 100644
--- a/packages/devtools_app/lib/src/framework/settings_dialog.dart
+++ b/packages/devtools_app/lib/src/framework/scaffold/settings_dialog.dart
@@ -8,14 +8,14 @@
 import 'package:flutter/material.dart';
 import 'package:provider/provider.dart';
 
-import '../shared/analytics/analytics_controller.dart';
-import '../shared/analytics/constants.dart' as gac;
-import '../shared/common_widgets.dart';
-import '../shared/config_specific/copy_to_clipboard/copy_to_clipboard.dart';
-import '../shared/feature_flags.dart';
-import '../shared/globals.dart';
-import '../shared/log_storage.dart';
-import '../shared/server/server.dart';
+import '../../shared/analytics/analytics_controller.dart';
+import '../../shared/analytics/constants.dart' as gac;
+import '../../shared/config_specific/copy_to_clipboard/copy_to_clipboard.dart';
+import '../../shared/feature_flags.dart';
+import '../../shared/globals.dart';
+import '../../shared/log_storage.dart';
+import '../../shared/server/server.dart';
+import '../../shared/ui/common_widgets.dart';
 
 class OpenSettingsAction extends ScaffoldAction {
   OpenSettingsAction({super.key, super.color})
diff --git a/packages/devtools_app/lib/src/framework/status_line.dart b/packages/devtools_app/lib/src/framework/scaffold/status_line.dart
similarity index 96%
rename from packages/devtools_app/lib/src/framework/status_line.dart
rename to packages/devtools_app/lib/src/framework/scaffold/status_line.dart
index f89656a..8143a92 100644
--- a/packages/devtools_app/lib/src/framework/status_line.dart
+++ b/packages/devtools_app/lib/src/framework/scaffold/status_line.dart
@@ -7,13 +7,13 @@
 import 'package:flutter/material.dart';
 import 'package:vm_service/vm_service.dart';
 
-import '../shared/analytics/constants.dart' as gac;
-import '../shared/common_widgets.dart';
-import '../shared/globals.dart';
-import '../shared/primitives/utils.dart';
-import '../shared/screen.dart';
-import '../shared/ui/utils.dart';
-import '../shared/utils.dart';
+import '../../shared/analytics/constants.dart' as gac;
+import '../../shared/framework/screen.dart';
+import '../../shared/globals.dart';
+import '../../shared/primitives/utils.dart';
+import '../../shared/ui/common_widgets.dart';
+import '../../shared/ui/utils.dart';
+import '../../shared/utils/utils.dart';
 import 'scaffold.dart';
 
 /// The status line widget displayed at the bottom of DevTools.
diff --git a/packages/devtools_app/lib/src/screens/app_size/app_size_screen.dart b/packages/devtools_app/lib/src/screens/app_size/app_size_screen.dart
index c32c75d..f76213b 100644
--- a/packages/devtools_app/lib/src/screens/app_size/app_size_screen.dart
+++ b/packages/devtools_app/lib/src/screens/app_size/app_size_screen.dart
@@ -12,16 +12,16 @@
 import '../../shared/analytics/analytics.dart' as ga;
 import '../../shared/analytics/constants.dart' as gac;
 import '../../shared/charts/treemap.dart';
-import '../../shared/common_widgets.dart';
 import '../../shared/config_specific/drag_and_drop/drag_and_drop.dart';
-import '../../shared/file_import.dart';
+import '../../shared/framework/screen.dart';
 import '../../shared/globals.dart';
+import '../../shared/primitives/query_parameters.dart';
 import '../../shared/primitives/utils.dart';
-import '../../shared/query_parameters.dart';
-import '../../shared/screen.dart';
 import '../../shared/server/server.dart' as server;
+import '../../shared/ui/common_widgets.dart';
+import '../../shared/ui/file_import.dart';
 import '../../shared/ui/tab.dart';
-import '../../shared/utils.dart';
+import '../../shared/utils/utils.dart';
 import 'app_size_controller.dart';
 import 'app_size_table.dart';
 import 'code_size_attribution.dart';
diff --git a/packages/devtools_app/lib/src/screens/app_size/code_size_attribution.dart b/packages/devtools_app/lib/src/screens/app_size/code_size_attribution.dart
index 3989f65..227d0b0 100644
--- a/packages/devtools_app/lib/src/screens/app_size/code_size_attribution.dart
+++ b/packages/devtools_app/lib/src/screens/app_size/code_size_attribution.dart
@@ -7,11 +7,11 @@
 import 'package:vm_snapshot_analysis/precompiler_trace.dart';
 import 'package:vm_snapshot_analysis/program_info.dart';
 
-import '../../shared/common_widgets.dart';
 import '../../shared/primitives/trees.dart';
 import '../../shared/primitives/utils.dart';
 import '../../shared/table/table.dart';
 import '../../shared/table/table_data.dart';
+import '../../shared/ui/common_widgets.dart';
 
 class CallGraphWithDominators extends StatefulWidget {
   const CallGraphWithDominators({super.key, required this.callGraphRoot});
diff --git a/packages/devtools_app/lib/src/screens/debugger/breakpoints.dart b/packages/devtools_app/lib/src/screens/debugger/breakpoints.dart
index ad2665d..7da9046 100644
--- a/packages/devtools_app/lib/src/screens/debugger/breakpoints.dart
+++ b/packages/devtools_app/lib/src/screens/debugger/breakpoints.dart
@@ -5,10 +5,10 @@
 import 'package:devtools_app_shared/ui.dart';
 import 'package:flutter/material.dart' hide Badge;
 
-import '../../shared/common_widgets.dart';
 import '../../shared/globals.dart';
 import '../../shared/primitives/utils.dart';
-import '../../shared/utils.dart';
+import '../../shared/ui/common_widgets.dart';
+import '../../shared/utils/utils.dart';
 import 'common.dart';
 import 'debugger_controller.dart';
 import 'debugger_model.dart';
diff --git a/packages/devtools_app/lib/src/screens/debugger/call_stack.dart b/packages/devtools_app/lib/src/screens/debugger/call_stack.dart
index ee9576e..59fed8e 100644
--- a/packages/devtools_app/lib/src/screens/debugger/call_stack.dart
+++ b/packages/devtools_app/lib/src/screens/debugger/call_stack.dart
@@ -9,9 +9,9 @@
 import 'package:flutter/material.dart' hide Stack;
 import 'package:vm_service/vm_service.dart';
 
-import '../../shared/common_widgets.dart';
 import '../../shared/primitives/utils.dart';
-import '../../shared/utils.dart';
+import '../../shared/ui/common_widgets.dart';
+import '../../shared/utils/utils.dart';
 import 'debugger_controller.dart';
 import 'debugger_model.dart';
 
diff --git a/packages/devtools_app/lib/src/screens/debugger/codeview.dart b/packages/devtools_app/lib/src/screens/debugger/codeview.dart
index bbaeca4..0a92550 100644
--- a/packages/devtools_app/lib/src/screens/debugger/codeview.dart
+++ b/packages/devtools_app/lib/src/screens/debugger/codeview.dart
@@ -14,20 +14,20 @@
 import 'package:logging/logging.dart';
 import 'package:vm_service/vm_service.dart' hide Stack;
 
-import '../../shared/common_widgets.dart';
 import '../../shared/console/widgets/expandable_variable.dart';
 import '../../shared/diagnostics/dart_object_node.dart';
 import '../../shared/diagnostics/primitives/source_location.dart';
 import '../../shared/diagnostics/tree_builder.dart';
 import '../../shared/globals.dart';
-import '../../shared/history_viewport.dart';
 import '../../shared/primitives/flutter_widgets/linked_scroll_controller.dart';
 import '../../shared/primitives/listenable.dart';
 import '../../shared/primitives/utils.dart';
+import '../../shared/ui/common_widgets.dart';
+import '../../shared/ui/history_viewport.dart';
 import '../../shared/ui/hover.dart';
 import '../../shared/ui/search.dart';
 import '../../shared/ui/utils.dart';
-import '../../shared/utils.dart';
+import '../../shared/utils/utils.dart';
 import '../vm_developer/vm_service_private_extensions.dart';
 import 'breakpoints.dart';
 import 'codeview_controller.dart';
diff --git a/packages/devtools_app/lib/src/screens/debugger/codeview_controller.dart b/packages/devtools_app/lib/src/screens/debugger/codeview_controller.dart
index 4cf572c..b5e251c 100644
--- a/packages/devtools_app/lib/src/screens/debugger/codeview_controller.dart
+++ b/packages/devtools_app/lib/src/screens/debugger/codeview_controller.dart
@@ -10,14 +10,14 @@
 import 'package:logging/logging.dart';
 import 'package:vm_service/vm_service.dart';
 
-import '../../framework/app_error_handling.dart';
 import '../../shared/diagnostics/primitives/source_location.dart';
+import '../../shared/framework/app_error_handling.dart';
+import '../../shared/framework/routing.dart';
 import '../../shared/globals.dart';
-import '../../shared/notifications.dart';
+import '../../shared/managers/notifications.dart';
 import '../../shared/primitives/history_manager.dart';
-import '../../shared/routing.dart';
 import '../../shared/ui/search.dart';
-import '../../shared/utils.dart';
+import '../../shared/utils/utils.dart';
 import '../vm_developer/vm_service_private_extensions.dart';
 import 'debugger_model.dart';
 import 'program_explorer_controller.dart';
diff --git a/packages/devtools_app/lib/src/screens/debugger/controls.dart b/packages/devtools_app/lib/src/screens/debugger/controls.dart
index 70b0b27..d9dea0e 100644
--- a/packages/devtools_app/lib/src/screens/debugger/controls.dart
+++ b/packages/devtools_app/lib/src/screens/debugger/controls.dart
@@ -11,10 +11,10 @@
 import 'package:vm_service/vm_service.dart';
 
 import '../../shared/analytics/constants.dart' as gac;
-import '../../shared/common_widgets.dart';
 import '../../shared/globals.dart';
 import '../../shared/primitives/utils.dart';
-import '../../shared/utils.dart';
+import '../../shared/ui/common_widgets.dart';
+import '../../shared/utils/utils.dart';
 import 'debugger_controller.dart';
 
 class DebuggingControls extends StatefulWidget {
diff --git a/packages/devtools_app/lib/src/screens/debugger/debugger_controller.dart b/packages/devtools_app/lib/src/screens/debugger/debugger_controller.dart
index 5396262..efd69a9 100644
--- a/packages/devtools_app/lib/src/screens/debugger/debugger_controller.dart
+++ b/packages/devtools_app/lib/src/screens/debugger/debugger_controller.dart
@@ -20,10 +20,10 @@
 import '../../shared/diagnostics/primitives/source_location.dart';
 import '../../shared/diagnostics/tree_builder.dart';
 import '../../shared/feature_flags.dart';
+import '../../shared/framework/routing.dart';
 import '../../shared/globals.dart';
 import '../../shared/primitives/message_bus.dart';
 import '../../shared/primitives/utils.dart';
-import '../../shared/routing.dart';
 import 'codeview_controller.dart';
 import 'debugger_model.dart';
 
diff --git a/packages/devtools_app/lib/src/screens/debugger/debugger_screen.dart b/packages/devtools_app/lib/src/screens/debugger/debugger_screen.dart
index 1f281f5..7ef7814 100644
--- a/packages/devtools_app/lib/src/screens/debugger/debugger_screen.dart
+++ b/packages/devtools_app/lib/src/screens/debugger/debugger_screen.dart
@@ -16,15 +16,15 @@
 
 import '../../shared/analytics/analytics.dart' as ga;
 import '../../shared/analytics/constants.dart' as gac;
-import '../../shared/banner_messages.dart';
-import '../../shared/common_widgets.dart';
 import '../../shared/diagnostics/primitives/source_location.dart';
+import '../../shared/framework/routing.dart';
+import '../../shared/framework/screen.dart';
 import '../../shared/globals.dart';
+import '../../shared/managers/banner_messages.dart';
 import '../../shared/primitives/listenable.dart';
 import '../../shared/primitives/utils.dart';
-import '../../shared/routing.dart';
-import '../../shared/screen.dart';
-import '../../shared/utils.dart';
+import '../../shared/ui/common_widgets.dart';
+import '../../shared/utils/utils.dart';
 import 'breakpoints.dart';
 import 'call_stack.dart';
 import 'codeview.dart';
diff --git a/packages/devtools_app/lib/src/screens/debugger/program_explorer.dart b/packages/devtools_app/lib/src/screens/debugger/program_explorer.dart
index 9032c63..39df098 100644
--- a/packages/devtools_app/lib/src/screens/debugger/program_explorer.dart
+++ b/packages/devtools_app/lib/src/screens/debugger/program_explorer.dart
@@ -10,11 +10,11 @@
 import 'package:flutter/material.dart';
 import 'package:vm_service/vm_service.dart' hide Stack;
 
-import '../../shared/common_widgets.dart';
 import '../../shared/globals.dart';
 import '../../shared/primitives/utils.dart';
 import '../../shared/tree.dart';
 import '../../shared/ui/colors.dart';
+import '../../shared/ui/common_widgets.dart';
 import 'program_explorer_controller.dart';
 import 'program_explorer_model.dart';
 
diff --git a/packages/devtools_app/lib/src/screens/deep_link_validation/deep_link_list_view.dart b/packages/devtools_app/lib/src/screens/deep_link_validation/deep_link_list_view.dart
index c0c53b8..951c8b5 100644
--- a/packages/devtools_app/lib/src/screens/deep_link_validation/deep_link_list_view.dart
+++ b/packages/devtools_app/lib/src/screens/deep_link_validation/deep_link_list_view.dart
@@ -7,14 +7,14 @@
 import 'package:flutter/material.dart';
 import 'package:provider/provider.dart';
 
-import '../../shared/common_widgets.dart';
 import '../../shared/feature_flags.dart';
 import '../../shared/primitives/utils.dart';
 import '../../shared/table/table.dart';
 import '../../shared/table/table_data.dart';
 import '../../shared/ui/colors.dart';
+import '../../shared/ui/common_widgets.dart';
 import '../../shared/ui/tab.dart';
-import '../../shared/utils.dart';
+import '../../shared/utils/utils.dart';
 import 'deep_links_controller.dart';
 import 'deep_links_model.dart';
 import 'validation_details_view.dart';
diff --git a/packages/devtools_app/lib/src/screens/deep_link_validation/deep_links_screen.dart b/packages/devtools_app/lib/src/screens/deep_link_validation/deep_links_screen.dart
index 09910a0..122262e 100644
--- a/packages/devtools_app/lib/src/screens/deep_link_validation/deep_links_screen.dart
+++ b/packages/devtools_app/lib/src/screens/deep_link_validation/deep_links_screen.dart
@@ -6,8 +6,8 @@
 
 import '../../shared/analytics/analytics.dart' as ga;
 import '../../shared/analytics/constants.dart' as gac;
-import '../../shared/screen.dart';
-import '../../shared/utils.dart';
+import '../../shared/framework/screen.dart';
+import '../../shared/utils/utils.dart';
 import 'deep_link_list_view.dart';
 import 'deep_links_controller.dart';
 import 'deep_links_model.dart';
diff --git a/packages/devtools_app/lib/src/screens/deep_link_validation/project_root_selection/select_project_view.dart b/packages/devtools_app/lib/src/screens/deep_link_validation/project_root_selection/select_project_view.dart
index 3f20223..c87ee27 100644
--- a/packages/devtools_app/lib/src/screens/deep_link_validation/project_root_selection/select_project_view.dart
+++ b/packages/devtools_app/lib/src/screens/deep_link_validation/project_root_selection/select_project_view.dart
@@ -14,7 +14,7 @@
 import '../../../shared/globals.dart';
 import '../../../shared/primitives/utils.dart';
 import '../../../shared/server/server.dart' as server;
-import '../../../shared/utils.dart';
+import '../../../shared/utils/utils.dart';
 import '../deep_links_controller.dart';
 import '../deep_links_model.dart';
 import 'root_selector.dart';
diff --git a/packages/devtools_app/lib/src/screens/deep_link_validation/validation_details_view.dart b/packages/devtools_app/lib/src/screens/deep_link_validation/validation_details_view.dart
index b14de16..3743c37 100644
--- a/packages/devtools_app/lib/src/screens/deep_link_validation/validation_details_view.dart
+++ b/packages/devtools_app/lib/src/screens/deep_link_validation/validation_details_view.dart
@@ -7,10 +7,10 @@
 import 'package:devtools_app_shared/ui.dart';
 import 'package:flutter/material.dart';
 
-import '../../shared/common_widgets.dart';
 import '../../shared/feature_flags.dart';
 import '../../shared/ui/colors.dart';
-import '../../shared/utils.dart';
+import '../../shared/ui/common_widgets.dart';
+import '../../shared/utils/utils.dart';
 import 'deep_link_list_view.dart';
 import 'deep_links_controller.dart';
 import 'deep_links_model.dart';
diff --git a/packages/devtools_app/lib/src/screens/inspector/inspector_breadcrumbs.dart b/packages/devtools_app/lib/src/screens/inspector/inspector_breadcrumbs.dart
index f1c2784..19d876b 100644
--- a/packages/devtools_app/lib/src/screens/inspector/inspector_breadcrumbs.dart
+++ b/packages/devtools_app/lib/src/screens/inspector/inspector_breadcrumbs.dart
@@ -5,10 +5,10 @@
 import 'package:devtools_app_shared/ui.dart';
 import 'package:flutter/material.dart';
 
-import '../../shared/common_widgets.dart';
 import '../../shared/console/eval/inspector_tree.dart';
-import '../../shared/diagnostics_text_styles.dart';
+import '../../shared/primitives/diagnostics_text_styles.dart';
 import '../../shared/primitives/utils.dart';
+import '../../shared/ui/common_widgets.dart';
 
 class InspectorBreadcrumbNavigator extends StatelessWidget {
   const InspectorBreadcrumbNavigator({
diff --git a/packages/devtools_app/lib/src/screens/inspector/inspector_controller.dart b/packages/devtools_app/lib/src/screens/inspector/inspector_controller.dart
index 3c224f8..b0ef730 100644
--- a/packages/devtools_app/lib/src/screens/inspector/inspector_controller.dart
+++ b/packages/devtools_app/lib/src/screens/inspector/inspector_controller.dart
@@ -29,8 +29,8 @@
 import '../../shared/diagnostics/inspector_service.dart';
 import '../../shared/diagnostics/primitives/instance_ref.dart';
 import '../../shared/globals.dart';
+import '../../shared/primitives/query_parameters.dart';
 import '../../shared/primitives/utils.dart';
-import '../../shared/query_parameters.dart';
 import '../inspector_shared/inspector_screen.dart';
 import 'inspector_tree_controller.dart';
 
diff --git a/packages/devtools_app/lib/src/screens/inspector/inspector_screen_body.dart b/packages/devtools_app/lib/src/screens/inspector/inspector_screen_body.dart
index 0a96982..bbf47db 100644
--- a/packages/devtools_app/lib/src/screens/inspector/inspector_screen_body.dart
+++ b/packages/devtools_app/lib/src/screens/inspector/inspector_screen_body.dart
@@ -13,11 +13,11 @@
 import '../../service/service_extensions.dart' as extensions;
 import '../../shared/analytics/analytics.dart' as ga;
 import '../../shared/analytics/constants.dart' as gac;
-import '../../shared/common_widgets.dart';
 import '../../shared/console/eval/inspector_tree.dart';
-import '../../shared/error_badge_manager.dart';
 import '../../shared/globals.dart';
+import '../../shared/managers/error_badge_manager.dart';
 import '../../shared/primitives/blocking_action_mixin.dart';
+import '../../shared/ui/common_widgets.dart';
 import '../../shared/ui/search.dart';
 import '../inspector_shared/inspector_controls.dart';
 import '../inspector_shared/inspector_screen.dart';
diff --git a/packages/devtools_app/lib/src/screens/inspector/inspector_screen_details_tab.dart b/packages/devtools_app/lib/src/screens/inspector/inspector_screen_details_tab.dart
index d680b8e..0ece63e 100644
--- a/packages/devtools_app/lib/src/screens/inspector/inspector_screen_details_tab.dart
+++ b/packages/devtools_app/lib/src/screens/inspector/inspector_screen_details_tab.dart
@@ -9,10 +9,10 @@
 
 import '../../shared/analytics/analytics.dart' as ga;
 import '../../shared/analytics/constants.dart' as gac;
-import '../../shared/common_widgets.dart';
 import '../../shared/globals.dart';
 import '../../shared/preferences/preferences.dart';
 import '../../shared/primitives/blocking_action_mixin.dart';
+import '../../shared/ui/common_widgets.dart';
 import '../../shared/ui/tab.dart';
 import 'inspector_controller.dart';
 import 'inspector_screen_body.dart';
diff --git a/packages/devtools_app/lib/src/screens/inspector/inspector_tree_controller.dart b/packages/devtools_app/lib/src/screens/inspector/inspector_tree_controller.dart
index dd4d43b..0448d09 100644
--- a/packages/devtools_app/lib/src/screens/inspector/inspector_tree_controller.dart
+++ b/packages/devtools_app/lib/src/screens/inspector/inspector_tree_controller.dart
@@ -16,19 +16,19 @@
 import '../../shared/analytics/analytics.dart' as ga;
 import '../../shared/analytics/constants.dart' as gac;
 import '../../shared/analytics/metrics.dart';
-import '../../shared/collapsible_mixin.dart';
-import '../../shared/common_widgets.dart';
 import '../../shared/console/eval/inspector_tree.dart';
 import '../../shared/console/widgets/description.dart';
 import '../../shared/diagnostics/diagnostics_node.dart';
-import '../../shared/diagnostics_text_styles.dart';
-import '../../shared/error_badge_manager.dart';
 import '../../shared/globals.dart';
+import '../../shared/managers/error_badge_manager.dart';
+import '../../shared/primitives/collapsible_mixin.dart';
+import '../../shared/primitives/diagnostics_text_styles.dart';
 import '../../shared/primitives/utils.dart';
 import '../../shared/ui/colors.dart';
+import '../../shared/ui/common_widgets.dart';
 import '../../shared/ui/search.dart';
 import '../../shared/ui/utils.dart';
-import '../../shared/utils.dart';
+import '../../shared/utils/utils.dart';
 import 'inspector_breadcrumbs.dart';
 import 'inspector_controller.dart';
 
diff --git a/packages/devtools_app/lib/src/screens/inspector/layout_explorer/flex/flex.dart b/packages/devtools_app/lib/src/screens/inspector/layout_explorer/flex/flex.dart
index ad0ac8e..bfec93a 100644
--- a/packages/devtools_app/lib/src/screens/inspector/layout_explorer/flex/flex.dart
+++ b/packages/devtools_app/lib/src/screens/inspector/layout_explorer/flex/flex.dart
@@ -8,10 +8,10 @@
 import 'package:devtools_app_shared/ui.dart';
 import 'package:flutter/material.dart';
 
-import '../../../../shared/common_widgets.dart';
 import '../../../../shared/diagnostics/diagnostics_node.dart';
 import '../../../../shared/diagnostics/inspector_service.dart';
 import '../../../../shared/primitives/math_utils.dart';
+import '../../../../shared/ui/common_widgets.dart';
 import '../../inspector_data_models.dart';
 import '../ui/arrow.dart';
 import '../ui/free_space.dart';
diff --git a/packages/devtools_app/lib/src/screens/inspector_shared/inspector_controls.dart b/packages/devtools_app/lib/src/screens/inspector_shared/inspector_controls.dart
index 3a08faa..3509d30 100644
--- a/packages/devtools_app/lib/src/screens/inspector_shared/inspector_controls.dart
+++ b/packages/devtools_app/lib/src/screens/inspector_shared/inspector_controls.dart
@@ -10,9 +10,9 @@
 import '../../service/service_extension_widgets.dart';
 import '../../service/service_extensions.dart' as extensions;
 import '../../shared/analytics/constants.dart' as gac;
-import '../../shared/common_widgets.dart';
 import '../../shared/feature_flags.dart';
 import '../../shared/globals.dart';
+import '../../shared/ui/common_widgets.dart';
 import '../inspector_shared/inspector_settings_dialog.dart';
 import '../inspector_v2/inspector_controller.dart' as v2;
 
diff --git a/packages/devtools_app/lib/src/screens/inspector_shared/inspector_screen.dart b/packages/devtools_app/lib/src/screens/inspector_shared/inspector_screen.dart
index d1a18dd..749f6d0 100644
--- a/packages/devtools_app/lib/src/screens/inspector_shared/inspector_screen.dart
+++ b/packages/devtools_app/lib/src/screens/inspector_shared/inspector_screen.dart
@@ -8,9 +8,9 @@
 import 'package:provider/provider.dart';
 
 import '../../shared/feature_flags.dart';
+import '../../shared/framework/screen.dart';
 import '../../shared/globals.dart';
-import '../../shared/screen.dart';
-import '../../shared/utils.dart';
+import '../../shared/utils/utils.dart';
 import '../inspector/inspector_screen_body.dart' as legacy;
 import '../inspector_v2/inspector_screen_body.dart' as v2;
 import 'inspector_screen_controller.dart';
diff --git a/packages/devtools_app/lib/src/screens/inspector_shared/inspector_settings_dialog.dart b/packages/devtools_app/lib/src/screens/inspector_shared/inspector_settings_dialog.dart
index e5efd27..1d86b14 100644
--- a/packages/devtools_app/lib/src/screens/inspector_shared/inspector_settings_dialog.dart
+++ b/packages/devtools_app/lib/src/screens/inspector_shared/inspector_settings_dialog.dart
@@ -10,11 +10,11 @@
 
 import '../../shared/analytics/analytics.dart' as ga;
 import '../../shared/analytics/constants.dart' as gac;
-import '../../shared/common_widgets.dart';
-import '../../shared/editable_list.dart';
 import '../../shared/globals.dart';
 import '../../shared/preferences/preferences.dart';
 import '../../shared/primitives/simple_items.dart';
+import '../../shared/ui/common_widgets.dart';
+import '../../shared/ui/editable_list.dart';
 
 class FlutterInspectorSettingsDialog extends StatelessWidget {
   const FlutterInspectorSettingsDialog({super.key});
diff --git a/packages/devtools_app/lib/src/screens/inspector_v2/inspector_controller.dart b/packages/devtools_app/lib/src/screens/inspector_v2/inspector_controller.dart
index e640e37..0add997 100644
--- a/packages/devtools_app/lib/src/screens/inspector_v2/inspector_controller.dart
+++ b/packages/devtools_app/lib/src/screens/inspector_v2/inspector_controller.dart
@@ -31,8 +31,8 @@
 import '../../shared/diagnostics/inspector_service.dart';
 import '../../shared/diagnostics/primitives/instance_ref.dart';
 import '../../shared/globals.dart';
+import '../../shared/primitives/query_parameters.dart';
 import '../../shared/primitives/utils.dart';
-import '../../shared/query_parameters.dart';
 import '../inspector_shared/inspector_screen.dart';
 import 'inspector_data_models.dart';
 import 'inspector_tree_controller.dart';
diff --git a/packages/devtools_app/lib/src/screens/inspector_v2/inspector_screen_body.dart b/packages/devtools_app/lib/src/screens/inspector_v2/inspector_screen_body.dart
index 1cd1752..31c9abc 100644
--- a/packages/devtools_app/lib/src/screens/inspector_v2/inspector_screen_body.dart
+++ b/packages/devtools_app/lib/src/screens/inspector_v2/inspector_screen_body.dart
@@ -11,11 +11,11 @@
 
 import '../../shared/analytics/analytics.dart' as ga;
 import '../../shared/analytics/constants.dart' as gac;
-import '../../shared/common_widgets.dart';
 import '../../shared/console/eval/inspector_tree_v2.dart';
-import '../../shared/error_badge_manager.dart';
 import '../../shared/globals.dart';
+import '../../shared/managers/error_badge_manager.dart';
 import '../../shared/primitives/blocking_action_mixin.dart';
+import '../../shared/ui/common_widgets.dart';
 import '../../shared/ui/search.dart';
 import '../inspector_shared/inspector_controls.dart';
 import '../inspector_shared/inspector_screen.dart';
diff --git a/packages/devtools_app/lib/src/screens/inspector_v2/inspector_tree_controller.dart b/packages/devtools_app/lib/src/screens/inspector_v2/inspector_tree_controller.dart
index 1c7cae3..45e3d0e 100644
--- a/packages/devtools_app/lib/src/screens/inspector_v2/inspector_tree_controller.dart
+++ b/packages/devtools_app/lib/src/screens/inspector_v2/inspector_tree_controller.dart
@@ -16,19 +16,19 @@
 import '../../shared/analytics/analytics.dart' as ga;
 import '../../shared/analytics/constants.dart' as gac;
 import '../../shared/analytics/metrics.dart';
-import '../../shared/collapsible_mixin.dart';
-import '../../shared/common_widgets.dart';
 import '../../shared/console/eval/inspector_tree_v2.dart';
 import '../../shared/console/widgets/description.dart';
 import '../../shared/diagnostics/diagnostics_node.dart';
-import '../../shared/diagnostics_text_styles.dart';
-import '../../shared/error_badge_manager.dart';
 import '../../shared/globals.dart';
+import '../../shared/managers/error_badge_manager.dart';
+import '../../shared/primitives/collapsible_mixin.dart';
+import '../../shared/primitives/diagnostics_text_styles.dart';
 import '../../shared/primitives/utils.dart';
 import '../../shared/ui/colors.dart';
+import '../../shared/ui/common_widgets.dart';
 import '../../shared/ui/search.dart';
 import '../../shared/ui/utils.dart';
-import '../../shared/utils.dart';
+import '../../shared/utils/utils.dart';
 import 'inspector_controller.dart';
 
 final _log = Logger('inspector_tree_controller');
diff --git a/packages/devtools_app/lib/src/screens/inspector_v2/layout_explorer/flex/flex.dart b/packages/devtools_app/lib/src/screens/inspector_v2/layout_explorer/flex/flex.dart
index 5a0a0b7..6b8517a 100644
--- a/packages/devtools_app/lib/src/screens/inspector_v2/layout_explorer/flex/flex.dart
+++ b/packages/devtools_app/lib/src/screens/inspector_v2/layout_explorer/flex/flex.dart
@@ -8,10 +8,10 @@
 import 'package:devtools_app_shared/ui.dart';
 import 'package:flutter/material.dart';
 
-import '../../../../shared/common_widgets.dart';
 import '../../../../shared/diagnostics/diagnostics_node.dart';
 import '../../../../shared/diagnostics/inspector_service.dart';
 import '../../../../shared/primitives/math_utils.dart';
+import '../../../../shared/ui/common_widgets.dart';
 import '../../inspector_data_models.dart';
 import '../ui/arrow.dart';
 import '../ui/free_space.dart';
diff --git a/packages/devtools_app/lib/src/screens/logging/_log_details.dart b/packages/devtools_app/lib/src/screens/logging/_log_details.dart
index 02f285e..f265651 100644
--- a/packages/devtools_app/lib/src/screens/logging/_log_details.dart
+++ b/packages/devtools_app/lib/src/screens/logging/_log_details.dart
@@ -8,9 +8,9 @@
 import 'package:devtools_app_shared/utils.dart';
 import 'package:flutter/material.dart';
 
-import '../../shared/common_widgets.dart';
 import '../../shared/globals.dart';
 import '../../shared/preferences/preferences.dart';
+import '../../shared/ui/common_widgets.dart';
 import 'logging_controller.dart';
 
 class LogDetails extends StatefulWidget {
diff --git a/packages/devtools_app/lib/src/screens/logging/logging_controller.dart b/packages/devtools_app/lib/src/screens/logging/logging_controller.dart
index 9471bac..77b01fe 100644
--- a/packages/devtools_app/lib/src/screens/logging/logging_controller.dart
+++ b/packages/devtools_app/lib/src/screens/logging/logging_controller.dart
@@ -15,10 +15,10 @@
 import 'package:path/path.dart' as path;
 import 'package:vm_service/vm_service.dart';
 
-import '../../framework/app_error_handling.dart' as error_handling;
 import '../../service/vm_service_wrapper.dart';
 import '../../shared/diagnostics/diagnostics_node.dart';
 import '../../shared/diagnostics/inspector_service.dart';
+import '../../shared/framework/app_error_handling.dart' as error_handling;
 import '../../shared/globals.dart';
 import '../../shared/primitives/byte_utils.dart';
 import '../../shared/primitives/message_bus.dart';
diff --git a/packages/devtools_app/lib/src/screens/logging/logging_controls.dart b/packages/devtools_app/lib/src/screens/logging/logging_controls.dart
index e6f939a..f1652b3 100644
--- a/packages/devtools_app/lib/src/screens/logging/logging_controls.dart
+++ b/packages/devtools_app/lib/src/screens/logging/logging_controls.dart
@@ -10,9 +10,9 @@
 
 import '../../service/service_extension_widgets.dart';
 import '../../shared/analytics/constants.dart' as gac;
-import '../../shared/common_widgets.dart';
 import '../../shared/globals.dart';
 import '../../shared/primitives/utils.dart';
+import '../../shared/ui/common_widgets.dart';
 import '../../shared/ui/filter.dart';
 import '../../shared/ui/search.dart';
 import 'logging_controller.dart';
diff --git a/packages/devtools_app/lib/src/screens/logging/logging_screen.dart b/packages/devtools_app/lib/src/screens/logging/logging_screen.dart
index 4beb4c1..d077b75 100644
--- a/packages/devtools_app/lib/src/screens/logging/logging_screen.dart
+++ b/packages/devtools_app/lib/src/screens/logging/logging_screen.dart
@@ -9,9 +9,9 @@
 
 import '../../shared/analytics/analytics.dart' as ga;
 import '../../shared/analytics/constants.dart' as gac;
-import '../../shared/screen.dart';
+import '../../shared/framework/screen.dart';
 import '../../shared/ui/utils.dart';
-import '../../shared/utils.dart';
+import '../../shared/utils/utils.dart';
 import '_log_details.dart';
 import '_logs_table.dart';
 import 'logging_controller.dart';
diff --git a/packages/devtools_app/lib/src/screens/memory/framework/memory_controller.dart b/packages/devtools_app/lib/src/screens/memory/framework/memory_controller.dart
index c9a30b9..fea2a1f 100644
--- a/packages/devtools_app/lib/src/screens/memory/framework/memory_controller.dart
+++ b/packages/devtools_app/lib/src/screens/memory/framework/memory_controller.dart
@@ -7,11 +7,11 @@
 import 'package:devtools_app_shared/utils.dart';
 import 'package:flutter/foundation.dart';
 
+import '../../../shared/framework/screen.dart';
 import '../../../shared/globals.dart';
 import '../../../shared/memory/class_name.dart';
 import '../../../shared/memory/heap_graph_loader.dart';
-import '../../../shared/offline_data.dart';
-import '../../../shared/screen.dart';
+import '../../../shared/offline/offline_data.dart';
 import '../panes/chart/controller/chart_data.dart';
 import '../panes/chart/controller/chart_pane_controller.dart';
 import '../panes/diff/controller/diff_pane_controller.dart';
diff --git a/packages/devtools_app/lib/src/screens/memory/framework/memory_screen.dart b/packages/devtools_app/lib/src/screens/memory/framework/memory_screen.dart
index 5509440..ced6107 100644
--- a/packages/devtools_app/lib/src/screens/memory/framework/memory_screen.dart
+++ b/packages/devtools_app/lib/src/screens/memory/framework/memory_screen.dart
@@ -8,8 +8,8 @@
 import 'package:flutter/material.dart';
 
 import '../../../shared/analytics/analytics.dart' as ga;
+import '../../../shared/framework/screen.dart';
 import '../../../shared/primitives/listenable.dart';
-import '../../../shared/screen.dart';
 import '../panes/diff/controller/diff_pane_controller.dart';
 import '../panes/diff/diff_pane.dart';
 import 'screen_body.dart';
diff --git a/packages/devtools_app/lib/src/screens/memory/framework/memory_tabs.dart b/packages/devtools_app/lib/src/screens/memory/framework/memory_tabs.dart
index 02bb802..f11fb78 100644
--- a/packages/devtools_app/lib/src/screens/memory/framework/memory_tabs.dart
+++ b/packages/devtools_app/lib/src/screens/memory/framework/memory_tabs.dart
@@ -5,7 +5,7 @@
 import 'package:flutter/material.dart';
 
 import '../../../shared/analytics/constants.dart' as gac;
-import '../../../shared/common_widgets.dart';
+import '../../../shared/ui/common_widgets.dart';
 import '../../../shared/ui/tab.dart';
 import '../panes/diff/diff_pane.dart';
 import '../panes/profile/profile_view.dart';
diff --git a/packages/devtools_app/lib/src/screens/memory/framework/screen_body.dart b/packages/devtools_app/lib/src/screens/memory/framework/screen_body.dart
index c753e6e..7639bc5 100644
--- a/packages/devtools_app/lib/src/screens/memory/framework/screen_body.dart
+++ b/packages/devtools_app/lib/src/screens/memory/framework/screen_body.dart
@@ -6,12 +6,12 @@
 import 'package:devtools_app_shared/utils.dart';
 import 'package:flutter/material.dart';
 
-import '../../../shared/banner_messages.dart';
-import '../../../shared/common_widgets.dart';
+import '../../../shared/framework/screen.dart';
 import '../../../shared/globals.dart';
 import '../../../shared/http/http_service.dart' as http_service;
-import '../../../shared/screen.dart';
-import '../../../shared/utils.dart';
+import '../../../shared/managers/banner_messages.dart';
+import '../../../shared/ui/common_widgets.dart';
+import '../../../shared/utils/utils.dart';
 import '../panes/chart/widgets/chart_pane.dart';
 import '../panes/control/widgets/control_pane.dart';
 import 'memory_controller.dart';
diff --git a/packages/devtools_app/lib/src/screens/memory/panes/chart/controller/chart_connection.dart b/packages/devtools_app/lib/src/screens/memory/panes/chart/controller/chart_connection.dart
index f2a55de..3022daf 100644
--- a/packages/devtools_app/lib/src/screens/memory/panes/chart/controller/chart_connection.dart
+++ b/packages/devtools_app/lib/src/screens/memory/panes/chart/controller/chart_connection.dart
@@ -6,7 +6,7 @@
 import 'package:flutter/foundation.dart';
 
 import '../../../../../shared/globals.dart';
-import '../../../../../shared/utils.dart';
+import '../../../../../shared/utils/utils.dart';
 import '../../../shared/primitives/memory_timeline.dart';
 import '../data/primitives.dart';
 import 'memory_tracker.dart';
diff --git a/packages/devtools_app/lib/src/screens/memory/panes/chart/controller/memory_tracker.dart b/packages/devtools_app/lib/src/screens/memory/panes/chart/controller/memory_tracker.dart
index 036b3b9..b7e3a07 100644
--- a/packages/devtools_app/lib/src/screens/memory/panes/chart/controller/memory_tracker.dart
+++ b/packages/devtools_app/lib/src/screens/memory/panes/chart/controller/memory_tracker.dart
@@ -12,7 +12,7 @@
 import 'package:vm_service/vm_service.dart';
 
 import '../../../../../shared/globals.dart';
-import '../../../../../shared/utils.dart';
+import '../../../../../shared/utils/utils.dart';
 import '../../../shared/primitives/memory_timeline.dart';
 import '../data/primitives.dart';
 
diff --git a/packages/devtools_app/lib/src/screens/memory/panes/chart/data/charts.dart b/packages/devtools_app/lib/src/screens/memory/panes/chart/data/charts.dart
index 884515f..0876bc2 100644
--- a/packages/devtools_app/lib/src/screens/memory/panes/chart/data/charts.dart
+++ b/packages/devtools_app/lib/src/screens/memory/panes/chart/data/charts.dart
@@ -11,7 +11,6 @@
 import '../../../../../shared/primitives/byte_utils.dart';
 import '../../../../../shared/primitives/utils.dart';
 import '../../../shared/primitives/memory_timeline.dart';
-//import '../../../framework/connected/memory_controller.dart';
 
 /// Name of each trace being charted, index order is the trace index
 /// too (order of trace creation top-down order).
diff --git a/packages/devtools_app/lib/src/screens/memory/panes/chart/widgets/chart_control_pane.dart b/packages/devtools_app/lib/src/screens/memory/panes/chart/widgets/chart_control_pane.dart
index 32d7abf..35b1379 100644
--- a/packages/devtools_app/lib/src/screens/memory/panes/chart/widgets/chart_control_pane.dart
+++ b/packages/devtools_app/lib/src/screens/memory/panes/chart/widgets/chart_control_pane.dart
@@ -8,9 +8,9 @@
 
 import '../../../../../shared/analytics/analytics.dart' as ga;
 import '../../../../../shared/analytics/constants.dart' as gac;
-import '../../../../../shared/common_widgets.dart';
 import '../../../../../shared/globals.dart';
 import '../../../../../shared/primitives/simple_items.dart';
+import '../../../../../shared/ui/common_widgets.dart';
 import '../../../shared/primitives/simple_elements.dart';
 import '../controller/chart_pane_controller.dart';
 import 'interval_dropdown.dart';
diff --git a/packages/devtools_app/lib/src/screens/memory/panes/chart/widgets/chart_pane.dart b/packages/devtools_app/lib/src/screens/memory/panes/chart/widgets/chart_pane.dart
index 9d57352..d5e24ca 100644
--- a/packages/devtools_app/lib/src/screens/memory/panes/chart/widgets/chart_pane.dart
+++ b/packages/devtools_app/lib/src/screens/memory/panes/chart/widgets/chart_pane.dart
@@ -8,11 +8,11 @@
 import 'package:flutter/services.dart';
 
 import '../../../../../shared/charts/chart_controller.dart';
-import '../../../../../shared/common_widgets.dart';
 import '../../../../../shared/globals.dart';
 import '../../../../../shared/primitives/utils.dart';
 import '../../../../../shared/ui/colors.dart';
-import '../../../../../shared/utils.dart';
+import '../../../../../shared/ui/common_widgets.dart';
+import '../../../../../shared/utils/utils.dart';
 import '../../../shared/primitives/painting.dart';
 import '../controller/chart_pane_controller.dart';
 import '../data/charts.dart';
diff --git a/packages/devtools_app/lib/src/screens/memory/panes/control/widgets/control_pane.dart b/packages/devtools_app/lib/src/screens/memory/panes/control/widgets/control_pane.dart
index 53d4fa8..d81d48d 100644
--- a/packages/devtools_app/lib/src/screens/memory/panes/control/widgets/control_pane.dart
+++ b/packages/devtools_app/lib/src/screens/memory/panes/control/widgets/control_pane.dart
@@ -5,8 +5,8 @@
 import 'package:flutter/foundation.dart';
 import 'package:flutter/material.dart';
 
-import '../../../../../shared/common_widgets.dart';
-import '../../../../../shared/screen.dart';
+import '../../../../../shared/framework/screen.dart';
+import '../../../../../shared/ui/common_widgets.dart';
 import 'primary_controls.dart';
 import 'secondary_controls.dart';
 
diff --git a/packages/devtools_app/lib/src/screens/memory/panes/control/widgets/primary_controls.dart b/packages/devtools_app/lib/src/screens/memory/panes/control/widgets/primary_controls.dart
index eaf8f68..be5261c 100644
--- a/packages/devtools_app/lib/src/screens/memory/panes/control/widgets/primary_controls.dart
+++ b/packages/devtools_app/lib/src/screens/memory/panes/control/widgets/primary_controls.dart
@@ -5,8 +5,8 @@
 import 'package:flutter/material.dart';
 
 import '../../../../../shared/analytics/constants.dart' as gac;
-import '../../../../../shared/common_widgets.dart';
 import '../../../../../shared/globals.dart';
+import '../../../../../shared/ui/common_widgets.dart';
 import '../../../shared/primitives/simple_elements.dart';
 
 class PrimaryControls extends StatelessWidget {
diff --git a/packages/devtools_app/lib/src/screens/memory/panes/control/widgets/secondary_controls.dart b/packages/devtools_app/lib/src/screens/memory/panes/control/widgets/secondary_controls.dart
index abe7607..745c133 100644
--- a/packages/devtools_app/lib/src/screens/memory/panes/control/widgets/secondary_controls.dart
+++ b/packages/devtools_app/lib/src/screens/memory/panes/control/widgets/secondary_controls.dart
@@ -9,11 +9,11 @@
 import 'package:flutter/material.dart';
 
 import '../../../../../shared/analytics/constants.dart' as gac;
-import '../../../../../shared/common_widgets.dart';
 import '../../../../../shared/feature_flags.dart';
-import '../../../../../shared/file_import.dart';
+import '../../../../../shared/framework/screen.dart';
 import '../../../../../shared/globals.dart';
-import '../../../../../shared/screen.dart';
+import '../../../../../shared/ui/common_widgets.dart';
+import '../../../../../shared/ui/file_import.dart';
 import '../../../shared/primitives/simple_elements.dart';
 import 'settings_dialog.dart';
 
diff --git a/packages/devtools_app/lib/src/screens/memory/panes/control/widgets/settings_dialog.dart b/packages/devtools_app/lib/src/screens/memory/panes/control/widgets/settings_dialog.dart
index 4f7f9e6..6b2bf64 100644
--- a/packages/devtools_app/lib/src/screens/memory/panes/control/widgets/settings_dialog.dart
+++ b/packages/devtools_app/lib/src/screens/memory/panes/control/widgets/settings_dialog.dart
@@ -5,8 +5,8 @@
 import 'package:devtools_app_shared/ui.dart';
 import 'package:flutter/material.dart';
 
-import '../../../../../shared/common_widgets.dart';
 import '../../../../../shared/globals.dart';
+import '../../../../../shared/ui/common_widgets.dart';
 
 /// The dialog keys for testing purposes.
 @visibleForTesting
diff --git a/packages/devtools_app/lib/src/screens/memory/panes/diff/controller/diff_pane_controller.dart b/packages/devtools_app/lib/src/screens/memory/panes/diff/controller/diff_pane_controller.dart
index e3f203b..2f76ffe 100644
--- a/packages/devtools_app/lib/src/screens/memory/panes/diff/controller/diff_pane_controller.dart
+++ b/packages/devtools_app/lib/src/screens/memory/panes/diff/controller/diff_pane_controller.dart
@@ -13,12 +13,12 @@
 import '../../../../../shared/analytics/analytics.dart' as ga;
 import '../../../../../shared/analytics/constants.dart' as gac;
 import '../../../../../shared/config_specific/import_export/import_export.dart';
-import '../../../../../shared/file_import.dart';
 import '../../../../../shared/memory/class_name.dart';
 import '../../../../../shared/memory/classes.dart';
 import '../../../../../shared/memory/heap_graph_loader.dart';
 import '../../../../../shared/memory/retaining_path.dart';
 import '../../../../../shared/memory/simple_items.dart';
+import '../../../../../shared/ui/file_import.dart';
 import '../../../shared/heap/class_filter.dart';
 import '../../../shared/primitives/memory_utils.dart';
 import '../data/classes_diff.dart';
diff --git a/packages/devtools_app/lib/src/screens/memory/panes/diff/diff_pane.dart b/packages/devtools_app/lib/src/screens/memory/panes/diff/diff_pane.dart
index a139f1b..c132def 100644
--- a/packages/devtools_app/lib/src/screens/memory/panes/diff/diff_pane.dart
+++ b/packages/devtools_app/lib/src/screens/memory/panes/diff/diff_pane.dart
@@ -10,9 +10,9 @@
 import 'package:flutter_markdown/flutter_markdown.dart';
 
 import '../../../../shared/analytics/constants.dart' as gac;
-import '../../../../shared/common_widgets.dart';
 import '../../../../shared/primitives/simple_items.dart';
-import '../../../../shared/utils.dart';
+import '../../../../shared/ui/common_widgets.dart';
+import '../../../../shared/utils/utils.dart';
 import '../../shared/widgets/shared_memory_widgets.dart';
 import 'controller/diff_pane_controller.dart';
 import 'controller/snapshot_item.dart';
diff --git a/packages/devtools_app/lib/src/screens/memory/panes/diff/widgets/class_details/class_details.dart b/packages/devtools_app/lib/src/screens/memory/panes/diff/widgets/class_details/class_details.dart
index 135314b..08dea9c 100644
--- a/packages/devtools_app/lib/src/screens/memory/panes/diff/widgets/class_details/class_details.dart
+++ b/packages/devtools_app/lib/src/screens/memory/panes/diff/widgets/class_details/class_details.dart
@@ -5,8 +5,8 @@
 import 'package:devtools_app_shared/ui.dart';
 import 'package:flutter/widgets.dart';
 
-import '../../../../../../shared/common_widgets.dart';
 import '../../../../../../shared/memory/classes.dart';
+import '../../../../../../shared/ui/common_widgets.dart';
 import '../../controller/class_data.dart';
 import 'path.dart';
 import 'paths.dart';
diff --git a/packages/devtools_app/lib/src/screens/memory/panes/diff/widgets/class_details/path.dart b/packages/devtools_app/lib/src/screens/memory/panes/diff/widgets/class_details/path.dart
index a84f9a6..2319d43 100644
--- a/packages/devtools_app/lib/src/screens/memory/panes/diff/widgets/class_details/path.dart
+++ b/packages/devtools_app/lib/src/screens/memory/panes/diff/widgets/class_details/path.dart
@@ -7,9 +7,9 @@
 
 import '../../../../../../shared/analytics/analytics.dart' as ga;
 import '../../../../../../shared/analytics/constants.dart' as gac;
-import '../../../../../../shared/common_widgets.dart';
 import '../../../../../../shared/memory/retaining_path.dart';
 import '../../../../../../shared/primitives/utils.dart';
+import '../../../../../../shared/ui/common_widgets.dart';
 import '../../controller/class_data.dart';
 
 class RetainingPathView extends StatelessWidget {
diff --git a/packages/devtools_app/lib/src/screens/memory/panes/diff/widgets/snapshot_control_pane.dart b/packages/devtools_app/lib/src/screens/memory/panes/diff/widgets/snapshot_control_pane.dart
index e5a12b3..e21f7f5 100644
--- a/packages/devtools_app/lib/src/screens/memory/panes/diff/widgets/snapshot_control_pane.dart
+++ b/packages/devtools_app/lib/src/screens/memory/panes/diff/widgets/snapshot_control_pane.dart
@@ -7,9 +7,9 @@
 
 import '../../../../../shared/analytics/analytics.dart' as ga;
 import '../../../../../shared/analytics/constants.dart' as gac;
-import '../../../../../shared/common_widgets.dart';
 import '../../../../../shared/memory/simple_items.dart';
 import '../../../../../shared/primitives/byte_utils.dart';
+import '../../../../../shared/ui/common_widgets.dart';
 import '../../../shared/primitives/simple_elements.dart';
 import '../controller/diff_pane_controller.dart';
 import '../controller/snapshot_item.dart';
diff --git a/packages/devtools_app/lib/src/screens/memory/panes/diff/widgets/snapshot_list.dart b/packages/devtools_app/lib/src/screens/memory/panes/diff/widgets/snapshot_list.dart
index 52eaf02..6703691 100644
--- a/packages/devtools_app/lib/src/screens/memory/panes/diff/widgets/snapshot_list.dart
+++ b/packages/devtools_app/lib/src/screens/memory/panes/diff/widgets/snapshot_list.dart
@@ -12,11 +12,11 @@
 
 import '../../../../../shared/analytics/analytics.dart' as ga;
 import '../../../../../shared/analytics/constants.dart' as gac;
-import '../../../../../shared/common_widgets.dart';
-import '../../../../../shared/dialogs.dart';
 import '../../../../../shared/globals.dart';
 import '../../../../../shared/primitives/byte_utils.dart';
 import '../../../../../shared/primitives/utils.dart';
+import '../../../../../shared/ui/common_widgets.dart';
+import '../../../../../shared/ui/dialogs.dart';
 import '../controller/diff_pane_controller.dart';
 import '../controller/snapshot_item.dart';
 
diff --git a/packages/devtools_app/lib/src/screens/memory/panes/diff/widgets/snapshot_view.dart b/packages/devtools_app/lib/src/screens/memory/panes/diff/widgets/snapshot_view.dart
index 1242bce..e9e277d 100644
--- a/packages/devtools_app/lib/src/screens/memory/panes/diff/widgets/snapshot_view.dart
+++ b/packages/devtools_app/lib/src/screens/memory/panes/diff/widgets/snapshot_view.dart
@@ -5,9 +5,9 @@
 import 'package:devtools_app_shared/ui.dart';
 import 'package:flutter/material.dart';
 
-import '../../../../../shared/common_widgets.dart';
 import '../../../../../shared/memory/classes.dart';
 import '../../../../../shared/primitives/utils.dart';
+import '../../../../../shared/ui/common_widgets.dart';
 import '../controller/diff_pane_controller.dart';
 import '../data/classes_diff.dart';
 import 'class_details/class_details.dart';
diff --git a/packages/devtools_app/lib/src/screens/memory/panes/profile/profile_view.dart b/packages/devtools_app/lib/src/screens/memory/panes/profile/profile_view.dart
index 78f8c42..9e4a1e2 100644
--- a/packages/devtools_app/lib/src/screens/memory/panes/profile/profile_view.dart
+++ b/packages/devtools_app/lib/src/screens/memory/panes/profile/profile_view.dart
@@ -8,7 +8,6 @@
 
 import '../../../../shared/analytics/analytics.dart' as ga;
 import '../../../../shared/analytics/constants.dart' as gac;
-import '../../../../shared/common_widgets.dart';
 import '../../../../shared/globals.dart';
 import '../../../../shared/memory/gc_stats.dart';
 import '../../../../shared/primitives/byte_utils.dart';
@@ -17,6 +16,7 @@
 import '../../../../shared/table/table.dart';
 import '../../../../shared/table/table_controller.dart';
 import '../../../../shared/table/table_data.dart';
+import '../../../../shared/ui/common_widgets.dart';
 import '../../shared/heap/class_filter.dart';
 import '../../shared/primitives/simple_elements.dart';
 import '../../shared/widgets/class_filter.dart';
diff --git a/packages/devtools_app/lib/src/screens/memory/panes/tracing/class_table.dart b/packages/devtools_app/lib/src/screens/memory/panes/tracing/class_table.dart
index ad724ab..3586fc3 100644
--- a/packages/devtools_app/lib/src/screens/memory/panes/tracing/class_table.dart
+++ b/packages/devtools_app/lib/src/screens/memory/panes/tracing/class_table.dart
@@ -7,11 +7,11 @@
 
 import '../../../../shared/analytics/analytics.dart' as ga;
 import '../../../../shared/analytics/constants.dart' as gac;
-import '../../../../shared/common_widgets.dart';
 import '../../../../shared/primitives/utils.dart';
 import '../../../../shared/table/table.dart';
 import '../../../../shared/table/table_controller.dart';
 import '../../../../shared/table/table_data.dart';
+import '../../../../shared/ui/common_widgets.dart';
 import '../../shared/widgets/shared_memory_widgets.dart';
 import 'tracing_data.dart';
 import 'tracing_pane_controller.dart';
diff --git a/packages/devtools_app/lib/src/screens/memory/panes/tracing/tracing_tree.dart b/packages/devtools_app/lib/src/screens/memory/panes/tracing/tracing_tree.dart
index e86d1a3..7a1e037 100644
--- a/packages/devtools_app/lib/src/screens/memory/panes/tracing/tracing_tree.dart
+++ b/packages/devtools_app/lib/src/screens/memory/panes/tracing/tracing_tree.dart
@@ -7,10 +7,10 @@
 import 'package:flutter_markdown/flutter_markdown.dart';
 
 import '../../../../shared/analytics/constants.dart' as gac;
-import '../../../../shared/common_widgets.dart';
 import '../../../../shared/primitives/utils.dart';
 import '../../../../shared/table/table.dart';
 import '../../../../shared/table/table_data.dart';
+import '../../../../shared/ui/common_widgets.dart';
 import '../../../../shared/ui/tab.dart';
 import '../../../profiler/cpu_profile_model.dart';
 import '../../../profiler/panes/cpu_profile_columns.dart';
diff --git a/packages/devtools_app/lib/src/screens/memory/panes/tracing/tracing_view.dart b/packages/devtools_app/lib/src/screens/memory/panes/tracing/tracing_view.dart
index eb72f9d..1887649 100644
--- a/packages/devtools_app/lib/src/screens/memory/panes/tracing/tracing_view.dart
+++ b/packages/devtools_app/lib/src/screens/memory/panes/tracing/tracing_view.dart
@@ -8,9 +8,9 @@
 import 'package:flutter/material.dart';
 
 import '../../../../shared/analytics/constants.dart' as gac;
-import '../../../../shared/common_widgets.dart';
 import '../../../../shared/globals.dart';
 import '../../../../shared/primitives/simple_items.dart';
+import '../../../../shared/ui/common_widgets.dart';
 import '../../shared/widgets/shared_memory_widgets.dart';
 import 'class_table.dart';
 import 'tracing_pane_controller.dart';
diff --git a/packages/devtools_app/lib/src/screens/memory/shared/heap/sampler.dart b/packages/devtools_app/lib/src/screens/memory/shared/heap/sampler.dart
index 94870cc..7f9b42b 100644
--- a/packages/devtools_app/lib/src/screens/memory/shared/heap/sampler.dart
+++ b/packages/devtools_app/lib/src/screens/memory/shared/heap/sampler.dart
@@ -12,7 +12,7 @@
 import '../../../../shared/memory/classes.dart';
 import '../../../../shared/memory/heap_data.dart';
 import '../../../../shared/memory/heap_object.dart';
-import '../../../../shared/vm_utils.dart';
+import '../../../../shared/utils/vm_utils.dart';
 
 class _HeapObjects {
   _HeapObjects(this.objects, this.heap);
diff --git a/packages/devtools_app/lib/src/screens/memory/shared/primitives/instance_context_menu.dart b/packages/devtools_app/lib/src/screens/memory/shared/primitives/instance_context_menu.dart
index b6397c6..fa37269 100644
--- a/packages/devtools_app/lib/src/screens/memory/shared/primitives/instance_context_menu.dart
+++ b/packages/devtools_app/lib/src/screens/memory/shared/primitives/instance_context_menu.dart
@@ -4,8 +4,8 @@
 
 import 'package:flutter/material.dart';
 
-import '../../../../shared/common_widgets.dart';
 import '../../../../shared/primitives/utils.dart';
+import '../../../../shared/ui/common_widgets.dart';
 
 typedef MenuBuilder = List<Widget> Function();
 
diff --git a/packages/devtools_app/lib/src/screens/memory/shared/widgets/class_filter.dart b/packages/devtools_app/lib/src/screens/memory/shared/widgets/class_filter.dart
index c35ded8..b6f487a 100644
--- a/packages/devtools_app/lib/src/screens/memory/shared/widgets/class_filter.dart
+++ b/packages/devtools_app/lib/src/screens/memory/shared/widgets/class_filter.dart
@@ -9,8 +9,8 @@
 
 import '../../../../shared/analytics/analytics.dart' as ga;
 import '../../../../shared/analytics/constants.dart' as gac;
-import '../../../../shared/common_widgets.dart';
 import '../../../../shared/memory/class_name.dart';
+import '../../../../shared/ui/common_widgets.dart';
 import '../heap/class_filter.dart';
 
 String _adaptRootPackageForFilter(String? rootPackage) {
diff --git a/packages/devtools_app/lib/src/screens/memory/shared/widgets/shared_memory_widgets.dart b/packages/devtools_app/lib/src/screens/memory/shared/widgets/shared_memory_widgets.dart
index f6405c3..199af62 100644
--- a/packages/devtools_app/lib/src/screens/memory/shared/widgets/shared_memory_widgets.dart
+++ b/packages/devtools_app/lib/src/screens/memory/shared/widgets/shared_memory_widgets.dart
@@ -6,8 +6,8 @@
 import 'package:flutter/widgets.dart';
 
 import '../../../../shared/analytics/constants.dart' as gac;
-import '../../../../shared/common_widgets.dart';
 import '../../../../shared/memory/class_name.dart';
+import '../../../../shared/ui/common_widgets.dart';
 
 class HeapClassView extends StatelessWidget {
   const HeapClassView({
diff --git a/packages/devtools_app/lib/src/screens/network/har_builder.dart b/packages/devtools_app/lib/src/screens/network/har_builder.dart
index 6e37ca9..b715fc8 100644
--- a/packages/devtools_app/lib/src/screens/network/har_builder.dart
+++ b/packages/devtools_app/lib/src/screens/network/har_builder.dart
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 import '../../shared/http/http_request_data.dart';
-import '../../shared/utils.dart';
+import '../../shared/utils/utils.dart';
 import 'constants.dart';
 import 'har_data_entry.dart';
 
diff --git a/packages/devtools_app/lib/src/screens/network/network_controller.dart b/packages/devtools_app/lib/src/screens/network/network_controller.dart
index 2d55596..bc61b25 100644
--- a/packages/devtools_app/lib/src/screens/network/network_controller.dart
+++ b/packages/devtools_app/lib/src/screens/network/network_controller.dart
@@ -17,7 +17,7 @@
 import '../../shared/primitives/utils.dart';
 import '../../shared/ui/filter.dart';
 import '../../shared/ui/search.dart';
-import '../../shared/utils.dart';
+import '../../shared/utils/utils.dart';
 import 'har_network_data.dart';
 import 'network_model.dart';
 import 'network_screen.dart';
diff --git a/packages/devtools_app/lib/src/screens/network/network_request_inspector_views.dart b/packages/devtools_app/lib/src/screens/network/network_request_inspector_views.dart
index ae4b8ac..1bf9602 100644
--- a/packages/devtools_app/lib/src/screens/network/network_request_inspector_views.dart
+++ b/packages/devtools_app/lib/src/screens/network/network_request_inspector_views.dart
@@ -9,12 +9,12 @@
 import 'package:flutter/material.dart';
 import 'package:image/image.dart' as image;
 
-import '../../shared/common_widgets.dart';
 import '../../shared/http/http.dart';
 import '../../shared/http/http_request_data.dart';
 import '../../shared/primitives/byte_utils.dart';
 import '../../shared/primitives/utils.dart';
 import '../../shared/ui/colors.dart';
+import '../../shared/ui/common_widgets.dart';
 import 'network_controller.dart';
 import 'network_model.dart';
 
diff --git a/packages/devtools_app/lib/src/screens/network/network_screen.dart b/packages/devtools_app/lib/src/screens/network/network_screen.dart
index ec92270..ce7e247 100644
--- a/packages/devtools_app/lib/src/screens/network/network_screen.dart
+++ b/packages/devtools_app/lib/src/screens/network/network_screen.dart
@@ -12,19 +12,19 @@
 
 import '../../shared/analytics/analytics.dart' as ga;
 import '../../shared/analytics/constants.dart' as gac;
-import '../../shared/common_widgets.dart';
 import '../../shared/config_specific/copy_to_clipboard/copy_to_clipboard.dart';
+import '../../shared/framework/screen.dart';
 import '../../shared/globals.dart';
 import '../../shared/http/curl_command.dart';
 import '../../shared/http/http_request_data.dart';
 import '../../shared/primitives/utils.dart';
-import '../../shared/screen.dart';
 import '../../shared/table/table.dart';
 import '../../shared/table/table_data.dart';
+import '../../shared/ui/common_widgets.dart';
 import '../../shared/ui/filter.dart';
 import '../../shared/ui/search.dart';
 import '../../shared/ui/utils.dart';
-import '../../shared/utils.dart';
+import '../../shared/utils/utils.dart';
 import 'network_controller.dart';
 import 'network_model.dart';
 import 'network_request_inspector.dart';
diff --git a/packages/devtools_app/lib/src/screens/performance/panes/controls/enhance_tracing/enhance_tracing.dart b/packages/devtools_app/lib/src/screens/performance/panes/controls/enhance_tracing/enhance_tracing.dart
index a766875..b08fbe7 100644
--- a/packages/devtools_app/lib/src/screens/performance/panes/controls/enhance_tracing/enhance_tracing.dart
+++ b/packages/devtools_app/lib/src/screens/performance/panes/controls/enhance_tracing/enhance_tracing.dart
@@ -11,9 +11,9 @@
 
 import '../../../../../service/service_extension_widgets.dart';
 import '../../../../../service/service_extensions.dart' as extensions;
-import '../../../../../shared/common_widgets.dart';
 import '../../../../../shared/globals.dart';
 import '../../../../../shared/primitives/utils.dart';
+import '../../../../../shared/ui/common_widgets.dart';
 import '../performance_controls.dart';
 import 'enhance_tracing_controller.dart';
 
diff --git a/packages/devtools_app/lib/src/screens/performance/panes/controls/performance_controls.dart b/packages/devtools_app/lib/src/screens/performance/panes/controls/performance_controls.dart
index dcc334e..b592f82 100644
--- a/packages/devtools_app/lib/src/screens/performance/panes/controls/performance_controls.dart
+++ b/packages/devtools_app/lib/src/screens/performance/panes/controls/performance_controls.dart
@@ -11,10 +11,10 @@
 import '../../../../service/service_extensions.dart' as extensions;
 import '../../../../shared/analytics/analytics.dart' as ga;
 import '../../../../shared/analytics/constants.dart' as gac;
-import '../../../../shared/common_widgets.dart';
-import '../../../../shared/file_import.dart';
+import '../../../../shared/framework/screen.dart';
 import '../../../../shared/globals.dart';
-import '../../../../shared/screen.dart';
+import '../../../../shared/ui/common_widgets.dart';
+import '../../../../shared/ui/file_import.dart';
 import '../../../../shared/ui/utils.dart';
 import '../../panes/timeline_events/timeline_events_controller.dart';
 import '../../performance_controller.dart';
diff --git a/packages/devtools_app/lib/src/screens/performance/panes/controls/performance_settings.dart b/packages/devtools_app/lib/src/screens/performance/panes/controls/performance_settings.dart
index 31f9901..b85844d 100644
--- a/packages/devtools_app/lib/src/screens/performance/panes/controls/performance_settings.dart
+++ b/packages/devtools_app/lib/src/screens/performance/panes/controls/performance_settings.dart
@@ -5,8 +5,8 @@
 import 'package:devtools_app_shared/ui.dart';
 import 'package:flutter/material.dart';
 
-import '../../../../shared/common_widgets.dart';
 import '../../../../shared/globals.dart';
+import '../../../../shared/ui/common_widgets.dart';
 import '../../performance_controller.dart';
 import '../flutter_frames/flutter_frames_controller.dart';
 
diff --git a/packages/devtools_app/lib/src/screens/performance/panes/flutter_frames/flutter_frames_chart.dart b/packages/devtools_app/lib/src/screens/performance/panes/flutter_frames/flutter_frames_chart.dart
index 0d8209a..814964c 100644
--- a/packages/devtools_app/lib/src/screens/performance/panes/flutter_frames/flutter_frames_chart.dart
+++ b/packages/devtools_app/lib/src/screens/performance/panes/flutter_frames/flutter_frames_chart.dart
@@ -9,18 +9,17 @@
 import 'package:devtools_app_shared/utils.dart';
 import 'package:flutter/material.dart';
 
-import '../../../../framework/scaffold.dart';
 import '../../../../shared/analytics/analytics.dart' as ga;
 import '../../../../shared/analytics/constants.dart' as gac;
 import '../../../../shared/analytics/metrics.dart';
-import '../../../../shared/banner_messages.dart';
-import '../../../../shared/common_widgets.dart';
+import '../../../../shared/framework/screen.dart';
 import '../../../../shared/globals.dart';
+import '../../../../shared/managers/banner_messages.dart';
 import '../../../../shared/primitives/utils.dart';
 import '../../../../shared/ui/colors.dart';
+import '../../../../shared/ui/common_widgets.dart';
 import '../../../../shared/ui/hover.dart';
 import '../../../../shared/ui/utils.dart';
-import '../../performance_screen.dart';
 import '../../performance_utils.dart';
 import 'flutter_frame_model.dart';
 import 'flutter_frames_controller.dart';
@@ -125,8 +124,8 @@
       bannerMessages.addMessage(
         ShaderJankMessage(
           offlineDataController.showingOfflineData.value
-              ? SimpleScreen.id
-              : PerformanceScreen.id,
+              ? ScreenMetaData.simple.id
+              : ScreenMetaData.performance.id,
           jankyFramesCount: shaderJankFrames.length,
           jankDuration: shaderJankDuration,
         ).build(context),
diff --git a/packages/devtools_app/lib/src/screens/performance/panes/frame_analysis/frame_hints.dart b/packages/devtools_app/lib/src/screens/performance/panes/frame_analysis/frame_hints.dart
index b0de47b..24d2b46 100644
--- a/packages/devtools_app/lib/src/screens/performance/panes/frame_analysis/frame_hints.dart
+++ b/packages/devtools_app/lib/src/screens/performance/panes/frame_analysis/frame_hints.dart
@@ -6,12 +6,12 @@
 import 'package:devtools_app_shared/utils.dart';
 import 'package:flutter/material.dart';
 
+import '../../../../service/connected_app/connected_app.dart';
 import '../../../../service/service_extensions.dart' as extensions;
 import '../../../../shared/analytics/constants.dart' as gac;
-import '../../../../shared/common_widgets.dart';
-import '../../../../shared/connected_app.dart';
 import '../../../../shared/globals.dart';
 import '../../../../shared/primitives/utils.dart';
+import '../../../../shared/ui/common_widgets.dart';
 import '../../performance_utils.dart';
 import '../controls/enhance_tracing/enhance_tracing.dart';
 import '../controls/enhance_tracing/enhance_tracing_controller.dart';
diff --git a/packages/devtools_app/lib/src/screens/performance/panes/rebuild_stats/rebuild_stats.dart b/packages/devtools_app/lib/src/screens/performance/panes/rebuild_stats/rebuild_stats.dart
index 53a319a..52a4d08 100644
--- a/packages/devtools_app/lib/src/screens/performance/panes/rebuild_stats/rebuild_stats.dart
+++ b/packages/devtools_app/lib/src/screens/performance/panes/rebuild_stats/rebuild_stats.dart
@@ -12,11 +12,11 @@
 import '../../../../service/service_extensions.dart' as extensions;
 import '../../../../service/vm_service_wrapper.dart';
 import '../../../../shared/analytics/constants.dart' as gac;
-import '../../../../shared/common_widgets.dart';
 import '../../../../shared/globals.dart';
 import '../../../../shared/primitives/utils.dart';
 import '../../../../shared/table/table.dart';
 import '../../../../shared/table/table_data.dart';
+import '../../../../shared/ui/common_widgets.dart';
 import '../flutter_frames/flutter_frame_model.dart';
 import 'rebuild_stats_model.dart';
 
diff --git a/packages/devtools_app/lib/src/screens/performance/panes/timeline_events/perfetto/_perfetto_web.dart b/packages/devtools_app/lib/src/screens/performance/panes/timeline_events/perfetto/_perfetto_web.dart
index 31e660e..984cfde 100644
--- a/packages/devtools_app/lib/src/screens/performance/panes/timeline_events/perfetto/_perfetto_web.dart
+++ b/packages/devtools_app/lib/src/screens/performance/panes/timeline_events/perfetto/_perfetto_web.dart
@@ -18,7 +18,7 @@
 import '../../../../../shared/analytics/constants.dart' as gac;
 import '../../../../../shared/globals.dart';
 import '../../../../../shared/primitives/utils.dart';
-import '../../../../../shared/utils.dart';
+import '../../../../../shared/utils/utils.dart';
 import '../../../performance_utils.dart';
 import '_perfetto_controller_web.dart';
 import 'perfetto_controller.dart';
diff --git a/packages/devtools_app/lib/src/screens/performance/panes/timeline_events/perfetto/perfetto.dart b/packages/devtools_app/lib/src/screens/performance/panes/timeline_events/perfetto/perfetto.dart
index b3400f5..1ae376f 100644
--- a/packages/devtools_app/lib/src/screens/performance/panes/timeline_events/perfetto/perfetto.dart
+++ b/packages/devtools_app/lib/src/screens/performance/panes/timeline_events/perfetto/perfetto.dart
@@ -5,7 +5,7 @@
 import 'package:flutter/material.dart';
 
 import '../../../../../shared/analytics/constants.dart' as gac;
-import '../../../../../shared/common_widgets.dart';
+import '../../../../../shared/ui/common_widgets.dart';
 import '_perfetto_desktop.dart'
     if (dart.library.js_interop) '_perfetto_web.dart';
 import 'perfetto_controller.dart';
diff --git a/packages/devtools_app/lib/src/screens/performance/panes/timeline_events/timeline_events_controller.dart b/packages/devtools_app/lib/src/screens/performance/panes/timeline_events/timeline_events_controller.dart
index 9050d50..ac7c480 100644
--- a/packages/devtools_app/lib/src/screens/performance/panes/timeline_events/timeline_events_controller.dart
+++ b/packages/devtools_app/lib/src/screens/performance/panes/timeline_events/timeline_events_controller.dart
@@ -17,10 +17,10 @@
 import '../../../../shared/analytics/constants.dart' as gac;
 import '../../../../shared/analytics/metrics.dart';
 import '../../../../shared/development_helpers.dart';
-import '../../../../shared/future_work_tracker.dart';
 import '../../../../shared/globals.dart';
 import '../../../../shared/primitives/byte_utils.dart';
 import '../../../../shared/primitives/utils.dart';
+import '../../../../shared/utils/future_work_tracker.dart';
 import '../../performance_controller.dart';
 import '../../performance_model.dart';
 import '../../performance_utils.dart';
diff --git a/packages/devtools_app/lib/src/screens/performance/panes/timeline_events/timeline_events_view.dart b/packages/devtools_app/lib/src/screens/performance/panes/timeline_events/timeline_events_view.dart
index 9cb0c1c..3901837 100644
--- a/packages/devtools_app/lib/src/screens/performance/panes/timeline_events/timeline_events_view.dart
+++ b/packages/devtools_app/lib/src/screens/performance/panes/timeline_events/timeline_events_view.dart
@@ -10,9 +10,9 @@
 import 'package:flutter/material.dart';
 
 import '../../../../shared/analytics/constants.dart' as gac;
-import '../../../../shared/common_widgets.dart';
 import '../../../../shared/globals.dart';
 import '../../../../shared/http/http_service.dart' as http_service;
+import '../../../../shared/ui/common_widgets.dart';
 import 'perfetto/perfetto.dart';
 import 'timeline_events_controller.dart';
 
diff --git a/packages/devtools_app/lib/src/screens/performance/performance_controller.dart b/packages/devtools_app/lib/src/screens/performance/performance_controller.dart
index 87154b6..c51887e 100644
--- a/packages/devtools_app/lib/src/screens/performance/performance_controller.dart
+++ b/packages/devtools_app/lib/src/screens/performance/performance_controller.dart
@@ -12,7 +12,7 @@
 import '../../shared/diagnostics/inspector_service.dart';
 import '../../shared/feature_flags.dart';
 import '../../shared/globals.dart';
-import '../../shared/offline_data.dart';
+import '../../shared/offline/offline_data.dart';
 import 'panes/controls/enhance_tracing/enhance_tracing_controller.dart';
 import 'panes/flutter_frames/flutter_frame_model.dart';
 import 'panes/flutter_frames/flutter_frames_controller.dart';
diff --git a/packages/devtools_app/lib/src/screens/performance/performance_screen.dart b/packages/devtools_app/lib/src/screens/performance/performance_screen.dart
index 86db29f..871bce7 100644
--- a/packages/devtools_app/lib/src/screens/performance/performance_screen.dart
+++ b/packages/devtools_app/lib/src/screens/performance/performance_screen.dart
@@ -12,13 +12,13 @@
 
 import '../../shared/analytics/analytics.dart' as ga;
 import '../../shared/analytics/constants.dart' as gac;
-import '../../shared/banner_messages.dart';
-import '../../shared/common_widgets.dart';
 import '../../shared/config_specific/import_export/import_export.dart';
-import '../../shared/file_import.dart';
+import '../../shared/framework/screen.dart';
 import '../../shared/globals.dart';
-import '../../shared/screen.dart';
-import '../../shared/utils.dart';
+import '../../shared/managers/banner_messages.dart';
+import '../../shared/ui/common_widgets.dart';
+import '../../shared/ui/file_import.dart';
+import '../../shared/utils/utils.dart';
 import 'panes/controls/performance_controls.dart';
 import 'panes/flutter_frames/flutter_frames_chart.dart';
 import 'performance_controller.dart';
diff --git a/packages/devtools_app/lib/src/screens/performance/tabbed_performance_view.dart b/packages/devtools_app/lib/src/screens/performance/tabbed_performance_view.dart
index c241626..531527f 100644
--- a/packages/devtools_app/lib/src/screens/performance/tabbed_performance_view.dart
+++ b/packages/devtools_app/lib/src/screens/performance/tabbed_performance_view.dart
@@ -9,11 +9,11 @@
 import 'package:flutter/material.dart';
 
 import '../../shared/analytics/constants.dart' as gac;
-import '../../shared/common_widgets.dart';
 import '../../shared/feature_flags.dart';
 import '../../shared/globals.dart';
+import '../../shared/ui/common_widgets.dart';
 import '../../shared/ui/tab.dart';
-import '../../shared/utils.dart';
+import '../../shared/utils/utils.dart';
 import 'panes/flutter_frames/flutter_frame_model.dart';
 import 'panes/flutter_frames/flutter_frames_controller.dart';
 import 'panes/frame_analysis/frame_analysis.dart';
diff --git a/packages/devtools_app/lib/src/screens/profiler/cpu_profile_model.dart b/packages/devtools_app/lib/src/screens/profiler/cpu_profile_model.dart
index eedc9da..93ca122 100644
--- a/packages/devtools_app/lib/src/screens/profiler/cpu_profile_model.dart
+++ b/packages/devtools_app/lib/src/screens/profiler/cpu_profile_model.dart
@@ -13,8 +13,8 @@
 import '../../shared/primitives/trace_event.dart';
 import '../../shared/primitives/trees.dart';
 import '../../shared/primitives/utils.dart';
-import '../../shared/profiler_utils.dart';
 import '../../shared/ui/search.dart';
+import '../../shared/utils/profiler_utils.dart';
 import '../vm_developer/vm_service_private_extensions.dart';
 import 'cpu_profile_transformer.dart';
 import 'cpu_profiler_controller.dart';
diff --git a/packages/devtools_app/lib/src/screens/profiler/cpu_profiler.dart b/packages/devtools_app/lib/src/screens/profiler/cpu_profiler.dart
index b80bc17..af0e86b 100644
--- a/packages/devtools_app/lib/src/screens/profiler/cpu_profiler.dart
+++ b/packages/devtools_app/lib/src/screens/profiler/cpu_profiler.dart
@@ -10,10 +10,10 @@
 
 import '../../shared/analytics/constants.dart' as gac;
 import '../../shared/charts/flame_chart.dart';
-import '../../shared/common_widgets.dart';
 import '../../shared/globals.dart';
 import '../../shared/primitives/utils.dart';
 import '../../shared/ui/colors.dart';
+import '../../shared/ui/common_widgets.dart';
 import '../../shared/ui/filter.dart';
 import '../../shared/ui/search.dart';
 import '../../shared/ui/tab.dart';
diff --git a/packages/devtools_app/lib/src/screens/profiler/panes/controls/profiler_screen_controls.dart b/packages/devtools_app/lib/src/screens/profiler/panes/controls/profiler_screen_controls.dart
index dfe5eab..8cba8f8 100644
--- a/packages/devtools_app/lib/src/screens/profiler/panes/controls/profiler_screen_controls.dart
+++ b/packages/devtools_app/lib/src/screens/profiler/panes/controls/profiler_screen_controls.dart
@@ -6,10 +6,10 @@
 import 'package:flutter/material.dart';
 
 import '../../../../shared/analytics/constants.dart' as gac;
-import '../../../../shared/common_widgets.dart';
-import '../../../../shared/file_import.dart';
+import '../../../../shared/framework/screen.dart';
 import '../../../../shared/globals.dart';
-import '../../../../shared/screen.dart';
+import '../../../../shared/ui/common_widgets.dart';
+import '../../../../shared/ui/file_import.dart';
 import '../../../../shared/ui/vm_flag_widgets.dart';
 import '../../profiler_screen_controller.dart';
 
diff --git a/packages/devtools_app/lib/src/screens/profiler/panes/cpu_profile_columns.dart b/packages/devtools_app/lib/src/screens/profiler/panes/cpu_profile_columns.dart
index cde9c31..fedf980 100644
--- a/packages/devtools_app/lib/src/screens/profiler/panes/cpu_profile_columns.dart
+++ b/packages/devtools_app/lib/src/screens/profiler/panes/cpu_profile_columns.dart
@@ -4,9 +4,9 @@
 
 import 'package:flutter/material.dart';
 
-import '../../../shared/profiler_utils.dart';
 import '../../../shared/table/table.dart';
 import '../../../shared/table/table_data.dart';
+import '../../../shared/utils/profiler_utils.dart';
 import '../cpu_profile_model.dart';
 
 class SelfTimeColumn extends TimeAndPercentageColumn<CpuStackFrame> {
diff --git a/packages/devtools_app/lib/src/screens/profiler/panes/method_table/method_table.dart b/packages/devtools_app/lib/src/screens/profiler/panes/method_table/method_table.dart
index b50eedf..06f34c0 100644
--- a/packages/devtools_app/lib/src/screens/profiler/panes/method_table/method_table.dart
+++ b/packages/devtools_app/lib/src/screens/profiler/panes/method_table/method_table.dart
@@ -7,9 +7,9 @@
 import 'package:flutter/material.dart';
 
 import '../../../../shared/primitives/utils.dart';
-import '../../../../shared/profiler_utils.dart';
 import '../../../../shared/table/table.dart';
 import '../../../../shared/table/table_data.dart';
+import '../../../../shared/utils/profiler_utils.dart';
 import 'method_table_controller.dart';
 import 'method_table_model.dart';
 
diff --git a/packages/devtools_app/lib/src/screens/profiler/panes/method_table/method_table_model.dart b/packages/devtools_app/lib/src/screens/profiler/panes/method_table/method_table_model.dart
index 39752c7..92cf67a 100644
--- a/packages/devtools_app/lib/src/screens/profiler/panes/method_table/method_table_model.dart
+++ b/packages/devtools_app/lib/src/screens/profiler/panes/method_table/method_table_model.dart
@@ -6,8 +6,8 @@
 
 import '../../../../shared/primitives/graph.dart';
 import '../../../../shared/primitives/utils.dart';
-import '../../../../shared/profiler_utils.dart';
 import '../../../../shared/ui/search.dart';
+import '../../../../shared/utils/profiler_utils.dart';
 import '../../cpu_profile_model.dart';
 
 /// Represents a graph node for a method in a CPU profile method table.
diff --git a/packages/devtools_app/lib/src/screens/profiler/profiler_screen.dart b/packages/devtools_app/lib/src/screens/profiler/profiler_screen.dart
index af5013d..2e84c37 100644
--- a/packages/devtools_app/lib/src/screens/profiler/profiler_screen.dart
+++ b/packages/devtools_app/lib/src/screens/profiler/profiler_screen.dart
@@ -11,14 +11,14 @@
 
 import '../../shared/analytics/analytics.dart' as ga;
 import '../../shared/analytics/constants.dart' as gac;
-import '../../shared/banner_messages.dart';
-import '../../shared/common_widgets.dart';
 import '../../shared/config_specific/import_export/import_export.dart';
-import '../../shared/file_import.dart';
+import '../../shared/framework/screen.dart';
 import '../../shared/globals.dart';
+import '../../shared/managers/banner_messages.dart';
 import '../../shared/primitives/listenable.dart';
-import '../../shared/screen.dart';
-import '../../shared/utils.dart';
+import '../../shared/ui/common_widgets.dart';
+import '../../shared/ui/file_import.dart';
+import '../../shared/utils/utils.dart';
 import 'cpu_profile_model.dart';
 import 'cpu_profiler.dart';
 import 'cpu_profiler_controller.dart';
diff --git a/packages/devtools_app/lib/src/screens/profiler/profiler_screen_controller.dart b/packages/devtools_app/lib/src/screens/profiler/profiler_screen_controller.dart
index 4139e82..49a18f1 100644
--- a/packages/devtools_app/lib/src/screens/profiler/profiler_screen_controller.dart
+++ b/packages/devtools_app/lib/src/screens/profiler/profiler_screen_controller.dart
@@ -10,7 +10,7 @@
 
 import '../../shared/config_specific/logger/allowed_error.dart';
 import '../../shared/globals.dart';
-import '../../shared/offline_data.dart';
+import '../../shared/offline/offline_data.dart';
 import '../../shared/primitives/utils.dart';
 import 'cpu_profile_model.dart';
 import 'cpu_profile_service.dart';
diff --git a/packages/devtools_app/lib/src/screens/profiler/profiler_status.dart b/packages/devtools_app/lib/src/screens/profiler/profiler_status.dart
index e5ef464..41ca81e 100644
--- a/packages/devtools_app/lib/src/screens/profiler/profiler_status.dart
+++ b/packages/devtools_app/lib/src/screens/profiler/profiler_status.dart
@@ -5,7 +5,7 @@
 import 'package:devtools_app_shared/ui.dart';
 import 'package:flutter/material.dart';
 
-import '../../shared/common_widgets.dart';
+import '../../shared/ui/common_widgets.dart';
 import 'cpu_profiler_controller.dart';
 
 class CpuProfilerDisabled extends StatelessWidget {
diff --git a/packages/devtools_app/lib/src/screens/provider/provider_screen.dart b/packages/devtools_app/lib/src/screens/provider/provider_screen.dart
index b26f4e3..2d956d9 100644
--- a/packages/devtools_app/lib/src/screens/provider/provider_screen.dart
+++ b/packages/devtools_app/lib/src/screens/provider/provider_screen.dart
@@ -5,8 +5,8 @@
 import 'package:devtools_app_shared/ui.dart';
 import 'package:flutter/material.dart';
 
-import '../../shared/common_widgets.dart';
-import '../../shared/screen.dart';
+import '../../shared/framework/screen.dart';
+import '../../shared/ui/common_widgets.dart';
 
 class ProviderScreen extends Screen {
   ProviderScreen() : super.fromMetaData(ScreenMetaData.provider);
diff --git a/packages/devtools_app/lib/src/screens/vm_developer/isolate_statistics/isolate_statistics_view.dart b/packages/devtools_app/lib/src/screens/vm_developer/isolate_statistics/isolate_statistics_view.dart
index a6c8f84..7bdf306 100644
--- a/packages/devtools_app/lib/src/screens/vm_developer/isolate_statistics/isolate_statistics_view.dart
+++ b/packages/devtools_app/lib/src/screens/vm_developer/isolate_statistics/isolate_statistics_view.dart
@@ -9,11 +9,11 @@
 import 'package:vm_service/vm_service.dart';
 
 import '../../../shared/analytics/constants.dart' as gac;
-import '../../../shared/common_widgets.dart';
 import '../../../shared/primitives/byte_utils.dart';
 import '../../../shared/primitives/utils.dart';
 import '../../../shared/table/table.dart';
 import '../../../shared/table/table_data.dart';
+import '../../../shared/ui/common_widgets.dart';
 import '../../profiler/profiler_status.dart';
 import '../vm_developer_common_widgets.dart';
 import '../vm_developer_tools_screen.dart';
diff --git a/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/class_hierarchy_explorer.dart b/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/class_hierarchy_explorer.dart
index f388007..a1493b4 100644
--- a/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/class_hierarchy_explorer.dart
+++ b/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/class_hierarchy_explorer.dart
@@ -4,8 +4,8 @@
 
 import 'package:flutter/material.dart';
 
-import '../../../shared/common_widgets.dart';
 import '../../../shared/tree.dart';
+import '../../../shared/ui/common_widgets.dart';
 import '../vm_developer_common_widgets.dart';
 import 'class_hierarchy_explorer_controller.dart';
 import 'object_inspector_view_controller.dart';
diff --git a/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/object_store.dart b/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/object_store.dart
index 64a7fcf..e42c0b1 100644
--- a/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/object_store.dart
+++ b/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/object_store.dart
@@ -5,10 +5,10 @@
 import 'package:flutter/widgets.dart';
 import 'package:vm_service/vm_service.dart';
 
-import '../../../shared/common_widgets.dart';
 import '../../../shared/primitives/utils.dart';
 import '../../../shared/table/table.dart';
 import '../../../shared/table/table_data.dart';
+import '../../../shared/ui/common_widgets.dart';
 import '../vm_developer_common_widgets.dart';
 import '../vm_service_private_extensions.dart';
 import 'object_store_controller.dart';
diff --git a/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/object_viewport.dart b/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/object_viewport.dart
index a47d9c8..84e5ca3 100644
--- a/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/object_viewport.dart
+++ b/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/object_viewport.dart
@@ -5,9 +5,9 @@
 import 'package:flutter/material.dart';
 import 'package:vm_service/vm_service.dart';
 
-import '../../../shared/common_widgets.dart';
-import '../../../shared/history_viewport.dart';
 import '../../../shared/primitives/history_manager.dart';
+import '../../../shared/ui/common_widgets.dart';
+import '../../../shared/ui/history_viewport.dart';
 import 'object_inspector_view_controller.dart';
 import 'vm_class_display.dart';
 import 'vm_code_display.dart';
diff --git a/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/vm_code_display.dart b/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/vm_code_display.dart
index 2de8d52..ea22fe2 100644
--- a/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/vm_code_display.dart
+++ b/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/vm_code_display.dart
@@ -7,11 +7,11 @@
 import 'package:string_scanner/string_scanner.dart';
 import 'package:vm_service/vm_service.dart';
 
-import '../../../shared/common_widgets.dart';
 import '../../../shared/primitives/utils.dart';
 import '../../../shared/table/table.dart';
 import '../../../shared/table/table_data.dart';
 import '../../../shared/ui/colors.dart';
+import '../../../shared/ui/common_widgets.dart';
 import '../vm_developer_common_widgets.dart';
 import '../vm_service_private_extensions.dart';
 import 'object_inspector_view_controller.dart';
diff --git a/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/vm_ic_data_display.dart b/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/vm_ic_data_display.dart
index 4333943..e8dba62 100644
--- a/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/vm_ic_data_display.dart
+++ b/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/vm_ic_data_display.dart
@@ -7,8 +7,8 @@
 import 'package:flutter/material.dart';
 import 'package:vm_service/vm_service.dart';
 
-import '../../../shared/common_widgets.dart';
 import '../../../shared/globals.dart';
+import '../../../shared/ui/common_widgets.dart';
 import '../vm_developer_common_widgets.dart';
 import 'object_inspector_view_controller.dart';
 import 'vm_object_model.dart';
diff --git a/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/vm_instance_display.dart b/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/vm_instance_display.dart
index d3587fe..2b45272 100644
--- a/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/vm_instance_display.dart
+++ b/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/vm_instance_display.dart
@@ -8,13 +8,13 @@
 import 'package:flutter/material.dart';
 import 'package:vm_service/vm_service.dart';
 
-import '../../../shared/common_widgets.dart';
 import '../../../shared/console/widgets/expandable_variable.dart';
 import '../../../shared/diagnostics/dart_object_node.dart';
 import '../../../shared/diagnostics/tree_builder.dart';
 import '../../../shared/globals.dart';
 import '../../../shared/primitives/utils.dart';
 import '../../../shared/ui/colors.dart';
+import '../../../shared/ui/common_widgets.dart';
 import '../vm_developer_common_widgets.dart';
 import 'object_inspector_view_controller.dart';
 import 'vm_object_model.dart';
diff --git a/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/vm_simple_list_display.dart b/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/vm_simple_list_display.dart
index 0d17429..e2d8213 100644
--- a/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/vm_simple_list_display.dart
+++ b/packages/devtools_app/lib/src/screens/vm_developer/object_inspector/vm_simple_list_display.dart
@@ -7,8 +7,8 @@
 import 'package:flutter/material.dart';
 import 'package:vm_service/vm_service.dart';
 
-import '../../../shared/common_widgets.dart';
 import '../../../shared/globals.dart';
+import '../../../shared/ui/common_widgets.dart';
 import '../vm_developer_common_widgets.dart';
 import 'object_inspector_view_controller.dart';
 import 'vm_object_model.dart';
diff --git a/packages/devtools_app/lib/src/screens/vm_developer/process_memory/process_memory_view.dart b/packages/devtools_app/lib/src/screens/vm_developer/process_memory/process_memory_view.dart
index ba6717b..8d5c955 100644
--- a/packages/devtools_app/lib/src/screens/vm_developer/process_memory/process_memory_view.dart
+++ b/packages/devtools_app/lib/src/screens/vm_developer/process_memory/process_memory_view.dart
@@ -8,10 +8,10 @@
 
 import '../../../shared/analytics/constants.dart' as gac;
 import '../../../shared/charts/treemap.dart';
-import '../../../shared/common_widgets.dart';
 import '../../../shared/primitives/utils.dart';
 import '../../../shared/table/table.dart';
 import '../../../shared/table/table_data.dart';
+import '../../../shared/ui/common_widgets.dart';
 import '../../../shared/ui/tab.dart';
 import '../vm_developer_tools_screen.dart';
 import 'process_memory_tree_columns.dart';
diff --git a/packages/devtools_app/lib/src/screens/vm_developer/vm_developer_common_widgets.dart b/packages/devtools_app/lib/src/screens/vm_developer/vm_developer_common_widgets.dart
index 82cfb4b..b4917f2 100644
--- a/packages/devtools_app/lib/src/screens/vm_developer/vm_developer_common_widgets.dart
+++ b/packages/devtools_app/lib/src/screens/vm_developer/vm_developer_common_widgets.dart
@@ -13,11 +13,11 @@
 import 'package:vm_service/vm_service.dart';
 
 import '../../shared/analytics/constants.dart' as gac;
-import '../../shared/common_widgets.dart';
 import '../../shared/globals.dart';
 import '../../shared/primitives/byte_utils.dart';
 import '../../shared/primitives/utils.dart';
 import '../../shared/tree.dart';
+import '../../shared/ui/common_widgets.dart';
 import '../debugger/codeview.dart';
 import '../debugger/codeview_controller.dart';
 import '../debugger/debugger_model.dart';
diff --git a/packages/devtools_app/lib/src/screens/vm_developer/vm_developer_tools_screen.dart b/packages/devtools_app/lib/src/screens/vm_developer/vm_developer_tools_screen.dart
index 4be635b..4e57c9c 100644
--- a/packages/devtools_app/lib/src/screens/vm_developer/vm_developer_tools_screen.dart
+++ b/packages/devtools_app/lib/src/screens/vm_developer/vm_developer_tools_screen.dart
@@ -7,8 +7,8 @@
 import 'package:flutter/foundation.dart';
 import 'package:flutter/material.dart';
 
-import '../../shared/screen.dart';
-import '../../shared/utils.dart';
+import '../../shared/framework/screen.dart';
+import '../../shared/utils/utils.dart';
 import 'isolate_statistics/isolate_statistics_view.dart';
 import 'object_inspector/object_inspector_view.dart';
 import 'process_memory/process_memory_view.dart';
diff --git a/packages/devtools_app/lib/src/screens/vm_developer/vm_statistics/vm_statistics_view.dart b/packages/devtools_app/lib/src/screens/vm_developer/vm_statistics/vm_statistics_view.dart
index 4b62fc5..ef539a9 100644
--- a/packages/devtools_app/lib/src/screens/vm_developer/vm_statistics/vm_statistics_view.dart
+++ b/packages/devtools_app/lib/src/screens/vm_developer/vm_statistics/vm_statistics_view.dart
@@ -7,11 +7,11 @@
 import 'package:vm_service/vm_service.dart';
 
 import '../../../shared/analytics/constants.dart' as gac;
-import '../../../shared/common_widgets.dart';
 import '../../../shared/primitives/byte_utils.dart';
 import '../../../shared/primitives/utils.dart';
 import '../../../shared/table/table.dart';
 import '../../../shared/table/table_data.dart';
+import '../../../shared/ui/common_widgets.dart';
 import '../vm_developer_common_widgets.dart';
 import '../vm_developer_tools_screen.dart';
 import '../vm_service_private_extensions.dart';
diff --git a/packages/devtools_app/lib/src/shared/connected_app.dart b/packages/devtools_app/lib/src/service/connected_app/connected_app.dart
similarity index 94%
rename from packages/devtools_app/lib/src/shared/connected_app.dart
rename to packages/devtools_app/lib/src/service/connected_app/connected_app.dart
index 730a3b2..0034e4a 100644
--- a/packages/devtools_app/lib/src/shared/connected_app.dart
+++ b/packages/devtools_app/lib/src/service/connected_app/connected_app.dart
@@ -9,9 +9,9 @@
 import 'package:flutter/foundation.dart';
 import 'package:vm_service/vm_service.dart';
 
-import 'console/primitives/eval_history.dart';
-import 'diagnostics/dap_object_node.dart';
-import 'diagnostics/dart_object_node.dart';
+import '../../shared/console/primitives/eval_history.dart';
+import '../../shared/diagnostics/dap_object_node.dart';
+import '../../shared/diagnostics/dart_object_node.dart';
 
 /// Extension methods for the [ConnectedApp] class.
 ///
diff --git a/packages/devtools_app/lib/src/shared/connection_info.dart b/packages/devtools_app/lib/src/service/connected_app/connection_info.dart
similarity index 91%
rename from packages/devtools_app/lib/src/shared/connection_info.dart
rename to packages/devtools_app/lib/src/service/connected_app/connection_info.dart
index 95ce958..b7bc665 100644
--- a/packages/devtools_app/lib/src/shared/connection_info.dart
+++ b/packages/devtools_app/lib/src/service/connected_app/connection_info.dart
@@ -5,13 +5,13 @@
 import 'package:devtools_app_shared/ui.dart';
 import 'package:flutter/material.dart';
 
-import 'analytics/constants.dart' as gac;
-import 'common_widgets.dart';
-import 'globals.dart';
-import 'primitives/utils.dart';
-import 'routing.dart';
-import 'ui/utils.dart';
-import 'utils.dart';
+import '../../shared/analytics/constants.dart' as gac;
+import '../../shared/framework/routing.dart';
+import '../../shared/globals.dart';
+import '../../shared/primitives/utils.dart';
+import '../../shared/ui/common_widgets.dart';
+import '../../shared/ui/utils.dart';
+import '../../shared/utils/utils.dart';
 
 class ConnectedAppSummary extends StatelessWidget {
   const ConnectedAppSummary({super.key, this.narrowView = true});
diff --git a/packages/devtools_app/lib/src/service/service_extension_widgets.dart b/packages/devtools_app/lib/src/service/service_extension_widgets.dart
index 9fdf6d5..1c4b0af 100644
--- a/packages/devtools_app/lib/src/service/service_extension_widgets.dart
+++ b/packages/devtools_app/lib/src/service/service_extension_widgets.dart
@@ -16,12 +16,12 @@
 
 import '../shared/analytics/analytics.dart' as ga;
 import '../shared/analytics/constants.dart' as gac;
-import '../shared/common_widgets.dart';
 import '../shared/constants.dart';
 import '../shared/globals.dart';
 import '../shared/primitives/message_bus.dart';
 import '../shared/primitives/utils.dart';
 import '../shared/ui/colors.dart';
+import '../shared/ui/common_widgets.dart';
 import '../shared/ui/hover.dart';
 import 'service_extensions.dart';
 import 'service_registrations.dart';
diff --git a/packages/devtools_app/lib/src/service/service_manager.dart b/packages/devtools_app/lib/src/service/service_manager.dart
index bde8343..c6a4635 100644
--- a/packages/devtools_app/lib/src/service/service_manager.dart
+++ b/packages/devtools_app/lib/src/service/service_manager.dart
@@ -10,14 +10,14 @@
 import 'package:vm_service/vm_service.dart' hide Error;
 
 import '../shared/analytics/analytics.dart' as ga;
-import '../shared/connected_app.dart';
 import '../shared/console/console_service.dart';
 import '../shared/diagnostics/inspector_service.dart';
-import '../shared/error_badge_manager.dart';
 import '../shared/globals.dart';
+import '../shared/managers/error_badge_manager.dart';
 import '../shared/server/server.dart' as server;
 import '../shared/title.dart';
-import '../shared/utils.dart';
+import '../shared/utils/utils.dart';
+import 'connected_app/connected_app.dart';
 import 'service_registrations.dart' as registrations;
 import 'timeline_streams.dart';
 import 'vm_flags.dart';
diff --git a/packages/devtools_app/lib/src/shared/analytics/_analytics_web.dart b/packages/devtools_app/lib/src/shared/analytics/_analytics_web.dart
index 51a623a..ec56c46 100644
--- a/packages/devtools_app/lib/src/shared/analytics/_analytics_web.dart
+++ b/packages/devtools_app/lib/src/shared/analytics/_analytics_web.dart
@@ -16,12 +16,12 @@
 import 'package:unified_analytics/unified_analytics.dart' as ua;
 import 'package:web/web.dart';
 
-import '../dtd_manager_extensions.dart';
 import '../globals.dart';
+import '../managers/dtd_manager_extensions.dart';
+import '../primitives/query_parameters.dart';
 import '../primitives/utils.dart';
-import '../query_parameters.dart';
 import '../server/server.dart' as server;
-import '../utils.dart';
+import '../utils/utils.dart';
 import 'analytics_common.dart';
 import 'constants.dart' as gac;
 import 'gtags.dart';
diff --git a/packages/devtools_app/lib/src/shared/analytics/analytics_controller.dart b/packages/devtools_app/lib/src/shared/analytics/analytics_controller.dart
index 2ed6ba5..b8102cc 100644
--- a/packages/devtools_app/lib/src/shared/analytics/analytics_controller.dart
+++ b/packages/devtools_app/lib/src/shared/analytics/analytics_controller.dart
@@ -7,9 +7,8 @@
 import 'package:flutter/foundation.dart';
 
 import '../development_helpers.dart';
-import '../dtd_manager_extensions.dart';
 import '../globals.dart';
-
+import '../managers/dtd_manager_extensions.dart';
 import 'analytics.dart' as ga;
 
 Future<AnalyticsController> get analyticsController async {
diff --git a/packages/devtools_app/lib/src/shared/analytics/constants.dart b/packages/devtools_app/lib/src/shared/analytics/constants.dart
index 25d897e..157eb5d 100644
--- a/packages/devtools_app/lib/src/shared/analytics/constants.dart
+++ b/packages/devtools_app/lib/src/shared/analytics/constants.dart
@@ -4,19 +4,19 @@
 
 import 'package:devtools_shared/devtools_extensions.dart';
 
+import '../framework/screen.dart';
 import '../preferences/preferences.dart';
-import '../screen.dart';
 
 part 'constants/_cpu_profiler_constants.dart';
 part 'constants/_debugger_constants.dart';
 part 'constants/_deep_links_constants.dart';
+part 'constants/_editor_sidebar_constants.dart';
 part 'constants/_extension_constants.dart';
+part 'constants/_inspector_constants.dart';
+part 'constants/_logging_constants.dart';
 part 'constants/_memory_constants.dart';
 part 'constants/_network_constants.dart';
-part 'constants/_logging_constants.dart';
 part 'constants/_performance_constants.dart';
-part 'constants/_editor_sidebar_constants.dart';
-part 'constants/_inspector_constants.dart';
 
 // Type of events (event_category):
 const screenViewEvent = 'screen'; // Active screen (tab selected).
diff --git a/packages/devtools_app/lib/src/shared/analytics/prompt.dart b/packages/devtools_app/lib/src/shared/analytics/prompt.dart
index 915063b..33aaf3f 100644
--- a/packages/devtools_app/lib/src/shared/analytics/prompt.dart
+++ b/packages/devtools_app/lib/src/shared/analytics/prompt.dart
@@ -7,8 +7,8 @@
 import 'package:devtools_app_shared/ui.dart';
 import 'package:flutter/material.dart';
 
-import '../common_widgets.dart';
-import '../utils.dart';
+import '../ui/common_widgets.dart';
+import '../utils/utils.dart';
 import 'analytics_controller.dart';
 
 /// Conditionally displays a prompt to request permission for collection of
diff --git a/packages/devtools_app/lib/src/shared/charts/flame_chart.dart b/packages/devtools_app/lib/src/shared/charts/flame_chart.dart
index 59005f5..2c97078 100644
--- a/packages/devtools_app/lib/src/shared/charts/flame_chart.dart
+++ b/packages/devtools_app/lib/src/shared/charts/flame_chart.dart
@@ -13,15 +13,15 @@
 import 'package:flutter/material.dart';
 import 'package:flutter/services.dart';
 
-import '../common_widgets.dart';
 import '../primitives/extent_delegate_list.dart';
 import '../primitives/flutter_widgets/linked_scroll_controller.dart';
 import '../primitives/trees.dart';
 import '../primitives/utils.dart';
 import '../ui/colors.dart';
+import '../ui/common_widgets.dart';
 import '../ui/search.dart';
 import '../ui/utils.dart';
-import '../utils.dart';
+import '../utils/utils.dart';
 
 const rowPadding = 2.0;
 // Flame chart rows contain text so are not readable if they do not scale with
diff --git a/packages/devtools_app/lib/src/shared/charts/treemap.dart b/packages/devtools_app/lib/src/shared/charts/treemap.dart
index 09d24fd..80b8050 100644
--- a/packages/devtools_app/lib/src/shared/charts/treemap.dart
+++ b/packages/devtools_app/lib/src/shared/charts/treemap.dart
@@ -8,10 +8,10 @@
 import 'package:flutter/material.dart';
 import 'package:logging/logging.dart';
 
-import '../common_widgets.dart';
 import '../primitives/byte_utils.dart';
 import '../primitives/trees.dart';
 import '../ui/colors.dart';
+import '../ui/common_widgets.dart';
 
 enum PivotType { pivotByMiddle, pivotBySize }
 
diff --git a/packages/devtools_app/lib/src/shared/config_specific/import_export/import_export.dart b/packages/devtools_app/lib/src/shared/config_specific/import_export/import_export.dart
index 789e3f7..b774c2d 100644
--- a/packages/devtools_app/lib/src/shared/config_specific/import_export/import_export.dart
+++ b/packages/devtools_app/lib/src/shared/config_specific/import_export/import_export.dart
@@ -7,11 +7,11 @@
 import 'package:devtools_app_shared/service.dart';
 import 'package:intl/intl.dart';
 
+import '../../framework/screen.dart';
 import '../../globals.dart';
 import '../../primitives/encoding.dart';
 import '../../primitives/utils.dart';
-import '../../screen.dart';
-import '../../utils.dart';
+import '../../utils/utils.dart';
 import '_export_desktop.dart' if (dart.library.js_interop) '_export_web.dart';
 
 const nonDevToolsFileMessage =
diff --git a/packages/devtools_app/lib/src/shared/console/console.dart b/packages/devtools_app/lib/src/shared/console/console.dart
index ea9fec2..27514c4 100644
--- a/packages/devtools_app/lib/src/shared/console/console.dart
+++ b/packages/devtools_app/lib/src/shared/console/console.dart
@@ -9,8 +9,8 @@
 import 'package:flutter/foundation.dart';
 import 'package:flutter/material.dart';
 
-import '../common_widgets.dart';
 import '../primitives/utils.dart';
+import '../ui/common_widgets.dart';
 import 'console_service.dart';
 import 'widgets/expandable_variable.dart';
 
diff --git a/packages/devtools_app/lib/src/shared/console/eval/auto_complete.dart b/packages/devtools_app/lib/src/shared/console/eval/auto_complete.dart
index a3db126..c037e30 100644
--- a/packages/devtools_app/lib/src/shared/console/eval/auto_complete.dart
+++ b/packages/devtools_app/lib/src/shared/console/eval/auto_complete.dart
@@ -8,7 +8,7 @@
 import 'package:devtools_app_shared/utils.dart';
 import 'package:vm_service/vm_service.dart';
 
-import '../../connected_app.dart';
+import '../../../service/connected_app/connected_app.dart';
 import '../../globals.dart';
 import '../../ui/search.dart';
 import 'eval_service.dart';
diff --git a/packages/devtools_app/lib/src/shared/console/eval/eval_service.dart b/packages/devtools_app/lib/src/shared/console/eval/eval_service.dart
index ef60f5f..94d39e5 100644
--- a/packages/devtools_app/lib/src/shared/console/eval/eval_service.dart
+++ b/packages/devtools_app/lib/src/shared/console/eval/eval_service.dart
@@ -11,7 +11,7 @@
 import '../../../service/vm_service_wrapper.dart';
 import '../../globals.dart';
 import '../../memory/heap_object.dart';
-import '../../vm_utils.dart';
+import '../../utils/vm_utils.dart';
 import '../primitives/scope.dart';
 
 class EvalService extends DisposableController with AutoDisposeControllerMixin {
diff --git a/packages/devtools_app/lib/src/shared/console/primitives/scope.dart b/packages/devtools_app/lib/src/shared/console/primitives/scope.dart
index d371b63..553832c 100644
--- a/packages/devtools_app/lib/src/shared/console/primitives/scope.dart
+++ b/packages/devtools_app/lib/src/shared/console/primitives/scope.dart
@@ -5,7 +5,7 @@
 import 'package:vm_service/vm_service.dart';
 
 import '../../globals.dart';
-import '../../vm_utils.dart';
+import '../../utils/vm_utils.dart';
 
 class EvalScope {
   /// Parameter `scope` for `serviceManager.manager.service!.evaluate(...)`.
diff --git a/packages/devtools_app/lib/src/shared/console/widgets/console_pane.dart b/packages/devtools_app/lib/src/shared/console/widgets/console_pane.dart
index f6e0d81..ebfb183 100644
--- a/packages/devtools_app/lib/src/shared/console/widgets/console_pane.dart
+++ b/packages/devtools_app/lib/src/shared/console/widgets/console_pane.dart
@@ -6,8 +6,8 @@
 import 'package:flutter/foundation.dart';
 import 'package:flutter/material.dart';
 
-import '../../common_widgets.dart';
 import '../../globals.dart';
+import '../../ui/common_widgets.dart';
 import '../console.dart';
 import '../console_service.dart';
 import 'evaluate.dart';
diff --git a/packages/devtools_app/lib/src/shared/console/widgets/description.dart b/packages/devtools_app/lib/src/shared/console/widgets/description.dart
index b4ae8ed..73b6d27 100644
--- a/packages/devtools_app/lib/src/shared/console/widgets/description.dart
+++ b/packages/devtools_app/lib/src/shared/console/widgets/description.dart
@@ -8,8 +8,8 @@
 import '../../diagnostics/dart_object_node.dart';
 import '../../diagnostics/diagnostics_node.dart';
 import '../../diagnostics/tree_builder.dart';
-import '../../diagnostics_text_styles.dart';
 import '../../globals.dart';
+import '../../primitives/diagnostics_text_styles.dart';
 import '../../primitives/utils.dart';
 import '../../ui/hover.dart';
 import '../../ui/icons.dart';
diff --git a/packages/devtools_app/lib/src/shared/console/widgets/display_provider.dart b/packages/devtools_app/lib/src/shared/console/widgets/display_provider.dart
index 3e6c80e..000faec 100644
--- a/packages/devtools_app/lib/src/shared/console/widgets/display_provider.dart
+++ b/packages/devtools_app/lib/src/shared/console/widgets/display_provider.dart
@@ -12,10 +12,10 @@
 
 import '../../diagnostics/dap_object_node.dart';
 import '../../diagnostics/dart_object_node.dart';
+import '../../framework/routing.dart';
+import '../../framework/screen.dart';
 import '../../globals.dart';
 import '../../primitives/utils.dart';
-import '../../routing.dart';
-import '../../screen.dart';
 import '../../ui/colors.dart';
 import 'description.dart';
 
diff --git a/packages/devtools_app/lib/src/shared/console/widgets/evaluate.dart b/packages/devtools_app/lib/src/shared/console/widgets/evaluate.dart
index 94c1561..e9432c3 100644
--- a/packages/devtools_app/lib/src/shared/console/widgets/evaluate.dart
+++ b/packages/devtools_app/lib/src/shared/console/widgets/evaluate.dart
@@ -16,7 +16,7 @@
 import '../../globals.dart';
 import '../../ui/search.dart';
 import '../../ui/utils.dart';
-import '../../utils.dart';
+import '../../utils/utils.dart';
 import '../eval/auto_complete.dart';
 import '../eval/eval_service.dart';
 import '../primitives/assignment.dart';
diff --git a/packages/devtools_app/lib/src/shared/console/widgets/help_dialog.dart b/packages/devtools_app/lib/src/shared/console/widgets/help_dialog.dart
index b564cb4..14e7637 100644
--- a/packages/devtools_app/lib/src/shared/console/widgets/help_dialog.dart
+++ b/packages/devtools_app/lib/src/shared/console/widgets/help_dialog.dart
@@ -8,7 +8,7 @@
 import 'package:flutter/material.dart';
 
 import '../../analytics/constants.dart' as gac;
-import '../../common_widgets.dart';
+import '../../ui/common_widgets.dart';
 
 const _documentationTopic = gac.console;
 
diff --git a/packages/devtools_app/lib/src/shared/development_helpers.dart b/packages/devtools_app/lib/src/shared/development_helpers.dart
index e054a04..504f341 100644
--- a/packages/devtools_app/lib/src/shared/development_helpers.dart
+++ b/packages/devtools_app/lib/src/shared/development_helpers.dart
@@ -9,7 +9,7 @@
 import 'package:logging/logging.dart';
 
 import 'globals.dart';
-import 'survey.dart';
+import 'managers/survey.dart';
 
 // This file contains helpers that can be used during local development. Any
 // changes to variables in this file (like flipping a bool to true or setting
diff --git a/packages/devtools_app/lib/src/shared/diagnostics/generic_instance_reference.dart b/packages/devtools_app/lib/src/shared/diagnostics/generic_instance_reference.dart
index 847dea1..62f6c29 100644
--- a/packages/devtools_app/lib/src/shared/diagnostics/generic_instance_reference.dart
+++ b/packages/devtools_app/lib/src/shared/diagnostics/generic_instance_reference.dart
@@ -6,7 +6,7 @@
 
 import '../memory/heap_object.dart';
 import '../memory/simple_items.dart';
-import '../vm_utils.dart';
+import '../utils/vm_utils.dart';
 import 'diagnostics_node.dart';
 
 /// True, if [ref] contains static or live information about references and thus
diff --git a/packages/devtools_app/lib/src/shared/diagnostics/inspector_service.dart b/packages/devtools_app/lib/src/shared/diagnostics/inspector_service.dart
index dfa4d67..093bfac 100644
--- a/packages/devtools_app/lib/src/shared/diagnostics/inspector_service.dart
+++ b/packages/devtools_app/lib/src/shared/diagnostics/inspector_service.dart
@@ -21,7 +21,7 @@
 
 import '../console/primitives/simple_items.dart';
 import '../globals.dart';
-import '../utils.dart';
+import '../utils/utils.dart';
 import 'diagnostics_node.dart';
 import 'generic_instance_reference.dart';
 import 'object_group_api.dart';
diff --git a/packages/devtools_app/lib/src/shared/diagnostics/variable_factory.dart b/packages/devtools_app/lib/src/shared/diagnostics/variable_factory.dart
index da86fce..75417b1 100644
--- a/packages/devtools_app/lib/src/shared/diagnostics/variable_factory.dart
+++ b/packages/devtools_app/lib/src/shared/diagnostics/variable_factory.dart
@@ -12,7 +12,7 @@
 import 'package:vm_service/vm_service.dart';
 
 import '../memory/heap_object.dart';
-import '../vm_utils.dart';
+import '../utils/vm_utils.dart';
 import 'dart_object_node.dart';
 import 'diagnostics_node.dart';
 import 'object_group_api.dart';
diff --git a/packages/devtools_app/lib/src/shared/environment_parameters/environment_parameters_base.dart b/packages/devtools_app/lib/src/shared/environment_parameters/environment_parameters_base.dart
index 0dbe8f0..8c6fd1a 100644
--- a/packages/devtools_app/lib/src/shared/environment_parameters/environment_parameters_base.dart
+++ b/packages/devtools_app/lib/src/shared/environment_parameters/environment_parameters_base.dart
@@ -5,8 +5,8 @@
 import 'package:flutter/material.dart';
 
 import '../../screens/debugger/codeview.dart';
-import '../common_widgets.dart';
 import '../diagnostics/inspector_service.dart';
+import '../ui/common_widgets.dart';
 
 abstract class DevToolsEnvironmentParameters {
   List<ScriptPopupMenuOption> buildExtraDebuggerScriptPopupMenuOptions();
diff --git a/packages/devtools_app/lib/src/shared/environment_parameters/environment_parameters_external.dart b/packages/devtools_app/lib/src/shared/environment_parameters/environment_parameters_external.dart
index e4006bd..afc5758 100644
--- a/packages/devtools_app/lib/src/shared/environment_parameters/environment_parameters_external.dart
+++ b/packages/devtools_app/lib/src/shared/environment_parameters/environment_parameters_external.dart
@@ -6,10 +6,10 @@
 
 import '../../screens/debugger/codeview.dart';
 import '../analytics/constants.dart' as gac;
-import '../common_widgets.dart';
 import '../diagnostics/inspector_service.dart';
 import '../globals.dart';
-import '../utils.dart';
+import '../ui/common_widgets.dart';
+import '../utils/utils.dart';
 import 'environment_parameters_base.dart';
 
 class ExternalDevToolsEnvironmentParameters
diff --git a/packages/devtools_app/lib/src/framework/app_error_handling.dart b/packages/devtools_app/lib/src/shared/framework/app_error_handling.dart
similarity index 97%
rename from packages/devtools_app/lib/src/framework/app_error_handling.dart
rename to packages/devtools_app/lib/src/shared/framework/app_error_handling.dart
index 6230ada..616e07a 100644
--- a/packages/devtools_app/lib/src/framework/app_error_handling.dart
+++ b/packages/devtools_app/lib/src/shared/framework/app_error_handling.dart
@@ -14,9 +14,9 @@
 import 'package:source_maps/source_maps.dart';
 import 'package:stack_trace/stack_trace.dart' as stack_trace;
 
-import '../shared/analytics/analytics.dart' as ga;
-import '../shared/analytics/analytics_common.dart';
-import '../shared/globals.dart';
+import '../analytics/analytics.dart' as ga;
+import '../analytics/analytics_common.dart';
+import '../globals.dart';
 
 final _log = Logger('app_error_handling');
 
diff --git a/packages/devtools_app/lib/src/shared/framework_controller.dart b/packages/devtools_app/lib/src/shared/framework/framework_controller.dart
similarity index 98%
rename from packages/devtools_app/lib/src/shared/framework_controller.dart
rename to packages/devtools_app/lib/src/shared/framework/framework_controller.dart
index d1a6dbd..556b8fd 100644
--- a/packages/devtools_app/lib/src/shared/framework_controller.dart
+++ b/packages/devtools_app/lib/src/shared/framework/framework_controller.dart
@@ -6,7 +6,7 @@
 
 import 'package:devtools_app_shared/shared.dart';
 
-import 'globals.dart';
+import '../globals.dart';
 
 /// This controller is used by the connection to the DevTools server to receive
 /// commands from the server, and to notify the server of DevTools state changes
diff --git a/packages/devtools_app/lib/src/shared/routing.dart b/packages/devtools_app/lib/src/shared/framework/routing.dart
similarity index 98%
rename from packages/devtools_app/lib/src/shared/routing.dart
rename to packages/devtools_app/lib/src/shared/framework/routing.dart
index c32ef3d..f6e1200 100644
--- a/packages/devtools_app/lib/src/shared/routing.dart
+++ b/packages/devtools_app/lib/src/shared/framework/routing.dart
@@ -10,10 +10,10 @@
 import 'package:flutter/material.dart';
 import 'package:flutter/services.dart';
 
-import '../framework/framework_core.dart';
-import 'globals.dart';
-import 'primitives/utils.dart';
-import 'query_parameters.dart';
+import '../../framework/framework_core.dart';
+import '../globals.dart';
+import '../primitives/query_parameters.dart';
+import '../primitives/utils.dart';
 
 const homeScreenId = '';
 const snapshotScreenId = 'snapshot';
diff --git a/packages/devtools_app/lib/src/shared/screen.dart b/packages/devtools_app/lib/src/shared/framework/screen.dart
similarity index 99%
rename from packages/devtools_app/lib/src/shared/screen.dart
rename to packages/devtools_app/lib/src/shared/framework/screen.dart
index c9857fe..8d5c93e 100644
--- a/packages/devtools_app/lib/src/shared/screen.dart
+++ b/packages/devtools_app/lib/src/shared/framework/screen.dart
@@ -12,10 +12,10 @@
 import 'package:flutter/material.dart';
 import 'package:logging/logging.dart';
 
-import 'feature_flags.dart';
-import 'globals.dart';
-import 'primitives/listenable.dart';
-import 'ui/icons.dart';
+import '../feature_flags.dart';
+import '../globals.dart';
+import '../primitives/listenable.dart';
+import '../ui/icons.dart';
 
 final _log = Logger('screen.dart');
 
diff --git a/packages/devtools_app/lib/src/shared/globals.dart b/packages/devtools_app/lib/src/shared/globals.dart
index 37d2e63..a2250ca 100644
--- a/packages/devtools_app/lib/src/shared/globals.dart
+++ b/packages/devtools_app/lib/src/shared/globals.dart
@@ -10,17 +10,17 @@
 import '../extensions/extension_service.dart';
 import '../screens/debugger/breakpoint_manager.dart';
 import '../service/service_manager.dart';
-import '../shared/banner_messages.dart';
-import '../shared/notifications.dart';
 import 'console/eval/eval_service.dart';
 import 'environment_parameters/environment_parameters_base.dart';
-import 'framework_controller.dart';
-import 'offline_data.dart';
+import 'framework/framework_controller.dart';
+import 'managers/banner_messages.dart';
+import 'managers/notifications.dart';
+import 'managers/script_manager.dart';
+import 'managers/survey.dart';
+import 'offline/offline_data.dart';
 import 'preferences/preferences.dart';
 import 'primitives/message_bus.dart';
 import 'primitives/storage.dart';
-import 'scripts/script_manager.dart';
-import 'survey.dart';
 
 /// Whether this DevTools build is external.
 bool get isExternalBuild => _isExternalBuild;
diff --git a/packages/devtools_app/lib/src/shared/banner_messages.dart b/packages/devtools_app/lib/src/shared/managers/banner_messages.dart
similarity index 97%
rename from packages/devtools_app/lib/src/shared/banner_messages.dart
rename to packages/devtools_app/lib/src/shared/managers/banner_messages.dart
index 3d4fe81..43d4565 100644
--- a/packages/devtools_app/lib/src/shared/banner_messages.dart
+++ b/packages/devtools_app/lib/src/shared/managers/banner_messages.dart
@@ -9,14 +9,14 @@
 import 'package:flutter/gestures.dart';
 import 'package:flutter/material.dart';
 
-import '../screens/performance/performance_utils.dart';
-import 'analytics/constants.dart' as gac;
-import 'common_widgets.dart';
-import 'connected_app.dart';
-import 'globals.dart';
-import 'http/http_service.dart' as http_service;
-import 'primitives/utils.dart';
-import 'screen.dart';
+import '../../screens/performance/performance_utils.dart';
+import '../../service/connected_app/connected_app.dart';
+import '../analytics/constants.dart' as gac;
+import '../framework/screen.dart';
+import '../globals.dart';
+import '../http/http_service.dart' as http_service;
+import '../primitives/utils.dart';
+import '../ui/common_widgets.dart';
 
 const _runInProfileModeDocsUrl = 'https://flutter.dev/to/use-profile-mode';
 
diff --git a/packages/devtools_app/lib/src/shared/dtd_manager_extensions.dart b/packages/devtools_app/lib/src/shared/managers/dtd_manager_extensions.dart
similarity index 100%
rename from packages/devtools_app/lib/src/shared/dtd_manager_extensions.dart
rename to packages/devtools_app/lib/src/shared/managers/dtd_manager_extensions.dart
diff --git a/packages/devtools_app/lib/src/shared/error_badge_manager.dart b/packages/devtools_app/lib/src/shared/managers/error_badge_manager.dart
similarity index 91%
rename from packages/devtools_app/lib/src/shared/error_badge_manager.dart
rename to packages/devtools_app/lib/src/shared/managers/error_badge_manager.dart
index 85b117f..24ede88 100644
--- a/packages/devtools_app/lib/src/shared/error_badge_manager.dart
+++ b/packages/devtools_app/lib/src/shared/managers/error_badge_manager.dart
@@ -11,16 +11,16 @@
 import 'package:flutter/foundation.dart';
 import 'package:vm_service/vm_service.dart';
 
-import '../screens/inspector_shared/inspector_screen.dart';
-import '../screens/logging/logging_screen.dart';
-import '../screens/network/network_screen.dart';
-import '../screens/performance/performance_screen.dart';
-import '../service/service_extensions.dart' as extensions;
-import '../service/vm_service_wrapper.dart';
-import 'diagnostics/diagnostics_node.dart';
-import 'globals.dart';
-import 'primitives/listenable.dart';
-import 'query_parameters.dart';
+import '../../screens/inspector_shared/inspector_screen.dart';
+import '../../screens/logging/logging_screen.dart';
+import '../../screens/network/network_screen.dart';
+import '../../screens/performance/performance_screen.dart';
+import '../../service/service_extensions.dart' as extensions;
+import '../../service/vm_service_wrapper.dart';
+import '../diagnostics/diagnostics_node.dart';
+import '../globals.dart';
+import '../primitives/listenable.dart';
+import '../primitives/query_parameters.dart';
 
 class ErrorBadgeManager extends DisposableController
     with AutoDisposeControllerMixin {
diff --git a/packages/devtools_app/lib/src/shared/notifications.dart b/packages/devtools_app/lib/src/shared/managers/notifications.dart
similarity index 98%
rename from packages/devtools_app/lib/src/shared/notifications.dart
rename to packages/devtools_app/lib/src/shared/managers/notifications.dart
index 97609e7..c1af009 100644
--- a/packages/devtools_app/lib/src/shared/notifications.dart
+++ b/packages/devtools_app/lib/src/shared/managers/notifications.dart
@@ -8,8 +8,8 @@
 import 'package:devtools_app_shared/ui.dart';
 import 'package:flutter/material.dart';
 
-import 'globals.dart';
-import 'utils.dart';
+import '../globals.dart';
+import '../utils/utils.dart';
 
 class NotificationMessage {
   NotificationMessage(
diff --git a/packages/devtools_app/lib/src/shared/scripts/script_manager.dart b/packages/devtools_app/lib/src/shared/managers/script_manager.dart
similarity index 100%
rename from packages/devtools_app/lib/src/shared/scripts/script_manager.dart
rename to packages/devtools_app/lib/src/shared/managers/script_manager.dart
diff --git a/packages/devtools_app/lib/src/shared/survey.dart b/packages/devtools_app/lib/src/shared/managers/survey.dart
similarity index 96%
rename from packages/devtools_app/lib/src/shared/survey.dart
rename to packages/devtools_app/lib/src/shared/managers/survey.dart
index 53501ef..9fa2574 100644
--- a/packages/devtools_app/lib/src/shared/survey.dart
+++ b/packages/devtools_app/lib/src/shared/managers/survey.dart
@@ -10,13 +10,13 @@
 import 'package:http/http.dart';
 import 'package:logging/logging.dart';
 
-import '../shared/notifications.dart';
-import 'analytics/analytics.dart' as ga;
-import 'development_helpers.dart';
-import 'globals.dart';
-import 'primitives/utils.dart';
-import 'server/server.dart' as server;
-import 'utils.dart';
+import '../analytics/analytics.dart' as ga;
+import '../development_helpers.dart';
+import '../globals.dart';
+import '../primitives/utils.dart';
+import '../server/server.dart' as server;
+import '../utils/utils.dart';
+import 'notifications.dart';
 
 final _log = Logger('survey');
 
diff --git a/packages/devtools_app/lib/src/shared/offline_data.dart b/packages/devtools_app/lib/src/shared/offline/offline_data.dart
similarity index 98%
rename from packages/devtools_app/lib/src/shared/offline_data.dart
rename to packages/devtools_app/lib/src/shared/offline/offline_data.dart
index 9c214d8..ab51df5 100644
--- a/packages/devtools_app/lib/src/shared/offline_data.dart
+++ b/packages/devtools_app/lib/src/shared/offline/offline_data.dart
@@ -8,9 +8,9 @@
 import 'package:devtools_app_shared/utils.dart';
 import 'package:flutter/foundation.dart';
 
-import 'config_specific/import_export/import_export.dart';
-import 'globals.dart';
-import 'routing.dart';
+import '../config_specific/import_export/import_export.dart';
+import '../framework/routing.dart';
+import '../globals.dart';
 
 /// Controller that manages offline mode for DevTools.
 ///
diff --git a/packages/devtools_app/lib/src/shared/offline_screen.dart b/packages/devtools_app/lib/src/shared/offline/offline_screen.dart
similarity index 94%
rename from packages/devtools_app/lib/src/shared/offline_screen.dart
rename to packages/devtools_app/lib/src/shared/offline/offline_screen.dart
index 8a4f0a7..a6235c9 100644
--- a/packages/devtools_app/lib/src/shared/offline_screen.dart
+++ b/packages/devtools_app/lib/src/shared/offline/offline_screen.dart
@@ -7,10 +7,10 @@
 import 'package:devtools_app_shared/utils.dart';
 import 'package:flutter/material.dart';
 
-import 'analytics/constants.dart' as gac;
-import 'common_widgets.dart';
-import 'globals.dart';
-import 'screen.dart';
+import '../analytics/constants.dart' as gac;
+import '../framework/screen.dart';
+import '../globals.dart';
+import '../ui/common_widgets.dart';
 
 /// The screen used for displaying offline data (data that does not require a
 /// connected app to explore).
diff --git a/packages/devtools_app/lib/src/shared/preferences/preferences.dart b/packages/devtools_app/lib/src/shared/preferences/preferences.dart
index 1df6dd8..c137955 100644
--- a/packages/devtools_app/lib/src/shared/preferences/preferences.dart
+++ b/packages/devtools_app/lib/src/shared/preferences/preferences.dart
@@ -19,8 +19,8 @@
 import '../diagnostics/inspector_service.dart';
 import '../feature_flags.dart';
 import '../globals.dart';
-import '../query_parameters.dart';
-import '../utils.dart';
+import '../primitives/query_parameters.dart';
+import '../utils/utils.dart';
 
 part '_cpu_profiler_preferences.dart';
 part '_extension_preferences.dart';
diff --git a/packages/devtools_app/lib/src/shared/collapsible_mixin.dart b/packages/devtools_app/lib/src/shared/primitives/collapsible_mixin.dart
similarity index 100%
rename from packages/devtools_app/lib/src/shared/collapsible_mixin.dart
rename to packages/devtools_app/lib/src/shared/primitives/collapsible_mixin.dart
diff --git a/packages/devtools_app/lib/src/shared/diagnostics_text_styles.dart b/packages/devtools_app/lib/src/shared/primitives/diagnostics_text_styles.dart
similarity index 100%
rename from packages/devtools_app/lib/src/shared/diagnostics_text_styles.dart
rename to packages/devtools_app/lib/src/shared/primitives/diagnostics_text_styles.dart
diff --git a/packages/devtools_app/lib/src/shared/query_parameters.dart b/packages/devtools_app/lib/src/shared/primitives/query_parameters.dart
similarity index 100%
rename from packages/devtools_app/lib/src/shared/query_parameters.dart
rename to packages/devtools_app/lib/src/shared/primitives/query_parameters.dart
diff --git a/packages/devtools_app/lib/src/shared/server/server_api_client.dart b/packages/devtools_app/lib/src/shared/server/server_api_client.dart
index 1674272..547143d 100644
--- a/packages/devtools_app/lib/src/shared/server/server_api_client.dart
+++ b/packages/devtools_app/lib/src/shared/server/server_api_client.dart
@@ -11,7 +11,7 @@
 import 'package:logging/logging.dart';
 
 import '../config_specific/notifications/notifications.dart';
-import '../framework_controller.dart';
+import '../framework/framework_controller.dart';
 import '../globals.dart';
 
 final _log = Logger('lib/src/shared/server_api_client');
diff --git a/packages/devtools_app/lib/src/shared/table/table.dart b/packages/devtools_app/lib/src/shared/table/table.dart
index 505a8d6..0e40c50 100644
--- a/packages/devtools_app/lib/src/shared/table/table.dart
+++ b/packages/devtools_app/lib/src/shared/table/table.dart
@@ -11,15 +11,15 @@
 import 'package:flutter/material.dart' hide TableRow;
 import 'package:flutter/services.dart';
 
-import '../collapsible_mixin.dart';
-import '../common_widgets.dart';
+import '../primitives/collapsible_mixin.dart';
 import '../primitives/extent_delegate_list.dart';
 import '../primitives/flutter_widgets/linked_scroll_controller.dart';
 import '../primitives/trees.dart';
 import '../primitives/utils.dart';
+import '../ui/common_widgets.dart';
 import '../ui/search.dart';
 import '../ui/utils.dart';
-import '../utils.dart';
+import '../utils/utils.dart';
 import 'column_widths.dart';
 import 'table_controller.dart';
 import 'table_data.dart';
diff --git a/packages/devtools_app/lib/src/shared/tree.dart b/packages/devtools_app/lib/src/shared/tree.dart
index 21ff72c..081e89d 100644
--- a/packages/devtools_app/lib/src/shared/tree.dart
+++ b/packages/devtools_app/lib/src/shared/tree.dart
@@ -9,7 +9,7 @@
 import 'package:flutter/foundation.dart';
 import 'package:flutter/material.dart' hide Stack;
 
-import 'collapsible_mixin.dart';
+import 'primitives/collapsible_mixin.dart';
 import 'primitives/trees.dart';
 
 double get defaultTreeViewRowHeight => scaleByFontFactor(20.0);
diff --git a/packages/devtools_app/lib/src/shared/common_widgets.dart b/packages/devtools_app/lib/src/shared/ui/common_widgets.dart
similarity index 98%
rename from packages/devtools_app/lib/src/shared/common_widgets.dart
rename to packages/devtools_app/lib/src/shared/ui/common_widgets.dart
index da2f68c..7cf17b6 100644
--- a/packages/devtools_app/lib/src/shared/common_widgets.dart
+++ b/packages/devtools_app/lib/src/shared/ui/common_widgets.dart
@@ -13,18 +13,18 @@
 import 'package:flutter/services.dart';
 import 'package:vm_service/vm_service.dart';
 
-import 'analytics/analytics.dart' as ga;
-import 'analytics/constants.dart' as gac;
-import 'config_specific/copy_to_clipboard/copy_to_clipboard.dart';
-import 'console/widgets/expandable_variable.dart';
-import 'diagnostics/dart_object_node.dart';
-import 'diagnostics/tree_builder.dart';
-import 'globals.dart';
-import 'primitives/flutter_widgets/linked_scroll_controller.dart';
-import 'primitives/utils.dart';
-import 'routing.dart';
-import 'ui/icons.dart';
-import 'utils.dart';
+import '../analytics/analytics.dart' as ga;
+import '../analytics/constants.dart' as gac;
+import '../config_specific/copy_to_clipboard/copy_to_clipboard.dart';
+import '../console/widgets/expandable_variable.dart';
+import '../diagnostics/dart_object_node.dart';
+import '../diagnostics/tree_builder.dart';
+import '../framework/routing.dart';
+import '../globals.dart';
+import '../primitives/flutter_widgets/linked_scroll_controller.dart';
+import '../primitives/utils.dart';
+import '../utils/utils.dart';
+import 'icons.dart';
 
 double get assumedMonospaceCharacterWidth =>
     scaleByFontFactor(_assumedMonospaceCharacterWidth);
diff --git a/packages/devtools_app/lib/src/shared/dialogs.dart b/packages/devtools_app/lib/src/shared/ui/dialogs.dart
similarity index 92%
rename from packages/devtools_app/lib/src/shared/dialogs.dart
rename to packages/devtools_app/lib/src/shared/ui/dialogs.dart
index 417c4aa..e6b7119 100644
--- a/packages/devtools_app/lib/src/shared/dialogs.dart
+++ b/packages/devtools_app/lib/src/shared/ui/dialogs.dart
@@ -7,9 +7,9 @@
 import 'package:devtools_app_shared/ui.dart';
 import 'package:flutter/material.dart';
 
-import 'config_specific/copy_to_clipboard/copy_to_clipboard.dart';
-import 'globals.dart';
-import 'utils.dart';
+import '../config_specific/copy_to_clipboard/copy_to_clipboard.dart';
+import '../globals.dart';
+import '../utils/utils.dart';
 
 /// A dialog, that reports unexpected error and allows to copy details and create issue.
 class UnexpectedErrorDialog extends StatelessWidget {
diff --git a/packages/devtools_app/lib/src/shared/editable_list.dart b/packages/devtools_app/lib/src/shared/ui/editable_list.dart
similarity index 98%
rename from packages/devtools_app/lib/src/shared/editable_list.dart
rename to packages/devtools_app/lib/src/shared/ui/editable_list.dart
index a42836f..0de3f35 100644
--- a/packages/devtools_app/lib/src/shared/editable_list.dart
+++ b/packages/devtools_app/lib/src/shared/ui/editable_list.dart
@@ -9,8 +9,8 @@
 import 'package:flutter/foundation.dart';
 import 'package:flutter/material.dart';
 
+import '../config_specific/copy_to_clipboard/copy_to_clipboard.dart';
 import 'common_widgets.dart';
-import 'config_specific/copy_to_clipboard/copy_to_clipboard.dart';
 
 /// A widget that displays the contents of [entries].
 ///
diff --git a/packages/devtools_app/lib/src/shared/file_import.dart b/packages/devtools_app/lib/src/shared/ui/file_import.dart
similarity index 97%
rename from packages/devtools_app/lib/src/shared/file_import.dart
rename to packages/devtools_app/lib/src/shared/ui/file_import.dart
index ebdc1d6..d5ad85c 100644
--- a/packages/devtools_app/lib/src/shared/file_import.dart
+++ b/packages/devtools_app/lib/src/shared/ui/file_import.dart
@@ -9,13 +9,13 @@
 import 'package:flutter/material.dart';
 import 'package:provider/provider.dart';
 
-import 'analytics/analytics.dart' as ga;
-import 'analytics/constants.dart' as gac;
+import '../analytics/analytics.dart' as ga;
+import '../analytics/constants.dart' as gac;
+import '../config_specific/drag_and_drop/drag_and_drop.dart';
+import '../config_specific/import_export/import_export.dart';
+import '../globals.dart';
+import '../primitives/utils.dart';
 import 'common_widgets.dart';
-import 'config_specific/drag_and_drop/drag_and_drop.dart';
-import 'config_specific/import_export/import_export.dart';
-import 'globals.dart';
-import 'primitives/utils.dart';
 
 class OpenSaveButtonGroup extends StatelessWidget {
   const OpenSaveButtonGroup({
diff --git a/packages/devtools_app/lib/src/shared/ui/filter.dart b/packages/devtools_app/lib/src/shared/ui/filter.dart
index 9d5b1b1..f5daf46 100644
--- a/packages/devtools_app/lib/src/shared/ui/filter.dart
+++ b/packages/devtools_app/lib/src/shared/ui/filter.dart
@@ -8,12 +8,11 @@
 import 'package:codicon/codicon.dart';
 import 'package:devtools_app_shared/ui.dart';
 import 'package:devtools_app_shared/utils.dart';
-
 import 'package:flutter/foundation.dart';
 import 'package:flutter/material.dart';
 
-import '../common_widgets.dart';
 import '../primitives/utils.dart';
+import 'common_widgets.dart';
 
 typedef QueryFilterArgs<T> = Map<String, QueryFilterArgument<T>>;
 typedef SettingFilters<T> = List<SettingFilter<T, Object>>;
diff --git a/packages/devtools_app/lib/src/shared/history_viewport.dart b/packages/devtools_app/lib/src/shared/ui/history_viewport.dart
similarity index 98%
rename from packages/devtools_app/lib/src/shared/history_viewport.dart
rename to packages/devtools_app/lib/src/shared/ui/history_viewport.dart
index b0b30c3..2baa799 100644
--- a/packages/devtools_app/lib/src/shared/history_viewport.dart
+++ b/packages/devtools_app/lib/src/shared/ui/history_viewport.dart
@@ -5,9 +5,9 @@
 import 'package:devtools_app_shared/ui.dart';
 import 'package:flutter/material.dart';
 
-import '../screens/debugger/common.dart';
+import '../../screens/debugger/common.dart';
+import '../primitives/history_manager.dart';
 import 'common_widgets.dart';
-import 'primitives/history_manager.dart';
 
 /// A [Widget] that allows for displaying content based on the current state of a
 /// [HistoryManager]. Includes built-in controls for navigating back and forth
diff --git a/packages/devtools_app/lib/src/shared/ui/hover.dart b/packages/devtools_app/lib/src/shared/ui/hover.dart
index 49f86f7..67c84f0 100644
--- a/packages/devtools_app/lib/src/shared/ui/hover.dart
+++ b/packages/devtools_app/lib/src/shared/ui/hover.dart
@@ -11,7 +11,7 @@
 import 'package:flutter/material.dart';
 import 'package:provider/provider.dart';
 
-import '../common_widgets.dart';
+import 'common_widgets.dart';
 import 'utils.dart';
 
 double get _maxHoverCardHeight => scaleByFontFactor(250.0);
diff --git a/packages/devtools_app/lib/src/shared/ui/search.dart b/packages/devtools_app/lib/src/shared/ui/search.dart
index c4f62dc..acf8c10 100644
--- a/packages/devtools_app/lib/src/shared/ui/search.dart
+++ b/packages/devtools_app/lib/src/shared/ui/search.dart
@@ -13,12 +13,12 @@
 import 'package:flutter/services.dart';
 import 'package:logging/logging.dart';
 
-import '../common_widgets.dart';
 import '../primitives/trees.dart';
 import '../primitives/utils.dart';
 import '../ui/utils.dart';
-import '../utils.dart';
+import '../utils/utils.dart';
 import 'colors.dart';
+import 'common_widgets.dart';
 
 // TODO(https://github.com/flutter/devtools/issues/5416): break this file up
 // into managable pieces.
diff --git a/packages/devtools_app/lib/src/shared/side_panel.dart b/packages/devtools_app/lib/src/shared/ui/side_panel.dart
similarity index 98%
rename from packages/devtools_app/lib/src/shared/side_panel.dart
rename to packages/devtools_app/lib/src/shared/ui/side_panel.dart
index 778c0ee..24eeab6 100644
--- a/packages/devtools_app/lib/src/shared/side_panel.dart
+++ b/packages/devtools_app/lib/src/shared/ui/side_panel.dart
@@ -11,8 +11,8 @@
 import 'package:flutter/material.dart';
 import 'package:flutter_markdown/flutter_markdown.dart';
 
-import 'primitives/utils.dart';
-import 'utils.dart';
+import '../primitives/utils.dart';
+import '../utils/utils.dart';
 
 class SidePanelViewer extends StatefulWidget {
   const SidePanelViewer({
diff --git a/packages/devtools_app/lib/src/shared/ui/vm_flag_widgets.dart b/packages/devtools_app/lib/src/shared/ui/vm_flag_widgets.dart
index 6de808e..4e9a8b1 100644
--- a/packages/devtools_app/lib/src/shared/ui/vm_flag_widgets.dart
+++ b/packages/devtools_app/lib/src/shared/ui/vm_flag_widgets.dart
@@ -12,12 +12,12 @@
 import '../../screens/profiler/cpu_profile_service.dart';
 import '../../screens/profiler/sampling_rate.dart';
 import '../analytics/constants.dart' as gac;
-import '../banner_messages.dart';
-import '../common_widgets.dart';
 import '../globals.dart';
+import '../managers/banner_messages.dart';
 import '../primitives/utils.dart';
 import '../table/table.dart';
 import '../table/table_data.dart';
+import 'common_widgets.dart';
 import 'drop_down_button.dart';
 
 /// DropdownButton that controls the value of the 'profile_period' vm flag.
diff --git a/packages/devtools_app/lib/src/shared/future_work_tracker.dart b/packages/devtools_app/lib/src/shared/utils/future_work_tracker.dart
similarity index 97%
rename from packages/devtools_app/lib/src/shared/future_work_tracker.dart
rename to packages/devtools_app/lib/src/shared/utils/future_work_tracker.dart
index 55e2367..7962983 100644
--- a/packages/devtools_app/lib/src/shared/future_work_tracker.dart
+++ b/packages/devtools_app/lib/src/shared/utils/future_work_tracker.dart
@@ -6,7 +6,7 @@
 
 import 'package:flutter/foundation.dart';
 
-import 'primitives/utils.dart';
+import '../primitives/utils.dart';
 
 /// Class that tracks whether work defined by when futures complete is still in
 /// progress.
diff --git a/packages/devtools_app/lib/src/shared/profiler_utils.dart b/packages/devtools_app/lib/src/shared/utils/profiler_utils.dart
similarity index 96%
rename from packages/devtools_app/lib/src/shared/profiler_utils.dart
rename to packages/devtools_app/lib/src/shared/utils/profiler_utils.dart
index 3216e59..37f2869 100644
--- a/packages/devtools_app/lib/src/shared/profiler_utils.dart
+++ b/packages/devtools_app/lib/src/shared/utils/profiler_utils.dart
@@ -5,13 +5,13 @@
 import 'package:devtools_app_shared/ui.dart';
 import 'package:flutter/material.dart';
 
-import '../screens/debugger/codeview_controller.dart';
-import '../screens/debugger/debugger_screen.dart';
-import '../screens/vm_developer/vm_developer_common_widgets.dart';
-import 'globals.dart';
-import 'primitives/trees.dart';
-import 'primitives/utils.dart';
-import 'routing.dart';
+import '../../screens/debugger/codeview_controller.dart';
+import '../../screens/debugger/debugger_screen.dart';
+import '../../screens/vm_developer/vm_developer_common_widgets.dart';
+import '../framework/routing.dart';
+import '../globals.dart';
+import '../primitives/trees.dart';
+import '../primitives/utils.dart';
 
 mixin ProfilableDataMixin<T extends TreeNode<T>> on TreeNode<T> {
   ProfileMetaData get profileMetaData;
diff --git a/packages/devtools_app/lib/src/shared/utils.dart b/packages/devtools_app/lib/src/shared/utils/utils.dart
similarity index 97%
rename from packages/devtools_app/lib/src/shared/utils.dart
rename to packages/devtools_app/lib/src/shared/utils/utils.dart
index 046e980..acb2659 100644
--- a/packages/devtools_app/lib/src/shared/utils.dart
+++ b/packages/devtools_app/lib/src/shared/utils/utils.dart
@@ -19,13 +19,12 @@
 import 'package:provider/provider.dart';
 import 'package:vm_service/vm_service.dart';
 
-import '../../devtools.dart' as devtools;
-
-import 'common_widgets.dart';
-import 'connected_app.dart';
-import 'globals.dart';
-import 'primitives/utils.dart';
-import 'query_parameters.dart';
+import '../../../devtools.dart' as devtools;
+import '../../service/connected_app/connected_app.dart';
+import '../globals.dart';
+import '../primitives/query_parameters.dart';
+import '../primitives/utils.dart';
+import '../ui/common_widgets.dart';
 
 final _log = Logger('lib/src/shared/utils');
 
diff --git a/packages/devtools_app/lib/src/shared/vm_utils.dart b/packages/devtools_app/lib/src/shared/utils/vm_utils.dart
similarity index 95%
rename from packages/devtools_app/lib/src/shared/vm_utils.dart
rename to packages/devtools_app/lib/src/shared/utils/vm_utils.dart
index 0096df9..04367e1 100644
--- a/packages/devtools_app/lib/src/shared/vm_utils.dart
+++ b/packages/devtools_app/lib/src/shared/utils/vm_utils.dart
@@ -5,8 +5,8 @@
 import 'package:collection/collection.dart';
 import 'package:vm_service/vm_service.dart';
 
-import 'globals.dart';
-import 'memory/class_name.dart';
+import '../globals.dart';
+import '../memory/class_name.dart';
 
 bool isPrimitiveInstanceKind(String? kind) {
   return kind == InstanceKind.kBool ||
diff --git a/packages/devtools_app/lib/src/standalone_ui/standalone_screen.dart b/packages/devtools_app/lib/src/standalone_ui/standalone_screen.dart
index 576d890..18fad3f 100644
--- a/packages/devtools_app/lib/src/standalone_ui/standalone_screen.dart
+++ b/packages/devtools_app/lib/src/standalone_ui/standalone_screen.dart
@@ -4,8 +4,8 @@
 
 import 'package:flutter/material.dart';
 
-import '../shared/common_widgets.dart';
 import '../shared/globals.dart';
+import '../shared/ui/common_widgets.dart';
 import 'vs_code/flutter_panel.dart';
 
 /// "Screens" that are intended for standalone use only, likely for embedding
diff --git a/packages/devtools_app/lib/src/standalone_ui/vs_code/devtools/devtools_view.dart b/packages/devtools_app/lib/src/standalone_ui/vs_code/devtools/devtools_view.dart
index 1b3bd33..fbc62f7 100644
--- a/packages/devtools_app/lib/src/standalone_ui/vs_code/devtools/devtools_view.dart
+++ b/packages/devtools_app/lib/src/standalone_ui/vs_code/devtools/devtools_view.dart
@@ -11,9 +11,9 @@
 import '../../../service/editor/editor_client.dart';
 import '../../../shared/analytics/analytics.dart' as ga;
 import '../../../shared/analytics/constants.dart' as gac;
-import '../../../shared/common_widgets.dart';
+import '../../../shared/framework/screen.dart';
 import '../../../shared/primitives/utils.dart';
-import '../../../shared/screen.dart';
+import '../../../shared/ui/common_widgets.dart';
 import 'extensions_view.dart';
 import 'shared.dart';
 
diff --git a/packages/devtools_app/lib/src/standalone_ui/vs_code/flutter_panel.dart b/packages/devtools_app/lib/src/standalone_ui/vs_code/flutter_panel.dart
index d00fe5a..a661e27 100644
--- a/packages/devtools_app/lib/src/standalone_ui/vs_code/flutter_panel.dart
+++ b/packages/devtools_app/lib/src/standalone_ui/vs_code/flutter_panel.dart
@@ -12,8 +12,8 @@
 import '../../service/editor/api_classes.dart';
 import '../../service/editor/editor_client.dart';
 import '../../shared/analytics/analytics.dart' as ga;
-import '../../shared/common_widgets.dart';
 import '../../shared/feature_flags.dart';
+import '../../shared/ui/common_widgets.dart';
 import '../ide_shared/property_editor/property_editor_sidebar.dart';
 import 'debug_sessions.dart';
 import 'devices.dart';
diff --git a/packages/devtools_app/test/app_size/app_size_screen_test.dart b/packages/devtools_app/test/app_size/app_size_screen_test.dart
index 9b9be65..dfdb3b2 100644
--- a/packages/devtools_app/test/app_size/app_size_screen_test.dart
+++ b/packages/devtools_app/test/app_size/app_size_screen_test.dart
@@ -6,7 +6,7 @@
 
 import 'package:devtools_app/devtools_app.dart';
 import 'package:devtools_app/src/screens/app_size/app_size_table.dart';
-import 'package:devtools_app/src/shared/file_import.dart';
+import 'package:devtools_app/src/shared/ui/file_import.dart';
 import 'package:devtools_app_shared/ui.dart';
 import 'package:devtools_app_shared/utils.dart';
 import 'package:devtools_shared/devtools_test_utils.dart';
diff --git a/packages/devtools_app/test/cpu_profiler/cpu_profile_transformer_test.dart b/packages/devtools_app/test/cpu_profiler/cpu_profile_transformer_test.dart
index 3d7b8ad..52a31ca 100644
--- a/packages/devtools_app/test/cpu_profiler/cpu_profile_transformer_test.dart
+++ b/packages/devtools_app/test/cpu_profiler/cpu_profile_transformer_test.dart
@@ -4,7 +4,7 @@
 
 import 'package:devtools_app/src/screens/profiler/cpu_profile_model.dart';
 import 'package:devtools_app/src/screens/profiler/cpu_profile_transformer.dart';
-import 'package:devtools_app/src/shared/profiler_utils.dart';
+import 'package:devtools_app/src/shared/utils/profiler_utils.dart';
 import 'package:flutter_test/flutter_test.dart';
 
 import '../test_infra/test_data/cpu_profiler/cpu_profile.dart';
diff --git a/packages/devtools_app/test/cpu_profiler/method_table/method_table_model_test.dart b/packages/devtools_app/test/cpu_profiler/method_table/method_table_model_test.dart
index a326b1e..2868bdd 100644
--- a/packages/devtools_app/test/cpu_profiler/method_table/method_table_model_test.dart
+++ b/packages/devtools_app/test/cpu_profiler/method_table/method_table_model_test.dart
@@ -4,7 +4,7 @@
 
 import 'package:devtools_app/devtools_app.dart';
 import 'package:devtools_app/src/screens/profiler/panes/method_table/method_table_model.dart';
-import 'package:devtools_app/src/shared/profiler_utils.dart';
+import 'package:devtools_app/src/shared/utils/profiler_utils.dart';
 import 'package:flutter_test/flutter_test.dart';
 
 void main() {
diff --git a/packages/devtools_app/test/cpu_profiler/profiler_screen_test.dart b/packages/devtools_app/test/cpu_profiler/profiler_screen_test.dart
index e0e4796..7edcac6 100644
--- a/packages/devtools_app/test/cpu_profiler/profiler_screen_test.dart
+++ b/packages/devtools_app/test/cpu_profiler/profiler_screen_test.dart
@@ -7,7 +7,7 @@
 import 'package:devtools_app/src/screens/profiler/panes/controls/cpu_profiler_controls.dart';
 import 'package:devtools_app/src/screens/profiler/profiler_status.dart';
 import 'package:devtools_app/src/service/vm_flags.dart' as vm_flags;
-import 'package:devtools_app/src/shared/file_import.dart';
+import 'package:devtools_app/src/shared/ui/file_import.dart';
 import 'package:devtools_app/src/shared/ui/vm_flag_widgets.dart';
 import 'package:devtools_test/devtools_test.dart';
 import 'package:devtools_test/helpers.dart';
diff --git a/packages/devtools_app/test/memory/control/settings_dialog_test.dart b/packages/devtools_app/test/memory/control/settings_dialog_test.dart
index cb3b075..c84f8dc 100644
--- a/packages/devtools_app/test/memory/control/settings_dialog_test.dart
+++ b/packages/devtools_app/test/memory/control/settings_dialog_test.dart
@@ -3,8 +3,8 @@
 // found in the LICENSE file.
 
 import 'package:devtools_app/src/screens/memory/panes/control/widgets/settings_dialog.dart';
-import 'package:devtools_app/src/shared/common_widgets.dart';
 import 'package:devtools_app/src/shared/globals.dart';
+import 'package:devtools_app/src/shared/ui/common_widgets.dart';
 import 'package:devtools_app_shared/src/ui/dialogs.dart';
 import 'package:devtools_test/helpers.dart';
 import 'package:flutter/material.dart';
diff --git a/packages/devtools_app/test/performance/controls/performance_controls_test.dart b/packages/devtools_app/test/performance/controls/performance_controls_test.dart
index 8db4a16..23b1311 100644
--- a/packages/devtools_app/test/performance/controls/performance_controls_test.dart
+++ b/packages/devtools_app/test/performance/controls/performance_controls_test.dart
@@ -4,7 +4,7 @@
 
 import 'package:devtools_app/devtools_app.dart';
 import 'package:devtools_app/src/screens/performance/panes/controls/performance_controls.dart';
-import 'package:devtools_app/src/shared/file_import.dart';
+import 'package:devtools_app/src/shared/ui/file_import.dart';
 import 'package:devtools_app_shared/ui.dart';
 import 'package:devtools_app_shared/utils.dart';
 import 'package:devtools_test/devtools_test.dart';
diff --git a/packages/devtools_app/test/shared/about_dialog_test.dart b/packages/devtools_app/test/shared/about_dialog_test.dart
index e4a9869..bd0c073 100644
--- a/packages/devtools_app/test/shared/about_dialog_test.dart
+++ b/packages/devtools_app/test/shared/about_dialog_test.dart
@@ -4,7 +4,7 @@
 
 import 'package:devtools_app/devtools.dart' as devtools;
 import 'package:devtools_app/devtools_app.dart';
-import 'package:devtools_app/src/framework/about_dialog.dart';
+import 'package:devtools_app/src/framework/scaffold/about_dialog.dart';
 import 'package:devtools_app_shared/ui.dart';
 import 'package:devtools_app_shared/utils.dart';
 import 'package:devtools_test/devtools_test.dart';
diff --git a/packages/devtools_app/test/shared/banner_messages_test.dart b/packages/devtools_app/test/shared/banner_messages_test.dart
index 4296715..21154cc 100644
--- a/packages/devtools_app/test/shared/banner_messages_test.dart
+++ b/packages/devtools_app/test/shared/banner_messages_test.dart
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import 'package:devtools_app/src/framework/scaffold.dart';
+import 'package:devtools_app/src/framework/scaffold/scaffold.dart';
 import 'package:devtools_app/src/service/service_manager.dart';
-import 'package:devtools_app/src/shared/banner_messages.dart';
 import 'package:devtools_app/src/shared/globals.dart';
-import 'package:devtools_app/src/shared/notifications.dart';
+import 'package:devtools_app/src/shared/managers/banner_messages.dart';
+import 'package:devtools_app/src/shared/managers/notifications.dart';
 import 'package:devtools_app_shared/ui.dart';
 import 'package:devtools_app_shared/utils.dart';
 import 'package:devtools_test/devtools_test.dart';
diff --git a/packages/devtools_app/test/shared/disconnect_observer_test.dart b/packages/devtools_app/test/shared/disconnect_observer_test.dart
index 0b5088c..f216075 100644
--- a/packages/devtools_app/test/shared/disconnect_observer_test.dart
+++ b/packages/devtools_app/test/shared/disconnect_observer_test.dart
@@ -4,7 +4,7 @@
 
 import 'package:devtools_app/devtools_app.dart';
 import 'package:devtools_app/src/framework/disconnect_observer.dart';
-import 'package:devtools_app/src/shared/framework_controller.dart';
+import 'package:devtools_app/src/shared/framework/framework_controller.dart';
 import 'package:devtools_app_shared/shared.dart';
 import 'package:devtools_app_shared/ui.dart';
 import 'package:devtools_app_shared/utils.dart';
diff --git a/packages/devtools_app/test/shared/editable_list_test.dart b/packages/devtools_app/test/shared/editable_list_test.dart
index 894c8e7..d6d474b 100644
--- a/packages/devtools_app/test/shared/editable_list_test.dart
+++ b/packages/devtools_app/test/shared/editable_list_test.dart
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 import 'package:devtools_app/devtools_app.dart';
-import 'package:devtools_app/src/shared/editable_list.dart';
+import 'package:devtools_app/src/shared/ui/editable_list.dart';
 import 'package:devtools_app_shared/ui.dart';
 import 'package:devtools_app_shared/utils.dart';
 import 'package:devtools_test/helpers.dart';
diff --git a/packages/devtools_app/test/shared/error_badge_manager_test.dart b/packages/devtools_app/test/shared/error_badge_manager_test.dart
index e3d3cbe..b089754 100644
--- a/packages/devtools_app/test/shared/error_badge_manager_test.dart
+++ b/packages/devtools_app/test/shared/error_badge_manager_test.dart
@@ -10,7 +10,7 @@
 import 'package:devtools_app/src/screens/network/network_screen.dart';
 import 'package:devtools_app/src/screens/performance/performance_screen.dart';
 import 'package:devtools_app/src/screens/profiler/profiler_screen.dart';
-import 'package:devtools_app/src/shared/error_badge_manager.dart';
+import 'package:devtools_app/src/shared/managers/error_badge_manager.dart';
 import 'package:flutter_test/flutter_test.dart';
 
 final supportedScreenIds = [
diff --git a/packages/devtools_app/test/shared/future_work_tracker_test.dart b/packages/devtools_app/test/shared/future_work_tracker_test.dart
index cc93189..13e70e5 100644
--- a/packages/devtools_app/test/shared/future_work_tracker_test.dart
+++ b/packages/devtools_app/test/shared/future_work_tracker_test.dart
@@ -4,7 +4,7 @@
 
 import 'dart:async';
 
-import 'package:devtools_app/src/shared/future_work_tracker.dart';
+import 'package:devtools_app/src/shared/utils/future_work_tracker.dart';
 import 'package:fake_async/fake_async.dart';
 import 'package:flutter_test/flutter_test.dart';
 
diff --git a/packages/devtools_app/test/shared/initializer_test.dart b/packages/devtools_app/test/shared/initializer_test.dart
index 4953e39..9fb586b 100644
--- a/packages/devtools_app/test/shared/initializer_test.dart
+++ b/packages/devtools_app/test/shared/initializer_test.dart
@@ -4,7 +4,7 @@
 
 import 'package:devtools_app/devtools_app.dart';
 import 'package:devtools_app/src/framework/initializer.dart';
-import 'package:devtools_app/src/shared/framework_controller.dart';
+import 'package:devtools_app/src/shared/framework/framework_controller.dart';
 import 'package:devtools_app_shared/ui.dart';
 import 'package:devtools_app_shared/utils.dart';
 import 'package:devtools_test/devtools_test.dart';
diff --git a/packages/devtools_app/test/shared/notifications_test.dart b/packages/devtools_app/test/shared/notifications_test.dart
index 5cb1dd2..2054362 100644
--- a/packages/devtools_app/test/shared/notifications_test.dart
+++ b/packages/devtools_app/test/shared/notifications_test.dart
@@ -6,7 +6,7 @@
 
 import 'package:devtools_app/src/framework/notifications_view.dart';
 import 'package:devtools_app/src/shared/globals.dart';
-import 'package:devtools_app/src/shared/notifications.dart';
+import 'package:devtools_app/src/shared/managers/notifications.dart';
 import 'package:devtools_app_shared/ui.dart';
 import 'package:devtools_app_shared/utils.dart';
 import 'package:flutter/material.dart';
diff --git a/packages/devtools_app/test/shared/primitives/utils_test.dart b/packages/devtools_app/test/shared/primitives/utils_test.dart
index 8d9df3c..31fa5ac 100644
--- a/packages/devtools_app/test/shared/primitives/utils_test.dart
+++ b/packages/devtools_app/test/shared/primitives/utils_test.dart
@@ -4,7 +4,7 @@
 
 import 'package:collection/collection.dart';
 import 'package:devtools_app/src/shared/primitives/utils.dart';
-import 'package:devtools_app/src/shared/utils.dart';
+import 'package:devtools_app/src/shared/utils/utils.dart';
 import 'package:devtools_app_shared/ui.dart';
 import 'package:devtools_app_shared/utils.dart';
 import 'package:devtools_shared/devtools_test_utils.dart';
diff --git a/packages/devtools_app/test/shared/query_parameters_test.dart b/packages/devtools_app/test/shared/query_parameters_test.dart
index 0631bb8..c7510be 100644
--- a/packages/devtools_app/test/shared/query_parameters_test.dart
+++ b/packages/devtools_app/test/shared/query_parameters_test.dart
@@ -5,7 +5,7 @@
 import 'dart:ui';
 
 import 'package:devtools_app/devtools_app.dart';
-import 'package:devtools_app/src/shared/query_parameters.dart';
+import 'package:devtools_app/src/shared/primitives/query_parameters.dart';
 import 'package:devtools_app_shared/shared.dart';
 import 'package:devtools_app_shared/ui.dart';
 import 'package:devtools_shared/devtools_shared.dart';
diff --git a/packages/devtools_app/test/shared/scaffold_debugger_test.dart b/packages/devtools_app/test/shared/scaffold_debugger_test.dart
index 38fe24e..cf4aa49 100644
--- a/packages/devtools_app/test/shared/scaffold_debugger_test.dart
+++ b/packages/devtools_app/test/shared/scaffold_debugger_test.dart
@@ -3,9 +3,9 @@
 // found in the LICENSE file.
 
 import 'package:devtools_app/devtools_app.dart';
-import 'package:devtools_app/src/framework/scaffold.dart';
-import 'package:devtools_app/src/shared/framework_controller.dart';
-import 'package:devtools_app/src/shared/survey.dart';
+import 'package:devtools_app/src/framework/scaffold/scaffold.dart';
+import 'package:devtools_app/src/shared/framework/framework_controller.dart';
+import 'package:devtools_app/src/shared/managers/survey.dart';
 import 'package:devtools_app_shared/service.dart';
 import 'package:devtools_app_shared/ui.dart';
 import 'package:devtools_app_shared/utils.dart';
diff --git a/packages/devtools_app/test/shared/scaffold_debugging_controls_test.dart b/packages/devtools_app/test/shared/scaffold_debugging_controls_test.dart
index b29426d..b1c9754 100644
--- a/packages/devtools_app/test/shared/scaffold_debugging_controls_test.dart
+++ b/packages/devtools_app/test/shared/scaffold_debugging_controls_test.dart
@@ -3,9 +3,9 @@
 // found in the LICENSE file.
 
 import 'package:devtools_app/devtools_app.dart';
-import 'package:devtools_app/src/framework/scaffold.dart';
-import 'package:devtools_app/src/shared/framework_controller.dart';
-import 'package:devtools_app/src/shared/survey.dart';
+import 'package:devtools_app/src/framework/scaffold/scaffold.dart';
+import 'package:devtools_app/src/shared/framework/framework_controller.dart';
+import 'package:devtools_app/src/shared/managers/survey.dart';
 import 'package:devtools_app_shared/service.dart';
 import 'package:devtools_app_shared/ui.dart';
 import 'package:devtools_app_shared/utils.dart';
diff --git a/packages/devtools_app/test/shared/scaffold_no_app_test.dart b/packages/devtools_app/test/shared/scaffold_no_app_test.dart
index 57f7bf2..550f2a2 100644
--- a/packages/devtools_app/test/shared/scaffold_no_app_test.dart
+++ b/packages/devtools_app/test/shared/scaffold_no_app_test.dart
@@ -3,9 +3,9 @@
 // found in the LICENSE file.
 
 import 'package:devtools_app/devtools_app.dart';
-import 'package:devtools_app/src/framework/scaffold.dart';
-import 'package:devtools_app/src/shared/framework_controller.dart';
-import 'package:devtools_app/src/shared/survey.dart';
+import 'package:devtools_app/src/framework/scaffold/scaffold.dart';
+import 'package:devtools_app/src/shared/framework/framework_controller.dart';
+import 'package:devtools_app/src/shared/managers/survey.dart';
 import 'package:devtools_app_shared/service.dart';
 import 'package:devtools_app_shared/ui.dart';
 import 'package:devtools_app_shared/utils.dart';
diff --git a/packages/devtools_app/test/shared/scaffold_profile_test.dart b/packages/devtools_app/test/shared/scaffold_profile_test.dart
index b29bf4d..a585a51 100644
--- a/packages/devtools_app/test/shared/scaffold_profile_test.dart
+++ b/packages/devtools_app/test/shared/scaffold_profile_test.dart
@@ -3,9 +3,9 @@
 // found in the LICENSE file.
 
 import 'package:devtools_app/devtools_app.dart';
-import 'package:devtools_app/src/framework/scaffold.dart';
-import 'package:devtools_app/src/shared/framework_controller.dart';
-import 'package:devtools_app/src/shared/survey.dart';
+import 'package:devtools_app/src/framework/scaffold/scaffold.dart';
+import 'package:devtools_app/src/shared/framework/framework_controller.dart';
+import 'package:devtools_app/src/shared/managers/survey.dart';
 import 'package:devtools_app_shared/service.dart';
 import 'package:devtools_app_shared/ui.dart';
 import 'package:devtools_app_shared/utils.dart';
diff --git a/packages/devtools_app/test/shared/scaffold_test.dart b/packages/devtools_app/test/shared/scaffold_test.dart
index 660fd8b..8f4c538 100644
--- a/packages/devtools_app/test/shared/scaffold_test.dart
+++ b/packages/devtools_app/test/shared/scaffold_test.dart
@@ -3,10 +3,10 @@
 // found in the LICENSE file.
 
 import 'package:devtools_app/devtools_app.dart';
-import 'package:devtools_app/src/framework/scaffold.dart';
-import 'package:devtools_app/src/shared/framework_controller.dart';
-import 'package:devtools_app/src/shared/query_parameters.dart';
-import 'package:devtools_app/src/shared/survey.dart';
+import 'package:devtools_app/src/framework/scaffold/scaffold.dart';
+import 'package:devtools_app/src/shared/framework/framework_controller.dart';
+import 'package:devtools_app/src/shared/managers/survey.dart';
+import 'package:devtools_app/src/shared/primitives/query_parameters.dart';
 import 'package:devtools_app_shared/service.dart';
 import 'package:devtools_app_shared/shared.dart';
 import 'package:devtools_app_shared/ui.dart';
diff --git a/packages/devtools_app/test/shared/screens_test.dart b/packages/devtools_app/test/shared/screens_test.dart
index 5094055..1aad4c8 100644
--- a/packages/devtools_app/test/shared/screens_test.dart
+++ b/packages/devtools_app/test/shared/screens_test.dart
@@ -4,9 +4,9 @@
 
 import 'package:devtools_app/devtools_app.dart';
 import 'package:devtools_app/src/extensions/extension_screen.dart';
-import 'package:devtools_app/src/framework/scaffold.dart';
+import 'package:devtools_app/src/framework/scaffold/scaffold.dart';
 import 'package:devtools_app/src/shared/development_helpers.dart';
-import 'package:devtools_app/src/shared/query_parameters.dart';
+import 'package:devtools_app/src/shared/primitives/query_parameters.dart';
 import 'package:devtools_app_shared/shared.dart';
 import 'package:devtools_app_shared/ui.dart';
 import 'package:devtools_app_shared/utils.dart';
diff --git a/packages/devtools_app/test/shared/service_extension_widgets_test.dart b/packages/devtools_app/test/shared/service_extension_widgets_test.dart
index 1bec8d2..3f9a0c5 100644
--- a/packages/devtools_app/test/shared/service_extension_widgets_test.dart
+++ b/packages/devtools_app/test/shared/service_extension_widgets_test.dart
@@ -4,12 +4,12 @@
 
 import 'dart:async';
 
+import 'package:devtools_app/src/service/connected_app/connected_app.dart';
 import 'package:devtools_app/src/service/service_extension_widgets.dart';
 import 'package:devtools_app/src/service/service_extensions.dart' as extensions;
 import 'package:devtools_app/src/service/service_manager.dart';
 import 'package:devtools_app/src/service/service_registrations.dart';
-import 'package:devtools_app/src/shared/connected_app.dart';
-import 'package:devtools_app/src/shared/notifications.dart';
+import 'package:devtools_app/src/shared/managers/notifications.dart';
 import 'package:devtools_app/src/shared/primitives/message_bus.dart';
 import 'package:devtools_app_shared/service.dart';
 import 'package:devtools_app_shared/ui.dart';
diff --git a/packages/devtools_app/test/shared/survey_test.dart b/packages/devtools_app/test/shared/survey_test.dart
index 4472ebc..a6cea62 100644
--- a/packages/devtools_app/test/shared/survey_test.dart
+++ b/packages/devtools_app/test/shared/survey_test.dart
@@ -4,7 +4,7 @@
 
 import 'package:clock/clock.dart';
 import 'package:devtools_app/devtools_app.dart';
-import 'package:devtools_app/src/shared/survey.dart';
+import 'package:devtools_app/src/shared/managers/survey.dart';
 import 'package:flutter_test/flutter_test.dart';
 
 void main() {
diff --git a/packages/devtools_app/test/shared/syntax_highlighter_test.dart b/packages/devtools_app/test/shared/syntax_highlighter_test.dart
index 925c259..1ffdb7d 100644
--- a/packages/devtools_app/test/shared/syntax_highlighter_test.dart
+++ b/packages/devtools_app/test/shared/syntax_highlighter_test.dart
@@ -10,7 +10,7 @@
 
 import 'package:devtools_app/src/screens/debugger/span_parser.dart';
 import 'package:devtools_app/src/screens/debugger/syntax_highlighter.dart';
-import 'package:devtools_app/src/shared/routing.dart';
+import 'package:devtools_app/src/shared/framework/routing.dart';
 import 'package:devtools_app/src/shared/ui/colors.dart';
 import 'package:devtools_app_shared/ui.dart';
 import 'package:devtools_app_shared/utils.dart';
diff --git a/packages/devtools_app/test/shared/visible_screens_test.dart b/packages/devtools_app/test/shared/visible_screens_test.dart
index 65adfa1..686d32b 100644
--- a/packages/devtools_app/test/shared/visible_screens_test.dart
+++ b/packages/devtools_app/test/shared/visible_screens_test.dart
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 import 'package:devtools_app/devtools_app.dart';
-import 'package:devtools_app/src/shared/framework_controller.dart';
+import 'package:devtools_app/src/shared/framework/framework_controller.dart';
 import 'package:devtools_app_shared/utils.dart';
 import 'package:devtools_shared/devtools_shared.dart';
 import 'package:devtools_test/devtools_test.dart';
diff --git a/packages/devtools_app/test/vm_developer/object_inspector/object_viewport_test.dart b/packages/devtools_app/test/vm_developer/object_inspector/object_viewport_test.dart
index c572a8f..360dc20 100644
--- a/packages/devtools_app/test/vm_developer/object_inspector/object_viewport_test.dart
+++ b/packages/devtools_app/test/vm_developer/object_inspector/object_viewport_test.dart
@@ -10,7 +10,7 @@
 import 'package:devtools_app/src/screens/vm_developer/object_inspector/vm_instance_display.dart';
 import 'package:devtools_app/src/screens/vm_developer/object_inspector/vm_library_display.dart';
 import 'package:devtools_app/src/screens/vm_developer/object_inspector/vm_script_display.dart';
-import 'package:devtools_app/src/shared/history_viewport.dart';
+import 'package:devtools_app/src/shared/ui/history_viewport.dart';
 import 'package:devtools_app_shared/ui.dart';
 import 'package:devtools_app_shared/utils.dart';
 import 'package:devtools_test/devtools_test.dart';
diff --git a/packages/devtools_app/test/vm_developer/vm_developer_test_utils.dart b/packages/devtools_app/test/vm_developer/vm_developer_test_utils.dart
index 39f1b04..6e92ccc 100644
--- a/packages/devtools_app/test/vm_developer/vm_developer_test_utils.dart
+++ b/packages/devtools_app/test/vm_developer/vm_developer_test_utils.dart
@@ -8,9 +8,9 @@
 import 'package:devtools_app/src/screens/vm_developer/object_inspector/object_viewport.dart';
 import 'package:devtools_app/src/screens/vm_developer/object_inspector/vm_object_model.dart';
 import 'package:devtools_app/src/shared/diagnostics/primitives/source_location.dart';
+import 'package:devtools_app/src/shared/managers/script_manager.dart';
 import 'package:devtools_app/src/shared/primitives/listenable.dart';
 import 'package:devtools_app/src/shared/primitives/utils.dart';
-import 'package:devtools_app/src/shared/scripts/script_manager.dart';
 import 'package:devtools_app_shared/utils.dart';
 import 'package:devtools_test/devtools_test.dart';
 import 'package:flutter/foundation.dart';
diff --git a/packages/devtools_test/lib/src/helpers/wrappers.dart b/packages/devtools_test/lib/src/helpers/wrappers.dart
index dedfe30..172a35a 100644
--- a/packages/devtools_test/lib/src/helpers/wrappers.dart
+++ b/packages/devtools_test/lib/src/helpers/wrappers.dart
@@ -5,7 +5,7 @@
 // ignore_for_file: implementation_imports, invalid_use_of_visible_for_testing_member, fine for test only package.
 
 import 'package:devtools_app/devtools_app.dart';
-import 'package:devtools_app/src/shared/query_parameters.dart';
+import 'package:devtools_app/src/shared/primitives/query_parameters.dart';
 import 'package:devtools_app_shared/ui.dart';
 import 'package:devtools_app_shared/utils.dart';
 import 'package:flutter/material.dart';