2d-inc / developer_quest Goto Github PK
View Code? Open in Web Editor NEWRespository for the I/O 2019 demo: Become a tech lead, slay bugs, and don't get fired.
License: MIT License
Respository for the I/O 2019 demo: Become a tech lead, slay bugs, and don't get fired.
License: MIT License
Cannot investigate, so I'm just capturing.
In this state (after the first task got completed and after I tapped to add a new task):
I got this assertion error
I/flutter ( 6244): ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
I/flutter ( 6244): The following assertion was thrown during paint():
I/flutter ( 6244): 'dart:ui/painting.dart': Failed assertion: line 187: '<optimized out>': is not true.
I/flutter ( 6244):
I/flutter ( 6244): Either the assertion indicates an error in the framework itself, or we should provide substantially
I/flutter ( 6244): more information in this error message to help you determine and fix the underlying cause.
I/flutter ( 6244): In either case, please report this assertion by filing a bug on GitHub:
I/flutter ( 6244): https://github.com/flutter/flutter/issues/new?template=BUG.md
I/flutter ( 6244):
I/flutter ( 6244): When the exception was thrown, this was the stack:
I/flutter ( 6244): #2 Color.withOpacity (dart:ui/painting.dart:187:12)
I/flutter ( 6244): #3 FlutterActorImage.draw (package:flare_flutter/flare.dart:1009:33)
I/flutter ( 6244): #4 FlutterActorArtboard.draw (package:flare_flutter/flare.dart:675:44)
I/flutter ( 6244): #5 HiringBustRenderObject.paintFlare (package:dev_rpg/src/widgets/flare/hiring_bust.dart:190:16)
I/flutter ( 6244): #6 FlareRenderBox.paint (package:flare_flutter/flare_render_box.dart:192:7)
I/flutter ( 6244): #7 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
I/flutter ( 6244): #8 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 6244): #9 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 6244): #10 RenderDecoratedBox.paint (package:flutter/src/rendering/proxy_box.dart:1945:11)
I/flutter ( 6244): #11 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
I/flutter ( 6244): #12 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 6244): #13 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 6244): #14 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
I/flutter ( 6244): #15 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 6244): #16 _RenderWrap&RenderBox&ContainerRenderObjectMixin&RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2273:15)
I/flutter ( 6244): #17 RenderWrap.paint (package:flutter/src/rendering/wrap.dart:762:7)
I/flutter ( 6244): #18 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
I/flutter ( 6244): #19 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 6244): #20 _RenderFlex&RenderBox&ContainerRenderObjectMixin&RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2273:15)
I/flutter ( 6244): #21 RenderFlex.paint (package:flutter/src/rendering/flex.dart:942:7)
I/flutter ( 6244): #22 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
I/flutter ( 6244): #23 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 6244): #24 _RenderFlex&RenderBox&ContainerRenderObjectMixin&RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2273:15)
I/flutter ( 6244): #25 RenderFlex.paint (package:flutter/src/rendering/flex.dart:942:7)
I/flutter ( 6244): #26 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
I/flutter ( 6244): #27 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 6244): #28 RenderShiftedBox.paint (package:flutter/src/rendering/shifted_box.dart:70:15)
I/flutter ( 6244): #29 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
I/flutter ( 6244): #30 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 6244): #31 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 6244): #32 RenderPointerListener.paint (package:flutter/src/rendering/proxy_box.dart:2608:11)
I/flutter ( 6244): #33 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
I/flutter ( 6244): #34 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 6244): #35 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 6244): #36 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
I/flutter ( 6244): #37 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 6244): #38 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 6244): #39 _RenderInkFeatures.paint (package:flutter/src/material/material.dart:510:11)
I/flutter ( 6244): #40 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
I/flutter ( 6244): #41 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 6244): #42 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 6244): #43 RenderCustomPaint.paint (package:flutter/src/rendering/custom_paint.dart:564:11)
I/flutter ( 6244): #44 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
I/flutter ( 6244): #45 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 6244): #46 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 6244): #47 PaintingContext.pushClipPath.<anonymous closure> (package:flutter/src/rendering/object.dart:444:81)
I/flutter ( 6244): #48 ClipContext._clipAndPaint (package:flutter/src/painting/clip.dart:29:12)
I/flutter ( 6244): #49 ClipContext.clipPathAndPaint (package:flutter/src/painting/clip.dart:41:5)
I/flutter ( 6244): #50 PaintingContext.pushClipPath (package:flutter/src/rendering/object.dart:444:7)
I/flutter ( 6244): #51 RenderClipPath.paint (package:flutter/src/rendering/proxy_box.dart:1493:15)
I/flutter ( 6244): #52 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
I/flutter ( 6244): #53 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 6244): #54 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 6244): #55 RenderDecoratedBox.paint (package:flutter/src/rendering/proxy_box.dart:1945:11)
I/flutter ( 6244): #56 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
I/flutter ( 6244): #57 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 6244): #58 RenderShiftedBox.paint (package:flutter/src/rendering/shifted_box.dart:70:15)
I/flutter ( 6244): #59 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
I/flutter ( 6244): #60 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
I/flutter ( 6244): #61 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
I/flutter ( 6244): #62 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
I/flutter ( 6244): #63 PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:128:11)
I/flutter ( 6244): #64 PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:96:5)
I/flutter ( 6244): #65 PipelineOwner.flushPaint (package:flutter/src/rendering/object.dart:859:29)
I/flutter ( 6244): #66 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:349:19)
I/flutter ( 6244): #67 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:701:13)
I/flutter ( 6244): #68 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:286:5)
I/flutter ( 6244): #69 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1012:15)
I/flutter ( 6244): #70 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:952:9)
I/flutter ( 6244): #71 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:864:5)
I/flutter ( 6244): #75 _invoke (dart:ui/hooks.dart:219:10)
I/flutter ( 6244): #76 _drawFrame (dart:ui/hooks.dart:178:3)
I/flutter ( 6244): (elided 5 frames from class _AssertionError and package dart:async)
I/flutter ( 6244):
I/flutter ( 6244): The following RenderObject was being processed when the exception was fired:
I/flutter ( 6244): HiringBustRenderObject#4aafe
I/flutter ( 6244): creator: HiringBust ← DecoratedBox ← ConstrainedBox ← Container ← Wrap ← WorkTeam ← Column ←
I/flutter ( 6244): TeamProgressIndicator ← Column ← Padding ← Listener ← _GestureSemantics ← ⋯
I/flutter ( 6244): parentData: <none> (can use size)
I/flutter ( 6244): constraints: BoxConstraints(w=71.0, h=71.0)
I/flutter ( 6244): size: Size(71.0, 71.0)
I/flutter ( 6244): This RenderObject has no descendants.
I/flutter ( 6244): ════════════════════════════════════════════════════════════════════════════════════════════════════
I/flutter ( 6244): Another exception was thrown: 'dart:ui/painting.dart': Failed assertion: line 187: '<optimized out>': is not true.
I/chatty ( 6244): uid=10192(dev.flutter.devRpg) 1.ui identical 12 lines
I/flutter ( 6244): Another exception was thrown: 'dart:ui/painting.dart': Failed assertion: line 187: '<optimized out>': is not true.
I/flutter ( 6244): Another exception was thrown: 'dart:ui/painting.dart': Failed assertion: line 187: '<optimized out>': is not true.
I/chatty ( 6244): uid=10192(dev.flutter.devRpg) 1.ui identical 4 lines
I/flutter ( 6244): Another exception was thrown: 'dart:ui/painting.dart': Failed assertion: line 187: '<optimized out>': is not true.
I/flutter ( 6244): Another exception was thrown: 'dart:ui/painting.dart': Failed assertion: line 187: '<optimized out>': is not true.
I/chatty ( 6244): uid=10192(dev.flutter.devRpg) 1.ui identical 16 lines
I/flutter ( 6244): Another exception was thrown: 'dart:ui/painting.dart': Failed assertion: line 187: '<optimized out>': is not true.
I/flutter ( 6244): Another exception was thrown: 'dart:ui/painting.dart': Failed assertion: line 187: '<optimized out>': is not true.
I/chatty ( 6244): uid=10192(dev.flutter.devRpg) 1.ui identical 10 lines
It's an assertion, so won't show up in production, but it definitely signifies something fishy. Especially since it's thrown from dart:ui/painting.dart
. Unfortunately, the exact line is optimized out (even though we're in debug mode, which is a surprise to me).
HUAWEI Honor 8
Tasks add tasks item overflowed 2.0 pixels
for the super large layout, we should have 3 characters across the top.
Also, let's be honest, they are the most visually exciting thing on the app -- we could make that column take up more screen real-estate in general (50% ? 40%?)
The tasks to be worked on can be the same size, but make the "completed"/launch column narrower.
I think the notification bubble should appear when there's something new, and it should be cleared when you navigate to that tab. Right now it seems to always stay on the Team tab for me.
Right now, after you've hired someone, a task becomes available, but we don't highlight the tasks tab... so if you're a newcomer you don't know what to do next.
Note: the image below is a design comp, not the app.
the users widget (This was on the TV) seemed to disappear after a while? The text was there but there wasn't anything next to the text.
I played through the game (defeated the style sphinx) but I never saw the pop up come to say how well I did. After that I was unable to assign team members to new tasks or "launch" other "finished" tasks.
are the costs/skills such that we're forcing people to hire more characters? (we should)
Are characters too powerful?
Two of the characters (Jack of all Trades and Sourcerer) intentionally have three different skills... which means that on smaller screens like the iPhone 8, the upgrade/hire button falls off the screen. I already tried to shorten the descriptions, but it's still a bit large. Perhaps we should shrink the padding between the skills slightly?
If we absolutely have to I can trim the descriptions further but they already feel pretty basic at this point.
HUAWEI Honor 8
about page bottom overflowed by 78pixels
I just did some user testing on the app with Flutter team-members.
The launching of the minigame was a bit of a surprise for them. Perhaps we should introduce a quick little modal before the fullscreen that says "to launch [Alpha/Beta/1.0] you must first complete this minigame"?
for my index finger, I tap and accidentally keep bringing up the "assign team" bottom drawer
I'm just dumping Strings directly into the build methods. Should we setup LocalizationDelegates?
This one's only happening in the demo branch, only when using a mouse. It happens if your cursor was over one of the characters and the inactivity timeout pops you back to the welcome screen. The stack seems to suggest that in the process of detaching, the Listener fires the onPointerExit callback. We call setState when that happens, which causes this error. The error message, however, mentions that we are in a build phase...either way, is there a good way to detect either condition and avoid calling setState, or is there something more fundamental going on here?
This ends up putting the demo in an unrecoverable state.
I/flutter ( 6197): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter ( 6197): The following assertion was thrown building Overlay-[LabeledGlobalKey<OverlayState>#e7924](state:
I/flutter ( 6197): OverlayState#1e814(tickers: tracking 0 tickers, entries: [OverlayEntry#56a87(opaque: false;
I/flutter ( 6197): maintainState: false), OverlayEntry#e61e6(opaque: false; maintainState: true),
I/flutter ( 6197): OverlayEntry#5b713(opaque: true; maintainState: false), OverlayEntry#5be4e(opaque: false;
I/flutter ( 6197): maintainState: true)])):
I/flutter ( 6197): setState() or markNeedsBuild() called during build.
I/flutter ( 6197): This CharacterListItem widget cannot be marked as needing to build because the framework is already
I/flutter ( 6197): in the process of building widgets. A widget can be marked as needing to be built during the build
I/flutter ( 6197): phase only if one of its ancestors is currently building. This exception is allowed because the
I/flutter ( 6197): framework builds parent widgets before children, which means a dirty descendant will always be
I/flutter ( 6197): built. Otherwise, the framework might not visit this widget during this build phase.
I/flutter ( 6197): The widget on which setState() or markNeedsBuild() was called was:
I/flutter ( 6197): CharacterListItem(state: _CharacterListItemState#9f280)
I/flutter ( 6197): The widget which was currently being built when the offending call was made was:
I/flutter ( 6197): Overlay-[LabeledGlobalKey<OverlayState>#e7924](state: OverlayState#1e814(tickers: tracking 0
I/flutter ( 6197): tickers, entries: [OverlayEntry#56a87(opaque: false; maintainState: false),
I/flutter ( 6197): OverlayEntry#e61e6(opaque: false; maintainState: true), OverlayEntry#5b713(opaque: true;
I/flutter ( 6197): maintainState: false), OverlayEntry#5be4e(opaque: false; maintainState: true)]))
I/flutter ( 6197):
I/flutter ( 6197): When the exception was thrown, this was the stack:
I/flutter ( 6197): #0 Element.markNeedsBuild.<anonymous closure> (package:flutter/src/widgets/framework.dart:3503:11)
I/flutter ( 6197): #1 Element.markNeedsBuild (package:flutter/src/widgets/framework.dart:3529:6)
I/flutter ( 6197): #2 State.setState (package:flutter/src/widgets/framework.dart:1133:14)
I/flutter ( 6197): #3 _CharacterListItemState._stopPlaying (package:dev_rpg/src/game_screen/character_pool_page.dart:91:44)
I/flutter ( 6197): #4 MouseTracker.detachAnnotation (package:flutter/src/gestures/mouse_tracking.dart:125:20)
I/flutter ( 6197): #5 RenderPointerListener.detach (package:flutter/src/rendering/proxy_box.dart:2593:45)
I/flutter ( 6197): #6 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #7 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #8 _RenderSliverMultiBoxAdaptor&RenderSliver&ContainerRenderObjectMixin.detach (package:flutter/src/rendering/object.dart:3032:13)
I/flutter ( 6197): #9 RenderSliverMultiBoxAdaptor.detach (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:305:11)
I/flutter ( 6197): #10 _RenderSliverPadding&RenderSliver&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #11 _RenderViewportBase&RenderBox&ContainerRenderObjectMixin.detach (package:flutter/src/rendering/object.dart:3032:13)
I/flutter ( 6197): #12 RenderViewportBase.detach (package:flutter/src/rendering/viewport.dart:285:11)
I/flutter ( 6197): #13 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #14 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #15 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #16 RenderPointerListener.detach (package:flutter/src/rendering/proxy_box.dart:2595:11)
I/flutter ( 6197): #17 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #18 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #19 RenderPointerListener.detach (package:flutter/src/rendering/proxy_box.dart:2595:11)
I/flutter ( 6197): #20 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #21 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #22 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #23 RenderCustomPaint.detach (package:flutter/src/rendering/custom_paint.dart:496:11)
I/flutter ( 6197): #24 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #25 _RenderStack&RenderBox&ContainerRenderObjectMixin.detach (package:flutter/src/rendering/object.dart:3032:13)
I/flutter ( 6197): #26 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #27 _RenderFlex&RenderBox&ContainerRenderObjectMixin.detach (package:flutter/src/rendering/object.dart:3032:13)
I/flutter ( 6197): #28 _RenderCustomMultiChildLayoutBox&RenderBox&ContainerRenderObjectMixin.detach (package:flutter/src/rendering/object.dart:3032:13)
I/flutter ( 6197): #29 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #30 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #31 _RenderCustomClip.detach (package:flutter/src/rendering/proxy_box.dart:1189:11)
I/flutter ( 6197): #32 __RenderLayoutBuilder&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #33 __RenderLayoutBuilder&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #34 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #35 RenderPointerListener.detach (package:flutter/src/rendering/proxy_box.dart:2595:11)
I/flutter ( 6197): #36 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #37 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #38 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #39 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #40 RenderAnimatedOpacity.detach (package:flutter/src/rendering/proxy_box.dart:887:11)
I/flutter ( 6197): #41 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #42 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #43 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #44 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin.detach (package:flutter/src/rendering/object.dart:2774:14)
I/flutter ( 6197): #45 AbstractNode.dropChild (package:flutter/src/foundation/node.dart:147:13)
I/flutter ( 6197): #46 RenderObject.dropChild (package:flutter/src/rendering/object.dart:1169:11)
I/flutter ( 6197): #47 _RenderStack&RenderBox&ContainerRenderObjectMixin.remove (package:flutter/src/rendering/object.dart:2977:5)
I/flutter ( 6197): #48 MultiChildRenderObjectElement.removeChildRenderObject (package:flutter/src/widgets/framework.dart:4957:18)
I/flutter ( 6197): #49 RenderObjectElement.detachRenderObject (package:flutter/src/widgets/framework.dart:4744:36)
I/flutter ( 6197): #50 Element.detachRenderObject.<anonymous closure> (package:flutter/src/widgets/framework.dart:2867:13)
I/flutter ( 6197): #51 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3770:14)
I/flutter ( 6197): #52 Element.detachRenderObject (package:flutter/src/widgets/framework.dart:2866:5)
I/flutter ( 6197): #53 Element.detachRenderObject.<anonymous closure> (package:flutter/src/widgets/framework.dart:2867:13)
I/flutter ( 6197): #54 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3770:14)
I/flutter ( 6197): #55 Element.detachRenderObject (package:flutter/src/widgets/framework.dart:2866:5)
I/flutter ( 6197): #56 Element.detachRenderObject.<anonymous closure> (package:flutter/src/widgets/framework.dart:2867:13)
I/flutter ( 6197): #57 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3770:14)
I/flutter ( 6197): #58 Element.detachRenderObject (package:flutter/src/widgets/framework.dart:2866:5)
I/flutter ( 6197): #59 Element.deactivateChild (package:flutter/src/widgets/framework.dart:2996:11)
I/flutter ( 6197): #60 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:4694:11)
I/flutter ( 6197): #61 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:4992:17)
I/flutter ( 6197): #62 Element.updateChild (package:flutter/src/widgets/framework.dart:2753:15)
I/flutter ( 6197): #63 _TheatreElement.update (package:flutter/src/widgets/overlay.dart:607:16)
I/flutter ( 6197): #64 Element.updateChild (package:flutter/src/widgets/framework.dart:2753:15)
I/flutter ( 6197): #65 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3750:16)
I/flutter ( 6197): #66 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5)
I/flutter ( 6197): #67 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2278:33)
I/flutter ( 6197): #68 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:700:20)
I/flutter ( 6197): #69 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:286:5)
I/flutter ( 6197): #70 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1012:15)
I/flutter ( 6197): #71 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:952:9)
I/flutter ( 6197): #72 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:864:5)
I/flutter ( 6197): #76 _invoke (dart:ui/hooks.dart:219:10)
I/flutter ( 6197): #77 _drawFrame (dart:ui/hooks.dart:178:3)
I/flutter ( 6197): (elided 3 frames from package dart:async)
I/flutter ( 6197): ════════════════════════════════════════════════════════════════════════════════════════════════════
I/flutter ( 6197): Another exception was thrown: 'package:flutter/src/widgets/framework.dart': Failed assertion: line 2276 pos 16: '!_dirtyElements[index]._active || _dirtyElements[index]._debugIsInScope(context)': is not true.
I/flutter ( 6197): Another exception was thrown: Navigator operation requested with a context that does not include a Navigator.
I/flutter ( 6197): Another exception was thrown: Navigator operation requested with a context that does not include a Navigator.
I/flutter ( 6197): Another exception was thrown: Navigator operation requested with a context that does not include a Navigator.
I/flutter ( 6197): Another exception was thrown: Navigator operation requested with a context that does not include a Navigator.
I/flutter ( 6197): Another exception was thrown: 'package:flutter/src/widgets/framework.dart': Failed assertion: line 2276 pos 16: '!_dirtyElements[index]._active || _dirtyElements[index]._debugIsInScope(context)': is not true.
I/flutter ( 6197): Another exception was thrown: 'package:flutter/src/widgets/framework.dart': Failed assertion: line 2276 pos 16: '!_dirtyElements[index]._active || _dirtyElements[index]._debugIsInScope(context)': is not true.
I/flutter ( 6197): Another exception was thrown: Duplicate GlobalKeys detected in widget tree.
title says it all
We had talked about this before, but I did some user testing with Flutter team members and they were confused why it stopped advancing. @filiph Do you have thoughts/suggestions?
This hasn't happened to me on a regular walkthrough, but a high-speed (perf-test) walkthrough will somehow never load any Flare files.
https://photos.app.goo.gl/9nAVw9Qi4jga5dKf6
Is there a race condition at the start of the app that never completes when you click "Start" too early?
This is very low priority. Just recording this here in chance it helps uncover some larger issue.
cc @luigi-rosso
Repro:
flutter drive --target=test_driver/performance.dart --profile
(as documented here in the README, you can omit --profile
in this case)[warning] FlutterDriver: tap message is taking a long time to complete...
The easiest way to fix this is to remove the only Flare widget on that screen:
StartScreenHero
) or replace it with any other widgetNow Flutter Driver should successfully tap the button. (It will fail just after that, probably because of the same issue.)
I assume this is somehow related to either hitTest
or sizing
. But I didn't have luck fixing it with things like bool hitTest(...) => false
or changing the size.
As mentioned before, we have a lot of whitespace on the TV screens. While the current text is certainly legible, we can benefit from making it more viewable across the room by increasing the font size (a fair bit I think).
If you tap on the Sourcerer or Jack to see the detailed view on the teams page, their heads are a bit big and get cut off on the screen. We probably want to make them a little smaller (the Refactorer doesn't have this issue).
the User Experience Researcher, Program Manager, Test Engineer, and Avante Garde Designer are also a little large, but the first two mentioned are the most problematic.
I'm pretty sure the jank is there even in production, even on high end phones.
If it's not just me holding it wrong, I think this is a blocker, and we should do everything in our power to fix it.
AFAIK, this is mostly about the Flare widgets being shown for the first time. An initial idea, if that's the case, is to scatter the showing of the flare files. A more drastic measure is to use a bitmap instead, and only use Flare when we must.
But first, @efortuna — can you please try and run the app in --production
on some real world device? I've tried the two (Android and iOS) devices available to me and I'm pretty sure I see jank on both.
Env: iPad Pro 10.5, the game is from App Store
Steps to reproduce:
Current result: dialog is closed without developer selected
Expected result: the developer is selected
It's easy to reproduce in my env. Very annoying when I'm tried to play.
right now you can play through and just upgrade the two founders because they cover all the bases. I want us to force the player to hire some more folks to their team. Perhaps we should make these first two that you hire non-upgradeable? @filiph thoughts?
There is this gradient widget:
https://github.com/2d-inc/dev_rpg/blob/master/lib/src/game_screen/character_pool_page.dart#L41
that gives a nice fade-effect at the bottom of the character list, but it doesn't respond to touch events, and so if you attempt to scroll up-down, it ends up trying to switch tabs. We need it to hand the touch events it receives back to the GridView so that it can scroll properly, even if the user touches on that faded area.
Presumably this just hasn't been implemented yet, but I don't see a "restart" button and/or a timeout pop-up
These are lower priority, but it would be nice to have the characters fit in the buttons a bit bigger and overflow a tad. This is what they currently look like:
I assume this is challenging based on different resolutions, but perhaps there's a way we can give them absolute positioning relative to their parent. In CSS we'd use absolute positioning inside a relative container with custom top/left/right/bottom values to make it look relatively the same on different resolutions. I'm sure there's something similar if not better in Flutter!
Even more minor: can we move the notification bubble over a tad, so it's positioned at 2/3rds of the width of the tab?
Why is there no storage function, I have no data to re-enter it?
Good day sir. I am a graphic designer and i am interested in designing a logo for your good project. I will be doing it as a gift for free. I just need your permission first before I begin my design. Hoping for your positive feedback. Thanks
I know you know, I just wanted an issue to track this.
Here's the current design on the actual device, as a video walkthrough.
https://photos.app.goo.gl/C5kmmCE2RgFJZ8D77
Hopefully the problems you see above are the same you'll see on a table device. If not, do borrow the chromebox to be sure.
Things to fix:
Note: There's still a little bit of jank on first "Start" (watch the ink splash freeze), but that's not the point of this issue. (If you want, we can track this elsewhere.)
Hi!
Thank you very much for an amazing repo and showcase of both Flutter and Flare.
I am sorry if this is not the correct channel for this type of question, but I was not sure where to reach out to you.
I wanted to ask if you would open source the source Flare file for the animations used in this project? I was inspired by this project to start work on a similar game, and it would be very educational and interesting to see how these amazing animations were made.
Thanks again.
right now tapping that seems to just close the modal
in the phone view we have the tabs. do we need some sort of visual indication of that in the widescreen layout?
Hello, I just cloned the repo and when compiling/running, I get this error:
Compiler message:
file:///Users/david/development/flutter/.pub-cache/git/Flare-Flutter-4aebb0ff5b98c7bcf2183c6bac8226cc7ddf5402/flare_flutter/lib/flare.dart:1023:18: Error: The argument type 'Int32List' can't be assigned to the parameter type 'Uint16List'.
- 'Int32List' is from 'dart:typed_data'.
- 'Uint16List' is from 'dart:typed_data'.
Try changing the type of the parameter, or casting the argument to 'Uint16List'.
indices: _indices, textureCoordinates: _uvBuffer);
^
Compiler failed on /Users/david/development/projects/developer_quest/lib/main.dart
Gradle task assembleDebug failed with exit code 1
This is my flutter doctor:
[✓] Flutter (Channel dev, v1.5.8, on Mac OS X 10.14.4 18E226, locale en-BR)
• Flutter version 1.5.8 at /Users/david/development/flutter
• Framework revision 0ba67226ee (2 weeks ago), 2019-04-24 17:18:28 -0700
• Engine revision c63d1cf9c9
• Dart version 2.3.0 (build 2.3.0-dev.0.1 1f1592edce)
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
• Android SDK at /Users/david/Library/Android/sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-28, build-tools 28.0.3
• ANDROID_HOME = /Users/david/Library/Android/sdk
• ANDROID_SDK_ROOT = /Users/david/Library/Android/sdk
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
• All Android licenses accepted.
[✓] iOS toolchain - develop for iOS devices (Xcode 10.2.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 10.2.1, Build version 10E1001
• ios-deploy 1.9.4
• CocoaPods version 1.7.0.beta.1
[✓] Android Studio (version 3.4)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 35.2.1
• Dart plugin version 183.6270
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
[✓] VS Code (version 1.33.1)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.0.1
[✓] Connected device (2 available)
• Redmi Go • 106ad4f17d85 • android-arm • Android 8.1.0 (API 27)
• OnePlus 6 • 9dc80123 • android-arm64 • Android 9 (API 28)
• No issues found!
Any hints on what is breaking the project?
David
flutter: ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
flutter: The following message was thrown during layout:
flutter: A RenderFlex overflowed by 21 pixels on the right.
flutter:
flutter: The overflowing RenderFlex has an orientation of Axis.horizontal.
flutter: The edge of the RenderFlex that is overflowing has been marked in the rendering with a yellow and
flutter: black striped pattern. This is usually caused by the contents being too big for the RenderFlex.
flutter: Consider applying a flex factor (e.g. using an Expanded widget) to force the children of the
flutter: RenderFlex to fit within the available space instead of being sized to their natural size.
flutter: This is considered an error condition because it indicates that there is content that cannot be
flutter: seen. If the content is legitimately bigger than the available space, consider clipping it with a
flutter: ClipRect widget before putting it in the flex, or using a scrollable container rather than a Flex,
flutter: like a ListView.
flutter: The specific RenderFlex in question is:
flutter: RenderFlex#2f6d7 relayoutBoundary=up11 OVERFLOWING
flutter: creator: Row ← Padding ← Column ← DecoratedBox ← Container ← ClipRRect ← ConstrainedBox ← Align ←
flutter: LayoutBuilder ← RpgLayoutBuilder ← TeamPickerModal ← DefaultTextStyle ← ⋯
flutter: parentData: offset=Offset(15.0, 0.0) (can use size)
flutter: constraints: BoxConstraints(w=370.0, 0.0<=h<=Infinity)
flutter: size: Size(370.0, 32.0)
flutter: direction: horizontal
flutter: mainAxisAlignment: start
flutter: mainAxisSize: max
flutter: crossAxisAlignment: center
flutter: textDirection: ltr
flutter: verticalDirection: down
Hi. Would you please consider releasing AspectContainer
as a separate package?
Just watched the Google I/O Pragmatic State Management talk (really great by the way!) and came here to look through the code and learn more about using package:provider
for state management. The talk mentioned that you can provide anything with package:provider
. It's really interesting that instead of providing ChangeNotifier
this app is providing AspectContainer
.
My question is: do you think the community would benefit from having AspectContainer
as a separate package?
I imagine 'heavily interdependent changing all the time game-simulation-like' state is needed in other apps. The released package could link to developer_quest as an example of how to use the package.
AspectContainer
:See usage here:
https://github.com/2d-inc/developer_quest/blob/master/lib/src/shared_state/game/world.dart#L14
@filiph 's pull request:
fcd5382#diff-39e5cc7bb8c3938d1bb45de6cd3a76af
What is it all about?
/// An aspect of the game world that can be listened to.
///
/// This is like a [ChangeNotifier], but it uses the concept of dirtiness.
///
/// This is a very game-centric approach, geared toward state that is heavily
/// interdependent (like in a game simulation) and that is changed all the time
/// (again, like in a game simulation). You probably do not need this
/// for a regular app. Use regular [ChangeNotifier], which is cleaner.
Sources here:
https://github.com/2d-inc/developer_quest/tree/master/lib/src/shared_state/game/src
https://github.com/2d-inc/developer_quest/blob/master/lib/src/shared_state/game/src/aspect_container.dart
https://github.com/2d-inc/developer_quest/blob/master/lib/src/shared_state/game/src/child_aspect.dart
file:///C:/Users/17080854/AppData/Roaming/Pub/Cache/git/Flare-Flutter-4aebb0ff5b98c7bcf2183c6bac8226cc7ddf5402/flare_flutter/lib/flare.dart:1023:18: Error: The argument type 'Int32List' can't be assigned to the parameter type 'Uint16List'.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.