kiracorbett / rhizome-gui Goto Github PK
View Code? Open in Web Editor NEWA graphical representation of the Rhizome API https://github.com/ybakos/rhizome-dart
A graphical representation of the Rhizome API https://github.com/ybakos/rhizome-dart
Prereq for #24
Tap on the tile and navigate to ThingScreen.
Form should have a text field labeled information. Button to add to Rhizome.
Show, very crudely, the things that tag the central Thing; and the targets that the Thing tags.
Just to make it easy to go back to the HomeScreen
When clicking the "+" button, a new object is only stored in the Rhizome but the main RhizomeScreen does not create a new ThingCard.
Currently, all children (each ThingCard) is in a Stack which prevents us from seeing the remaining children. Either create a custom way to display all the children or wrap in the MoveableThing().
Consider flutter transitions e.g. Hero
After saving a new bit of information, the form's workflow should go back to the HomeScreen and we should see the new information in the grid of tiles.
Just use a standard GestureDetector or similar, to detect a pinch.
@KiraCorbett The latest implementation of RhizomeScreen doesn't make sense to me. Currently, it has logic for "zoomed out" or not, a visibilityTag, and makes a decision about displaying either ThingWorld or CenterThingScreen.
Focus on the following first, before doing anything else:
RhizomeScreen should only display a single ThingCard in the middle of the screen. eg:
child: ThingCard(...)
That simple.
It doesn't seem link anything within a ThingCard changes over time.... it will always just display a visual representation of its Thing.
Perhaps consider simplifying this to be a StatelessWidget instead of a stateful one.
(Pro tip: Always reach for stateless widgets first. Convert them to stateful once you reach a situation that begs for changing state.)
(Pro tip: When creating StatelessWidget classes in VS Code, start by typing stl
and hit <Enter>
. Should generate a whole snippet/template for the class definition.)
#4 Builds onto entering and saving information from user.
We now have a RhizomeManager that lets us obtain the Rhizome instance from anywhere, removing the need to "pass it down" the widget hierarchy.
Consider removing the "new page" feel to incorporate a smooth hero transition.
There is a widget named center_thing_screen that isn't a screen at all. And it is not necessary. Remove it.
We now have a simple way of "grabbing the Rhizome" from anywhere, via RhizomeManager.getInstance()
. So, there's no need to pass the Rhizome instance around all over the place. To begin replacing all passed-around-instances with the singleton, start with ThingCardscreen.
rhizome
property with the instance obtained via RhizomeManager.getInstance()
.Then, look for other opportunities to do the same elsewhere. (After ThingCardScreen, consider ThingCard, and then HomeScreen.)
See #13 and Lines 6 and 8 of 943de81#diff-a98f5b6dfd4c37c601951660102255e5627fa042e22379dfa2e200167bea74a8R6 .
Modify GridView to Stack to prepare for contextualizing of tags/targets.
This screen should stand on its own. Do not worry about how to get here. When we see it, it should just
The MoveableThing "wraps" a ThingCard, so provide it the ThingCard object it should wrap, rather than passing it a Thing and having it explicitly instantiate a ThingCard.
In Flutter, we should use stateless widgets whenever the state (the data that the screen relies on and displays) changes. In order for our state/data changes to be displayed on that one screen, we must wrap those changes in setState
.
HomeScreen has a call to setState
that doesn't make sense: it is being called in _displayCreateInformationScreen
, which is a function that pushes an entirely new screen onto the navigation stack. There is no state change happening in HomeScreen. Transitioning to one screen from another is not a change in state - it is just transitioning to a new screen, which has its own state. Also, the body of the closure passed to setState
doesn't do anything but generate a new List and ignores the result.
Remove the setState
call from _displayCreateInformationScreen
.
We're starting to see the rhizome parameter everywhere. Because
the Rhizome is essentially a singleton, we should be able to just define
a simple factory method to return the singular instance. That way there
is no longer a need to pass it down through a widget hierarchy, etc.
Stub a RhizomeManager that shall provide a static method for obtaining
the Rhizome anywhere it is needed.
It isn't used - remove it. :)
The button should take us to a new screen, say, CreateInformationScreen.
Just a standalone Image widget displayed full screen.
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.