{"id":19610556,"url":"https://github.com/kaboc/pubdev-explorer","last_synced_at":"2026-02-12T17:03:21.754Z","repository":{"id":143049272,"uuid":"564629774","full_name":"kaboc/pubdev-explorer","owner":"kaboc","description":"An app to explore and bookmark packages hosted on pub.dev.","archived":false,"fork":false,"pushed_at":"2024-11-30T14:07:01.000Z","size":7939,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-21T02:47:38.708Z","etag":null,"topics":["flutter-app","flutter-example"],"latest_commit_sha":null,"homepage":"https://kaboc.github.io/pubdev-explorer/","language":"JavaScript","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/kaboc.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-11-11T05:55:12.000Z","updated_at":"2024-11-30T14:03:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"fa887946-3f9f-4d43-b526-2dfc7d24f6b6","html_url":"https://github.com/kaboc/pubdev-explorer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kaboc/pubdev-explorer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaboc%2Fpubdev-explorer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaboc%2Fpubdev-explorer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaboc%2Fpubdev-explorer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaboc%2Fpubdev-explorer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kaboc","download_url":"https://codeload.github.com/kaboc/pubdev-explorer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kaboc%2Fpubdev-explorer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29373837,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T08:51:36.827Z","status":"ssl_error","status_checked_at":"2026-02-12T08:51:26.849Z","response_time":55,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["flutter-app","flutter-example"],"created_at":"2024-11-11T10:30:04.369Z","updated_at":"2026-02-12T17:03:21.739Z","avatar_url":"https://github.com/kaboc.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pub.dev explorer\n\nAn app to explore and bookmark packages hosted on [pub.dev](https://pub.dev/).\n\n[**Web App**](https://kaboc.github.io/pubdev-explorer/)\n\n\u003cimg src=\"https://github.com/kaboc/pubdev-explorer/assets/20254485/28595978-bd11-4dac-81eb-90a1b5d47487\" width=\"240\"\u003e \u003cimg src=\"https://github.com/kaboc/pubdev-explorer/assets/20254485/56149003-2127-405d-9ee9-0f588308caee\" width=\"240\"\u003e \u003cimg src=\"https://github.com/kaboc/pubdev-explorer/assets/20254485/9c38a02f-42ad-446e-bf1b-d1e90d6f7627\" width=\"240\"\u003e\n\n## About this app\n\nThis is a sample app showcasing the following packages.\n\nThe app shows an example of how those packages are combined. The author himself,\nhowever, is still examining and considering how they are made good use of to\nmake the app more maintainable and easier to evolve, so the current app design\nis not necessarily the best.\n\n- [pottery](https://pub.dev/packages/pottery)\n    - A utility widget for [pot](https://pub.dev/packages/pot).\n    - Pot is an easy and safe DI solution. It is somewhat similar to providers\n      of pkg:riverpod in that the instance is assigned to a global variable and\n      can be accessed from anywhere, but different in that Pot is just a service\n      locator with only a few handy features and no complexity.\n    - Pottery limits the lifetime of Pots in the widget tree, making it possible\n      to use Pots in a similar manner to using MultiProvider of pkg:provider.\n- [grab](https://pub.dev/packages/grab)\n    - A package to control rebuilds of a widget based on updates of a `Listenable`\n      such as `ChangeNotifier` and `ValueNotifier`.\n    - Usage is similar to `watch()` and `select()` of pkg:provider, but Grab\n      does not depend on the widget tree.\n    - Take it as an extension method version of `ValueListenableBuilder` with\n      filtering.\n- [async_phase_notifier](https://github.com/kaboc/async-phase-notifier)\n    - A variant of `ValueNotifier` similar to AsyncNotifier of pkg:riverpod.\n    - `AsyncPhase` has one more phase \"initial\", which AsyncValue of Riverpod\n      does not have.\n    - `AsyncPhaseNotifier` provides a way to listen to errors, and there is also\n      `AsyncErrorListener` that is a widget with an error handler, convenient\n      for imperatively showing a message (e.g. showing a SnackBar) or for logging. \n- [custom_text](https://pub.dev/packages/custom_text)\n    - A highly customisable text widget that decorates substrings and enables\n      tap / long-press / hover actions flexibly based on regular expression\n      patterns.\n    - Such decorations and actions are also available in text editing with\n      `CustomTextEditingController`, although the controller is not used in this\n      app.\n      \n## How to run\n\nJust run `flutter run` in the `app/` directory, with additional options if necessary.\n\n## Code generation\n\nThe [drift](https://pub.dev/packages/drift) package used in this app requires\ncode generation. If you change the classes from which code is generated, run the\ncommand below in the `core/` directory to regenerate the code.\n\n```shell\n$ dart run build_runner build\n```\n\nThis project already contains generated code in `core/lib/src/generated/`, so\nif you haven't changed anything, the above command is unnecessary.\n\n### Mock data for the web\n\nThe pub.dev API is not available on the web unfortunately, so mock data preset\nin the app is used instead. The data contains the packages that were top 100\nat some point in the past.\n\n### Mock data on other platforms \n\nTo use the mock data on platforms besides the web, set the `USE_MOCK`\nenvironment variable to true as follows:\n\n```dart\nflutter run --dart-define=USE_MOCK=true\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaboc%2Fpubdev-explorer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkaboc%2Fpubdev-explorer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaboc%2Fpubdev-explorer/lists"}