{"id":15031396,"url":"https://github.com/norbert515/flutter_ide","last_synced_at":"2025-05-16T14:09:51.355Z","repository":{"id":41159956,"uuid":"163304041","full_name":"Norbert515/flutter_ide","owner":"Norbert515","description":"A visual editor for Flutter widgets","archived":false,"fork":false,"pushed_at":"2022-12-06T01:27:13.000Z","size":49328,"stargazers_count":1104,"open_issues_count":21,"forks_count":183,"subscribers_count":61,"default_branch":"master","last_synced_at":"2025-05-10T02:09:42.389Z","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/Norbert515.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":"2018-12-27T14:34:16.000Z","updated_at":"2025-05-04T10:36:16.000Z","dependencies_parsed_at":"2023-01-24T08:01:07.405Z","dependency_job_id":null,"html_url":"https://github.com/Norbert515/flutter_ide","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Norbert515%2Fflutter_ide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Norbert515%2Fflutter_ide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Norbert515%2Fflutter_ide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Norbert515%2Fflutter_ide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Norbert515","download_url":"https://codeload.github.com/Norbert515/flutter_ide/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254544159,"owners_count":22088808,"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-09-24T20:15:34.791Z","updated_at":"2025-05-16T14:09:51.334Z","avatar_url":"https://github.com/Norbert515.png","language":"Dart","funding_links":["https://www.buymeacoffee.com/norbertkozsir"],"categories":[],"sub_categories":[],"readme":"# The Widget-Maker\n\n![title](docs/gifs/main2.gif)\n\n\u003ca href=\"https://www.buymeacoffee.com/norbertkozsir\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/default-orange.png\" alt=\"Buy Me A Coffee\" style=\"height: 51px !important;width: 217px !important;\" \u003e\u003c/a\u003e\n\n## State of the project\n\nThe project is currently not maintained by me and the code could probably use a bit\nof refactoring.\n\nThis README is still work in progress.\n\nIf anybody is interested in contributing/ forking/ using it as a base for another project - feel free!\n\n\n## Features\n\n- Templates\n- Different Canvas sizes\n- Build and \"Play\" (interact with UI) mode\n- Multiple Canvases and instantiation\n- Code Generation\n\n![title](docs/gifs/multi_canvas.gif)\n![title](docs/gifs/code.gif)\n\n## Building \n\nThis is intended to be run using Flutter Desktop or Flutter web. \nFor Desktop, simply switch to the master channel and run:\n```\nflutter run -d [windows|linux|macos]\n```\n\n## The concept\n\nA few words about the code architecture.\n\n\n### Widget-Elements\n\nWidget-Elements play a central part in the Widget-Maker as these are actual widgets\nyou drag around and style. \nThe Widget-Elements can be found under [`lib/data/widget_elements`](lib/data/widget_elements).\n\nWidget-Elements form a forth tree (on top of Widgets/RenderObjects and Elements) they include\na lot of meta information.\nWidget-Elements only manage the tree, but not the actual rendering, interaction and modification\nof the widgets, that is up to the widget which is generated by the `generateWidget()` method.\nThose widgets have to mix in `ElementWidgetStateMixin`, that class contains code which handles common UX scenarios\nlike accepting children via drag, or showing a border on selection.\n\n\n#### Making new Widget-Elements\n\nYou certainly can make new Widget-Elements by hand, in fact Widget-Elements such as the `Scaffold`,\n`Row` and more are hand made.\n\nBut a lot of widgets are pretty basic, so instead of copy-pasting the same wrapper code over and over again,\nthere is a generator which does that for you.\n\nTake a look at (lib/Data/widget_elements/config.yaml and README.md) to get a sense of the schema.\n\nTo generated those widget simply execute the [`lib/data/widget_elements/scripts/build.dart`](lib/data/widget_elements/scripts/build.dart) file.\nBe sure to be inside the script folder when running that script because it relies on relative paths!\n\n```\ndart build.dart\n```\n\n\n### Properties\n\nThe [`MProperty`](lib/data/properties/basic_properties.dart) is the base class for all properties inside the Widget-Maker.\nEach Widget-Element has a list of properties. These properties reflect the constructor parameters\nof the widgets in code.\nProperties are responsible for providing a way of changing themselves and providing meta information.\n\nFor more information take a look at [lib/data/properties/basic_properties.dart](lib/data/properties/basic_properties.dart) \n\n\n\n## Running the test\n\nNot all tests seem to pass as of now.\n\n```\nflutter test\n```\n\n\n## Website\n\nThe docs folder contains the source for www.widgetmaker.dev\n\n## Donations\n\nFeel free to donate a pizza/ coffee :)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnorbert515%2Fflutter_ide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnorbert515%2Fflutter_ide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnorbert515%2Fflutter_ide/lists"}