{"id":16277614,"url":"https://github.com/brutalcoding/runtime_inspector","last_synced_at":"2025-10-25T10:31:11.493Z","repository":{"id":53901494,"uuid":"521867426","full_name":"BrutalCoding/runtime_inspector","owner":"BrutalCoding","description":"Inspect your Flutter app on the fly!","archived":true,"fork":false,"pushed_at":"2022-08-18T09:32:25.000Z","size":116621,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"dev","last_synced_at":"2025-01-31T14:53:40.503Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BrutalCoding.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-08-06T06:33:37.000Z","updated_at":"2024-06-25T07:11:21.000Z","dependencies_parsed_at":"2022-08-13T03:50:27.195Z","dependency_job_id":null,"html_url":"https://github.com/BrutalCoding/runtime_inspector","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrutalCoding%2Fruntime_inspector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrutalCoding%2Fruntime_inspector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrutalCoding%2Fruntime_inspector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrutalCoding%2Fruntime_inspector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BrutalCoding","download_url":"https://codeload.github.com/BrutalCoding/runtime_inspector/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238120396,"owners_count":19419764,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-10T18:55:39.006Z","updated_at":"2025-10-25T10:31:10.249Z","avatar_url":"https://github.com/BrutalCoding.png","language":"Dart","funding_links":["https://www.buymeacoffee.com/brutalcoding"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/BrutalCoding/runtime_inspector/raw/main/logo.png\" alt=\"Device Preview for Flutter\" /\u003e\n\u003c/p\u003e\n\n\u003ch4 align=\"center\"\u003eApproximate how your app looks and performs on another device.\u003c/h4\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://pub.dartlang.org/packages/device_preview\"\u003e\u003cimg src=\"https://img.shields.io/pub/v/device_preview.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.buymeacoffee.com/brutalcoding\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/$-donate-ff69b4.svg?maxAge=2592000\u0026amp;style=flat\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/BrutalCoding/runtime_inspector/raw/main/device_preview.gif\" alt=\"Device Preview for Flutter\" /\u003e\n\u003c/p\u003e\n\n## Runtime Inspector is based on Device Preview\nA spin-off from Device Preview, which can be found here: https://github.com/aloisdeniel/flutter_device_preview\n\nThanks to [aloisdeniel](https://github.com/aloisdenie) for putting up a great package.\n\nWhy not a fork? Because I tend to deviate the code a lot and committing these changes back will make it too different. \n\nRuntime Inspector is intended to be a one-stop plugin for you and your testers. Monkey testing enhanced!\n\n## Runtime Inspector features\n* Option to clear app cache (*SharedPrefences, getTemporaryDirectory() getApplicationSupportDirectory() but not this plugin preferences*)\n* Option to reset to default values (*Clears preferences of this plugin*)\n* Option to access \"End User Experience\" menu (*the app as seen by your end users, with options*)\n* Option to force rebuild widget tree\n* 0 linter issues\n* Updated example app with button to save or clear cached boolean\n* General bug fixes\n\n## Runtime Inspector roadmap 2022 \nThe following is a list of things that I would like to finish in no particular order.\n* Migrate from Provider to Riverpod\n* Migrate to full sound null safety\n* GH Action \"Version Bot\" ersioning each merge to main (*pubspec patch bump, git annotated tag and auto-generated CHANGELOG.md - All done through GH Actions*)\n* GH Action \"PR Bot\", to analyze and test your PR's for each commit. Only PR's with green checks will be reviewed!\n* GH Action \"Code Coverage Bot\", to generate a HTML code coverage report and upload to GitHub Pages. Triggered on merge to dev.\n\n## Main features (from Device Preview)\n\n* Preview any device from any device\n* Change the device orientation\n* Dynamic system configuration (*language, dark mode, text scaling factor, ...)*\n* Freeform device with adjustable resolution and safe areas\n* Keep the application state\n\n* Plugin system (*Screenshot, File explorer, ...*)\n* Customizable plugins\n\n## Quickstart\n\n### Add dependency to your pubspec file\n\nSince Device Preview is a simple Dart package, you have to declare it as any other dependency in your `pubspec.yaml` file.\n\n```yaml\ndependencies:\n  device_preview: \n    git:\n      url: https://github.com/BrutalCoding/runtime_inspector\n      ref: dev # Feel free to try another the branch\n      path: device_preview/\n```\n\n### Add DevicePreview\n\nWrap your app's root widget in a `DevicePreview` and make sure to :\n\n* Set your app's `useInheritedMediaQuery` to `true`.\n* Set your app's `builder` to `DevicePreview.appBuilder`.\n* Set your app's `locale` to `DevicePreview.locale(context)`.\n\n\u003e Make sure to override the previous properties as described. If not defined, `MediaQuery` won't be simulated for the selected device.\n\n```dart\nimport 'package:device_preview/device_preview.dart';\n\nvoid main() =\u003e runApp(\n  DevicePreview(\n    enabled: !kReleaseMode,\n    builder: (context) =\u003e MyApp(), // Wrap your app\n  ),\n);\n\nclass MyApp extends StatelessWidget {\n  @override\n  Widget build(BuildContext context) {\n    return MaterialApp(\n      useInheritedMediaQuery: true,\n      locale: DevicePreview.locale(context),\n      builder: DevicePreview.appBuilder,\n      theme: ThemeData.light(),\n      darkTheme: ThemeData.dark(),\n      home: const HomePage(),\n    );\n  }\n}\n```\n\n## Documentation\n\n\u003ca href='https://brutalcoding.github.io/runtime_inspector/' target='_blank'\u003eOpen the website\u003c/a\u003e\n\n## Demo\n\n\u003ca href='https://flutter-device-preview.firebaseapp.com/' target='_blank'\u003eOpen the demo\u003c/a\u003e\n\n## Limitations\n\nThink of Device Preview as a first-order approximation of how your app looks and feels on a mobile device. With Device Mode you don't actually run your code on a mobile device. You simulate the mobile user experience from your laptop, desktop or tablet.\n\n\u003e There are some aspects of mobile devices that Device Preview will never be able to simulate. When in doubt, your best bet is to actually run your app on a real device.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrutalcoding%2Fruntime_inspector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrutalcoding%2Fruntime_inspector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrutalcoding%2Fruntime_inspector/lists"}