Git Product home page Git Product logo

flutter_ide's Introduction

The Widget-Maker

title

Buy Me A Coffee

State of the project

The project is currently not maintained by me and the code could probably use a bit of refactoring.

This README is still work in progress.

If anybody is interested in contributing/ forking/ using it as a base for another project - feel free!

Features

  • Templates
  • Different Canvas sizes
  • Build and "Play" (interact with UI) mode
  • Multiple Canvases and instantiation
  • Code Generation

title title

Building

This is intended to be run using Flutter Desktop or Flutter web. For Desktop, simply switch to the master channel and run:

flutter run -d [windows|linux|macos]

The concept

A few words about the code architecture.

Widget-Elements

Widget-Elements play a central part in the Widget-Maker as these are actual widgets you drag around and style. The Widget-Elements can be found under lib/data/widget_elements.

Widget-Elements form a forth tree (on top of Widgets/RenderObjects and Elements) they include a lot of meta information. Widget-Elements only manage the tree, but not the actual rendering, interaction and modification of the widgets, that is up to the widget which is generated by the generateWidget() method. Those widgets have to mix in ElementWidgetStateMixin, that class contains code which handles common UX scenarios like accepting children via drag, or showing a border on selection.

Making new Widget-Elements

You certainly can make new Widget-Elements by hand, in fact Widget-Elements such as the Scaffold, Row and more are hand made.

But a lot of widgets are pretty basic, so instead of copy-pasting the same wrapper code over and over again, there is a generator which does that for you.

Take a look at (lib/Data/widget_elements/config.yaml and README.md) to get a sense of the schema.

To generated those widget simply execute the lib/data/widget_elements/scripts/build.dart file. Be sure to be inside the script folder when running that script because it relies on relative paths!

dart build.dart

Properties

The MProperty is the base class for all properties inside the Widget-Maker. Each Widget-Element has a list of properties. These properties reflect the constructor parameters of the widgets in code. Properties are responsible for providing a way of changing themselves and providing meta information.

For more information take a look at lib/data/properties/basic_properties.dart

Running the test

Not all tests seem to pass as of now.

flutter test

Website

The docs folder contains the source for www.widgetmaker.dev

Donations

Feel free to donate a pizza/ coffee :)

flutter_ide's People

Contributors

dependabot[bot] avatar mjablecnik avatar norbert515 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

flutter_ide's Issues

Build error

Hello everyone, I am getting a massive error here when trying to build on Chrome from MacOS.

Anyone managed to build on Mac? if yes, mind sharing a fork?

Launching lib/main.dart on Chrome in debug mode...
Waiting for connection from debug service on Chrome...
lib/ui/utils/global_draggable.dart:299:3: Error: Expected 0 type arguments.
MultiDragGestureRecognizer createRecognizer(GestureMultiDragStartCallback onStart) {
^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/ui/widgets/general/simple_2D_canvas.dart:419:9: Error: Type 'Overflow' not found.
final Overflow overflow;
^^^^^^^^
lib/ui/widgets/general/simple_2D_canvas.dart:464:5: Error: Type 'Overflow' not found.
Overflow overflow = Overflow.clip,
^^^^^^^^
lib/ui/widgets/general/simple_2D_canvas.dart:562:3: Error: Type 'Overflow' not found.
Overflow get overflow => _overflow;
^^^^^^^^
lib/ui/widgets/general/simple_2D_canvas.dart:563:3: Error: Type 'Overflow' not found.
Overflow _overflow;
^^^^^^^^
lib/ui/widgets/general/simple_2D_canvas.dart:564:16: Error: Type 'Overflow' not found.
set overflow(Overflow value) {
^^^^^^^^
lib/data/widget_elements/generated/final_widget_converter.dart:702:41: Error: Type 'OutlineButton' not found.
static void _parseOutlineButton(OutlineButton widget, WidgetBoard widgetBoard, String parentId, SlotData slotData) {
^^^^^^^^^^^^^
lib/data/widget_elements/generated/final_widget_converter.dart:716:40: Error: Type 'RaisedButton' not found.
static void _parseRaisedButton(RaisedButton widget, WidgetBoard widgetBoard, String parentId, SlotData slotData) {
^^^^^^^^^^^^
lib/ui/pages/workspace_page/workspace_page.dart:29:8: Error: The return type of the method 'MShortCutManager.handleKeypress' is 'bool', which does not match the return type, 'KeyEventResult', of the overridden method, 'ShortcutManager.handleKeypress'.

  • 'KeyEventResult' is from 'package:flutter/src/widgets/focus_manager.dart' ('../../development/flutter/packages/flutter/lib/src/widgets/focus_manager.dart').
    Change to a subtype of 'KeyEventResult'.
    bool handleKeypress(
    ^
    ../../development/flutter/packages/flutter/lib/src/widgets/shortcuts.dart:743:18: Context: This is the overridden method ('handleKeypress').
    KeyEventResult handleKeypress(BuildContext context, RawKeyEvent event) {
    ^
    lib/ui/widgets/general/simple_2D_canvas.dart:376:21: Error: Undefined name 'Overflow'.
    this.overflow = Overflow.clip,
    ^^^^^^^^
    lib/ui/widgets/general/simple_2D_canvas.dart:464:25: Error: Undefined name 'Overflow'.
    Overflow overflow = Overflow.clip,
    ^^^^^^^^
    lib/data/properties/icon_property/m_icons.dart:5355:17: Error: Member not found: 'pie_chart_outlined'.
    icon: Icons.pie_chart_outlined,
    ^^^^^^^^^^^^^^^^^^
    lib/ui/pages/workspace_page/workspace_page.dart:65:60: Error: No named parameter with the name 'nullOk'.
    return Actions.invoke(primaryContext, matchedIntent, nullOk: true);
    ^^^^^^
    ../../development/flutter/packages/flutter/lib/src/widgets/actions.dart:860:18: Context: Found this candidate, but the arguments don't match.
    static Object? invoke(
    ^^^^^^
    lib/ui/pages/workspace_page/workspace_page.dart:134:17: Error: 'NavigationBar' is imported from both 'package:flutter/src/material/navigation_bar.dart' and 'package:widget_maker_2_0/ui/pages/workspace_page/bars/navigation_bar.dart'.
    NavigationBar(
    ^^^^^^^^^^^^^
    lib/ui/pages/workspace_page/workspace_page.dart:122:9: Error: No named parameter with the name 'manager'.
    manager: MShortCutManager(),
    ^^^^^^^
    ../../development/flutter/packages/flutter/lib/src/widgets/shortcuts.dart:831:9: Context: Found this candidate, but the arguments don't match.
    const Shortcuts({
    ^^^^^^^^^
    lib/ui/pages/workspace_page/workspace_page.dart:256:28: Error: The method 'RaisedButton' isn't defined for the class 'CodeWorkspace'.
  • 'CodeWorkspace' is from 'package:widget_maker_2_0/ui/pages/workspace_page/workspace_page.dart' ('lib/ui/pages/workspace_page/workspace_page.dart').
    Try correcting the name to the name of an existing method, or defining a method named 'RaisedButton'.
    child: RaisedButton(
    ^^^^^^^^^^^^
    lib/ui/theme.dart:13:56: Error: The method 'inheritFromWidgetOfExactType' isn't defined for the class 'BuildContext'.
  • 'BuildContext' is from 'package:flutter/src/widgets/framework.dart' ('../../development/flutter/packages/flutter/lib/src/widgets/framework.dart').
    Try correcting the name to the name of an existing method, or defining a method named 'inheritFromWidgetOfExactType'.
    final _MyInheritedTheme myInheritedTheme = context.inheritFromWidgetOfExactType(_MyInheritedTheme);
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    lib/ui/widgets/dialogs/new_project_dialog.dart:34:80: Error: The getter 'display1' isn't defined for the class 'TextTheme'.
  • 'TextTheme' is from 'package:flutter/src/material/text_theme.dart' ('../../development/flutter/packages/flutter/lib/src/material/text_theme.dart').
    Try correcting the name to the name of an existing getter, or defining a getter or field named 'display1'.
    child: Text("Widget Maker", style: Theme.of(context).textTheme.display1,)
    ^^^^^^^^
    lib/ui/widgets/dialogs/new_project_dialog.dart:45:87: Error: The getter 'title' isn't defined for the class 'TextTheme'.
  • 'TextTheme' is from 'package:flutter/src/material/text_theme.dart' ('../../development/flutter/packages/flutter/lib/src/material/text_theme.dart').
    Try correcting the name to the name of an existing getter, or defining a getter or field named 'title'.
    Text("Start from scratch", style: Theme.of(context).textTheme.title,),
    ^^^^^
    lib/ui/widgets/dialogs/new_project_dialog.dart:73:88: Error: The getter 'title' isn't defined for the class 'TextTheme'.
  • 'TextTheme' is from 'package:flutter/src/material/text_theme.dart' ('../../development/flutter/packages/flutter/lib/src/material/text_theme.dart').
    Try correcting the name to the name of an existing getter, or defining a getter or field named 'title'.
    Text("Start from template", style: Theme.of(context).textTheme.title,),
    ^^^^^
    lib/ui/pages/workspace_page/bars/left_bar/left_bar.dart:23:11: Error: The method 'RaisedButton' isn't defined for the class 'LeftBar'.
  • 'LeftBar' is from 'package:widget_maker_2_0/ui/pages/workspace_page/bars/left_bar/left_bar.dart' ('lib/ui/pages/workspace_page/bars/left_bar/left_bar.dart').
    Try correcting the name to the name of an existing method, or defining a method named 'RaisedButton'.
    RaisedButton(
    ^^^^^^^^^^^^
    ../../development/flutter/.pub-cache/git/flutter_desktop_widgets2-48171a6d755483251bc127ba829f4d2e526a773d/lib/src/keyboard.dart:175:14: Error: The argument type 'bool Function(dynamic, RawKeyEvent)' can't be assigned to the parameter type 'KeyEventResult Function(FocusNode, RawKeyEvent)'.
  • 'RawKeyEvent' is from 'package:flutter/src/services/raw_keyboard.dart' ('../../development/flutter/packages/flutter/lib/src/services/raw_keyboard.dart').
  • 'KeyEventResult' is from 'package:flutter/src/widgets/focus_manager.dart' ('../../development/flutter/packages/flutter/lib/src/widgets/focus_manager.dart').
  • 'FocusNode' is from 'package:flutter/src/widgets/focus_manager.dart' ('../../development/flutter/packages/flutter/lib/src/widgets/focus_manager.dart').
    onKey: onKey,
    ^
    ../../development/flutter/.pub-cache/git/flutter_desktop_widgets2-48171a6d755483251bc127ba829f4d2e526a773d/lib/src/keyboard.dart:181:14: Error: The argument type 'bool Function(dynamic, RawKeyEvent)' can't be assigned to the parameter type 'KeyEventResult Function(FocusNode, RawKeyEvent)'.
  • 'RawKeyEvent' is from 'package:flutter/src/services/raw_keyboard.dart' ('../../development/flutter/packages/flutter/lib/src/services/raw_keyboard.dart').
  • 'KeyEventResult' is from 'package:flutter/src/widgets/focus_manager.dart' ('../../development/flutter/packages/flutter/lib/src/widgets/focus_manager.dart').
  • 'FocusNode' is from 'package:flutter/src/widgets/focus_manager.dart' ('../../development/flutter/packages/flutter/lib/src/widgets/focus_manager.dart').
    onKey: onKey,
    ^
    ../../development/flutter/.pub-cache/git/file_system_explorer-38d98d338b2ec091154a9ccf5401678e56892cf1/lib/src/file_picker.dart:108:29: Error: A value of type '_CurrentFileSystemEntitiy' can't be assigned to a variable of type 'Widget'.
  • '_CurrentFileSystemEntitiy' is from 'package:file_system_explorer/src/file_picker.dart' ('../../development/flutter/.pub-cache/git/file_system_explorer-38d98d338b2ec091154a9ccf5401678e56892cf1/lib/src/file_picker.dart').
  • 'Widget' is from 'package:flutter/src/widgets/framework.dart' ('../../development/flutter/packages/flutter/lib/src/widgets/framework.dart').
    builder: (context) => __currentFileSystemEntitiy,
    ^
    ../../development/flutter/.pub-cache/git/file_system_explorer-38d98d338b2ec091154a9ccf5401678e56892cf1/lib/src/file_picker.dart:120:40: Error: The getter 'body1' isn't defined for the class 'TextTheme'.
  • 'TextTheme' is from 'package:flutter/src/material/text_theme.dart' ('../../development/flutter/packages/flutter/lib/src/material/text_theme.dart').
    Try correcting the name to the name of an existing getter, or defining a getter or field named 'body1'.
    style: theme.textTheme.body1,
    ^^^^^
    ../../development/flutter/.pub-cache/git/file_system_explorer-38d98d338b2ec091154a9ccf5401678e56892cf1/lib/src/file_picker.dart:169:79: Error: The getter 'body1' isn't defined for the class 'TextTheme'.
  • 'TextTheme' is from 'package:flutter/src/material/text_theme.dart' ('../../development/flutter/packages/flutter/lib/src/material/text_theme.dart').
    Try correcting the name to the name of an existing getter, or defining a getter or field named 'body1'.
    child: Text("Ok", style: TextStyle(color: theme.textTheme.body1.color, fontWeight: FontWeight.w600),),
    ^^^^^
    ../../development/flutter/.pub-cache/git/file_system_explorer-38d98d338b2ec091154a9ccf5401678e56892cf1/lib/src/file_picker.dart:175:66: Error: The getter 'body1' isn't defined for the class 'TextTheme'.
  • 'TextTheme' is from 'package:flutter/src/material/text_theme.dart' ('../../development/flutter/packages/flutter/lib/src/material/text_theme.dart').
    Try correcting the name to the name of an existing getter, or defining a getter or field named 'body1'.
    child: Text("Cancle", style: theme.textTheme.body1,),
    ^^^^^
    ../../development/flutter/.pub-cache/git/file_system_explorer-38d98d338b2ec091154a9ccf5401678e56892cf1/lib/src/file_picker.dart:108:16: Error: The argument type 'Widget Function(BuildContext)' can't be assigned to the parameter type 'Widget Function(BuildContext, Widget)'.
  • 'Widget' is from 'package:flutter/src/widgets/framework.dart' ('../../development/flutter/packages/flutter/lib/src/widgets/framework.dart').
  • 'BuildContext' is from 'package:flutter/src/widgets/framework.dart' ('../../development/flutter/packages/flutter/lib/src/widgets/framework.dart').
    builder: (context) => __currentFileSystemEntitiy,
    ^
    lib/ui/widgets/general/simple_2D_canvas.dart:114:31: Error: The getter 'Overflow' isn't defined for the class '_Simple2DCanvasState'.
  • '_Simple2DCanvasState' is from 'package:widget_maker_2_0/ui/widgets/general/simple_2D_canvas.dart' ('lib/ui/widgets/general/simple_2D_canvas.dart').
    Try correcting the name to the name of an existing getter, or defining a getter or field named 'Overflow'.
    overflow: Overflow.visible,
    ^^^^^^^^
    lib/ui/widgets/general/simple_2D_canvas.dart:419:9: Error: 'Overflow' isn't a type.
    final Overflow overflow;
    ^^^^^^^^
    lib/ui/widgets/general/simple_2D_canvas.dart:446:33: Error: 'Overflow' isn't a type.
    properties.add(EnumProperty('overflow', overflow));
    ^^^^^^^^
    lib/ui/widgets/general/simple_2D_canvas.dart:464:5: Error: 'Overflow' isn't a type.
    Overflow overflow = Overflow.clip,
    ^^^^^^^^
    lib/ui/widgets/general/simple_2D_canvas.dart:563:3: Error: 'Overflow' isn't a type.
    Overflow _overflow;
    ^^^^^^^^
    lib/ui/widgets/general/simple_2D_canvas.dart:564:16: Error: 'Overflow' isn't a type.
    set overflow(Overflow value) {
    ^^^^^^^^
    lib/ui/widgets/general/simple_2D_canvas.dart:736:22: Error: The getter 'Overflow' isn't defined for the class 'RenderStack2'.
  • 'RenderStack2' is from 'package:widget_maker_2_0/ui/widgets/general/simple_2D_canvas.dart' ('lib/ui/widgets/general/simple_2D_canvas.dart').
    Try correcting the name to the name of an existing getter, or defining a getter or field named 'Overflow'.
    if (_overflow == Overflow.clip && _hasVisualOverflow) {
    ^^^^^^^^
    lib/ui/widgets/general/simple_2D_canvas.dart:752:33: Error: 'Overflow' isn't a type.
    properties.add(EnumProperty('overflow', overflow));
    ^^^^^^^^
    lib/templates/new_templates.dart:29:7: Error: No named parameter with the name 'autovalidate'.
    autovalidate: true,
    ^^^^^^^^^^^^
    ../../development/flutter/packages/flutter/lib/src/widgets/form.dart:40:9: Context: Found this candidate, but the arguments don't match.
    const Form({
    ^^^^
    lib/ui/pages/workspace_page/bars/left_bar/widget_tree.dart:74:75: Error: The getter 'title' isn't defined for the class 'TextTheme'.
  • 'TextTheme' is from 'package:flutter/src/material/text_theme.dart' ('../../development/flutter/packages/flutter/lib/src/material/text_theme.dart').
    Try correcting the name to the name of an existing getter, or defining a getter or field named 'title'.
    child: Text("Widget-Tree", style: Theme.of(context).textTheme.title,),
    ^^^^^
    lib/ui/pages/workspace_page/bars/left_bar/widget_tree.dart:154:79: Error: The getter 'body1' isn't defined for the class 'TextTheme'.
  • 'TextTheme' is from 'package:flutter/src/material/text_theme.dart' ('../../development/flutter/packages/flutter/lib/src/material/text_theme.dart').
    Try correcting the name to the name of an existing getter, or defining a getter or field named 'body1'.
    child: Text(element.object.name, style: Theme.of(context).textTheme.body1,),
    ^^^^^
    lib/ui/pages/workspace_page/bars/left_bar/widget_tree.dart:179:82: Error: The getter 'body1' isn't defined for the class 'TextTheme'.
  • 'TextTheme' is from 'package:flutter/src/material/text_theme.dart' ('../../development/flutter/packages/flutter/lib/src/material/text_theme.dart').
    Try correcting the name to the name of an existing getter, or defining a getter or field named 'body1'.
    Text(element.object.name, style: Theme.of(context).textTheme.body1,),
    ^^^^^
    lib/ui/pages/workspace_page/bars/right_bar/configuration_bar.dart:82:46: Error: The getter 'title' isn't defined for the class 'TextTheme'.
  • 'TextTheme' is from 'package:flutter/src/material/text_theme.dart' ('../../development/flutter/packages/flutter/lib/src/material/text_theme.dart').
    Try correcting the name to the name of an existing getter, or defining a getter or field named 'title'.
    style: Theme.of(context).textTheme.title,
    ^^^^^
    lib/ui/pages/workspace_page/bars/right_bar/configuration_bar.dart:89:24: Error: The method 'OutlineButton' isn't defined for the class '_ConfigurationBarState'.
  • '_ConfigurationBarState' is from 'package:widget_maker_2_0/ui/pages/workspace_page/bars/right_bar/configuration_bar.dart' ('lib/ui/pages/workspace_page/bars/right_bar/configuration_bar.dart').
    Try correcting the name to the name of an existing method, or defining a method named 'OutlineButton'.
    child: OutlineButton(
    ^^^^^^^^^^^^^
    lib/ui/pages/workspace_page/bars/right_bar/configuration_bar.dart:98:24: Error: The method 'OutlineButton' isn't defined for the class '_ConfigurationBarState'.
  • '_ConfigurationBarState' is from 'package:widget_maker_2_0/ui/pages/workspace_page/bars/right_bar/configuration_bar.dart' ('lib/ui/pages/workspace_page/bars/right_bar/configuration_bar.dart').
    Try correcting the name to the name of an existing method, or defining a method named 'OutlineButton'.
    child: OutlineButton(
    ^^^^^^^^^^^^^
    lib/ui/pages/workspace_page/bars/right_bar/configuration_bar.dart:111:24: Error: The method 'OutlineButton' isn't defined for the class '_ConfigurationBarState'.
  • '_ConfigurationBarState' is from 'package:widget_maker_2_0/ui/pages/workspace_page/bars/right_bar/configuration_bar.dart' ('lib/ui/pages/workspace_page/bars/right_bar/configuration_bar.dart').
    Try correcting the name to the name of an existing method, or defining a method named 'OutlineButton'.
    child: OutlineButton(
    ^^^^^^^^^^^^^
    lib/ui/pages/workspace_page/bars/right_bar/configuration_bar.dart:133:48: Error: The getter 'title' isn't defined for the class 'TextTheme'.
  • 'TextTheme' is from 'package:flutter/src/material/text_theme.dart' ('../../development/flutter/packages/flutter/lib/src/material/text_theme.dart').
    Try correcting the name to the name of an existing getter, or defining a getter or field named 'title'.
    style: Theme.of(context).textTheme.title,
    ^^^^^
    lib/ui/pages/workspace_page/bars/right_bar/configuration_bar.dart:139:52: Error: The getter 'subtitle' isn't defined for the class 'TextTheme'.
  • 'TextTheme' is from 'package:flutter/src/material/text_theme.dart' ('../../development/flutter/packages/flutter/lib/src/material/text_theme.dart').
    Try correcting the name to the name of an existing getter, or defining a getter or field named 'subtitle'.
    style: Theme.of(context).textTheme.subtitle,
    ^^^^^^^^
    lib/data/widget_elements/widgets/base.dart:57:29: Error: The method 'ancestorWidgetOfExactType' isn't defined for the class 'BuildContext'.
  • 'BuildContext' is from 'package:flutter/src/widgets/framework.dart' ('../../development/flutter/packages/flutter/lib/src/widgets/framework.dart').
    Try correcting the name to the name of an existing method, or defining a method named 'ancestorWidgetOfExactType'.
    isInReference = context.ancestorWidgetOfExactType(InstancedWidgetElementWidget) != null;
    ^^^^^^^^^^^^^^^^^^^^^^^^^
    lib/data/widget_elements/widgets/base.dart:143:9: Error: No named parameter with the name 'overflow'.
    overflow: Overflow.visible,
    ^^^^^^^^
    ../../development/flutter/packages/flutter/lib/src/widgets/basic.dart:3787:3: Context: Found this candidate, but the arguments don't match.
    Stack({
    ^^^^^
    lib/data/widget_elements/generated/final_widget_converter.dart:113:18: Error: Undefined name 'OutlineButton'.
    case OutlineButton: _parseOutlineButton(widget, widgetBoard, parentId, slotData);
    ^^^^^^^^^^^^^
    lib/data/widget_elements/generated/final_widget_converter.dart:115:18: Error: Undefined name 'RaisedButton'.
    case RaisedButton: _parseRaisedButton(widget, widgetBoard, parentId, slotData);
    ^^^^^^^^^^^^
    lib/data/widget_elements/generated/final_widget_converter.dart:702:41: Error: 'OutlineButton' isn't a type.
    static void _parseOutlineButton(OutlineButton widget, WidgetBoard widgetBoard, String parentId, SlotData slotData) {
    ^^^^^^^^^^^^^
    lib/data/widget_elements/generated/final_widget_converter.dart:716:40: Error: 'RaisedButton' isn't a type.
    static void _parseRaisedButton(RaisedButton widget, WidgetBoard widgetBoard, String parentId, SlotData slotData) {
    ^^^^^^^^^^^^
    lib/data/properties/value_changers/string_changer.dart:18:46: Error: The getter 'body1' isn't defined for the class 'TextTheme'.
  • 'TextTheme' is from 'package:flutter/src/material/text_theme.dart' ('../../development/flutter/packages/flutter/lib/src/material/text_theme.dart').
    Try correcting the name to the name of an existing getter, or defining a getter or field named 'body1'.
    style: Theme.of(context).textTheme.body1,
    ^^^^^
    lib/data/properties/value_changers/widgets/number_changer.dart:182:48: Error: The getter 'body1' isn't defined for the class 'TextTheme'.
  • 'TextTheme' is from 'package:flutter/src/material/text_theme.dart' ('../../development/flutter/packages/flutter/lib/src/material/text_theme.dart').
    Try correcting the name to the name of an existing getter, or defining a getter or field named 'body1'.
    style: Theme.of(context).textTheme.body1,
    ^^^^^
    lib/data/widget_elements/display/display.dart:65:12: Error: The method 'OutlineButton' isn't defined for the class 'DOutlineButton'.
  • 'DOutlineButton' is from 'package:widget_maker_2_0/data/widget_elements/display/display.dart' ('lib/data/widget_elements/display/display.dart').
    Try correcting the name to the name of an existing method, or defining a method named 'OutlineButton'.
    return OutlineButton(
    ^^^^^^^^^^^^^
    lib/data/widget_elements/display/display.dart:75:12: Error: The method 'RaisedButton' isn't defined for the class 'DRaisedButton'.
  • 'DRaisedButton' is from 'package:widget_maker_2_0/data/widget_elements/display/display.dart' ('lib/data/widget_elements/display/display.dart').
    Try correcting the name to the name of an existing method, or defining a method named 'RaisedButton'.
    return RaisedButton(
    ^^^^^^^^^^^^
    lib/data/widget_elements/generated/widgets/OutlineButton.dart:86:16: Error: The method 'OutlineButton' isn't defined for the class '_OutlineButtonElementWidgetState'.
  • '_OutlineButtonElementWidgetState' is from 'package:widget_maker_2_0/data/widget_elements/generated/widgets/OutlineButton.dart' ('lib/data/widget_elements/generated/widgets/OutlineButton.dart').
    Try correcting the name to the name of an existing method, or defining a method named 'OutlineButton'.
    child: OutlineButton(
    ^^^^^^^^^^^^^
    lib/data/widget_elements/generated/widgets/RaisedButton.dart:96:16: Error: The method 'RaisedButton' isn't defined for the class '_RaisedButtonElementWidgetState'.
  • '_RaisedButtonElementWidgetState' is from 'package:widget_maker_2_0/data/widget_elements/generated/widgets/RaisedButton.dart' ('lib/data/widget_elements/generated/widgets/RaisedButton.dart').
    Try correcting the name to the name of an existing method, or defining a method named 'RaisedButton'.
    child: RaisedButton(
    ^^^^^^^^^^^^
    lib/data/properties/icon_property/m_icons.dart:1671:10: Error: Member not found: 'pie_chart_outlined'.
    Icons.pie_chart_outlined: "pie_chart_outlined",
    ^^^^^^^^^^^^^^^^^^
    ../../development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_colorpicker-0.3.4/lib/src/colorpicker.dart:305:53: Error: The getter 'body2' isn't defined for the class 'TextTheme'.
  • 'TextTheme' is from 'package:flutter/src/material/text_theme.dart' ('../../development/flutter/packages/flutter/lib/src/material/text_theme.dart').
    Try correcting the name to the name of an existing getter, or defining a getter or field named 'body2'.
    Theme.of(context).textTheme.body2.copyWith(
    ^^^^^
    ../../development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_colorpicker-0.3.4/lib/src/hsv_picker.dart:419:53: Error: The getter 'body1' isn't defined for the class 'TextTheme'.
  • 'TextTheme' is from 'package:flutter/src/material/text_theme.dart' ('../../development/flutter/packages/flutter/lib/src/material/text_theme.dart').
    Try correcting the name to the name of an existing getter, or defining a getter or field named 'body1'.
    Theme.of(context).textTheme.body1.copyWith(
    ^^^^^
    Failed to compile application.

Additional flutter tools

Because we can't compile flutter on mobile devices yet and a flutter IDE would most likely still be tied to a computer I'd like to add some ideas.

In a nutshell: There should be a package that can analyze the source code meaningfully and provide information to the source code itself.

Preview

What I've been trying to do recently, is to collect all stateless widgets (or those with minimal state) inside a static preview variable.

    static PreviewModel get preview =>
        PreviewModel(
            description: "A Sparkline",
            preview: (context, counterStream, animationStream, ticker) =>
                Sparkline(
                    data: [0.0, 5.0, 1.5, 13],
                ),
        );

counterStream provides a counter stream for e.g. animating boolean values.
animationStream provides an animation stream for generic animation.
ticker access to a TickerProvider

That way I can collect previews of widgets manually and display them inside a list on a flutter desktop embedder from which I hope to get a better overview of all widgets as they grow in numbers.

I do believe that this could be greatly automated e.g. by adding annotations that the potential package could use to collect those previews automatically.

Navigation

The way I handle navigation right now is by giving all widgets that are supposed to be navigated to a mixin that tells them how they can be opened. This 'open' method is called from 'navigation command' objects that can be called anywhere.

Combining the first approach with the second should be enough to gather enough data to create an ios-storyboard-ish view. I believe that bigger applications could benefit from such a view by providing a general view of the application.

.

My point is, that these two use cases could easily be implemented by providing a common set of tools. The productivity we currently enjoy through our IDEs is hard to replace but relatively easy to improve by providing additional, easily expandable tools.

IntelliJ's plugins are hard to write and thats why barely anyone takes the time to do that. VSCode has many more plugins for flutter and dart but I'd say IntelliJ is still the preferred platform for developing flutter apps. With a solid foundation one could then easily replace their current IDE with a mobile one once the technology catches up.

Rendering inside the IDE

So does this mean that when you change the source code of your app, the IDE needs also to be reloaded? Or how would this work?

failed to run, because of version conflict

What is the suitable version for running this project?


PS F:\code\flutter_ide> flutter run -d windows
Because every version of flutter_driver from sdk depends on webdriver 3.0.0 which depends on archive ^3.0.0, every version of flutter_driver from sdk requires archive ^3.0.0.
And because archive >=3.0.0 depends on crypto ^3.0.0 and uuid >=2.0.0-rc1 <3.0.0-nullsafety.0 depends on crypto ^2.0.0, flutter_driver from sdk is incompatible with uuid >=2.0.0-rc1 <3.0.0-nullsafety.0.
So, because widget_maker_2_0 depends on both uuid ^2.0.1 and flutter_driver any from sdk, version solving failed.
Running "flutter pub get" in flutter_ide...
pub get failed (1; So, because widget_maker_2_0 depends on both uuid ^2.0.1 and flutter_driver any from sdk, version solving failed.)

I have tried Channel dev, 1.27.0-4.0.pre, on Microsoft Windows [Version 10.0.18363.1734], locale en-US and Channel stable, 2.2.3, on Microsoft Windows [Version 10.0.18363.1734], locale en-US. Both of them do not work.

Wrong keyboard layout

The app uses a default (EN) keyboard layout, which makes it for me not really usable :(
Didn't see any app which forces it's own keyboard layout other than what you've setup in Windows.

Live compilation

Hey! Just found this, and read through some things, and could you separate the live compilation code into a new repo, or explain the concept in detail for me to implement myself in a app?

If not that's fine, Ill probably understand it at some point

Crash on Starting Widget-marker

Did call run.bash and got the following error message.

>> bin\dart bin\widget-maker.snapshot
Failed to init NativeSymbolResolver (SymInitialize 87)
flutter: Observatory listening on http://127.0.0.1:49683/

===== CRASH =====
version=2.1.0 (Tue Nov 13 18:22:02 2018 +0100) on "windows_x64"
ExceptionCode=-1073741819, ExceptionFlags=0, ExceptionAddress=00007FFA952CF4F6
Dumping native stack trace for thread 1ff0
Stack dump aborted because InitialRegisterCheck failed.

I'm on Windows 10 x64 bit with the C++ redist installed.

License?

Hi!

I'm interested in perhaps forking your codebase or using it directly for a project - but it doesn't seem to have a license. Could you add one (e.g. MIT License) to the README so folks can safely fork?

Thanks!

No source code available

The provided release seems to be for Windows only, and since there's no source code, it can't be built for Linux, iOS, Android or Mac.

===== CRASH =====

version=2.1.0 (Tue Nov 13 18:22:02 2018 +0100) on "windows_x64"
ExceptionCode=-1073741819, ExceptionFlags=0, ExceptionAddress=00007FFAFCACF4F6
Dumping native stack trace for thread efc
Stack dump aborted because InitialRegisterCheck failed.

Tutorial won't start

I've been looking at a gray screen that says the tutorial won't take longer than one minute. There is nothing else on the screen other than this text. My laptop resolution is 1366x768, am I not seeing a button or something that is supposed to help me go to the tutorial?

image

macos:Failed to find path for "flutter_assets"

2021-02-02 15:19:43.716 widget_maker_2_0[31171:16202128] Failed to find path for "flutter_assets"
2021-02-02 15:19:43.717 widget_maker_2_0[31171:16202128] Failed to find path for "flutter_assets"
embedder.cc (860): 'FlutterEngineInitialize' returned 'kInvalidArguments'. The assets path in the Flutter project arguments was missing.
2021-02-02 15:19:43.717 widget_maker_2_0[31171:16202128] Failed to initialize Flutter engine: error 2

Can't run in VM

Hey there,
I use Linux and tried to run this in a windows 10 pro virtualbox session but unfortunately received the following. I am guessing it probably just won't work in a VM? I very much am not interested in installing Windows on my PC if I don't have to.

(I did install the C++ runtime files that were linked)

PS C:\Users\mosthated\Downloads\widget-maker\widget-maker-bundled> .\run.bat

C:\Users\mosthated\Downloads\widget-maker\widget-maker-bundled>bin\dart bin\widget-maker.snapshot
Failed to init NativeSymbolResolver (SymInitialize 87)
[ERROR:e:\b\build\slave\windows_engine\build\src\flutter\shell\gpu\gpu_surface_gl.cc(85)] Failed to setup Skia Gr context.
flutter: Observatory listening on http://127.0.0.1:49910/

===== CRASH =====
version=2.1.0 (Tue Nov 13 18:22:02 2018 +0100) on "windows_x64"
ExceptionCode=-1073741819, ExceptionFlags=0, ExceptionAddress=00007FF91157BF1C
Dumping native stack trace for thread d74
  [0x00007ff91157bf1c] Unknown symbol
  [0x00007ff91157bf1c] Unknown symbol
-- End of DumpStackTrace
PS C:\Users\mosthated\Downloads\widget-maker\widget-maker-bundled>

Thanks,
-MH

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.