A few weeks ago, I wrote a post titled, So Mediocre They Can't Ignore Me. In that post, I talked about trying to make-up for my lack of design talent with my ability to focus and grind things out. And today, that's what I'm trying to do. I have a rough idea for a feature I'd like to add to InVision. As such, I'm seeking feedback from you all on my idea. The hope being that I can use that feedback to both improve the idea; and, to demonstrate that the idea might have some traction when I pitch it to our Product Team.
I'm calling the feature "Screen Flow", though I'm not married to that name. Screen Flow is essentially an alternative view into your Prototype that attempts to automatically arrange the screens in a hierarchical map based on the embedded hotspots. You can think of it as being akin to the old "Site Map" concept in the Web 1.0 days:
While this sounds like a simple idea, there are a number of complexities that I don't have great answers for. The most obvious being that the screens in a Prototype are highly cross-linked. Meaning, a Prototype is more akin to a spider's web than it is a clean, hierarchical flow of links. Of course, rendering the Prototype flow like a spider's web would make it completely unusable.
My current solution to this problem is to render the Screen Flow as a directed acyclic graph. Which means that I start at the first screen and then traverse the hotspot links, making sure to never revisit an existing screen:
Of course, I don't want to lose the utility of the cross-linking, so when you hover over a screen, I attempt to highlight the linked screens, even if those screens have been previously visited - notice the blue-borders and shadow in the following screen-shot:
And, of course, if you click on a screen, I open a side-bar that shows a higher-fidelity version of the screen with actual hotspot rendering:
Then, there's the matter of hotspots that don't represent deterministic screen-to-screen links. For example, InVision allows you to create hotspots that "go to the next screen" or "return to the previously-visited screen" or "show as overlay". While some of these hotspots can be made deterministic at compile time, the "previously-visited" screen concept is a dynamic, runtime concern that can't be mapped to a static value.
And, of course, it's unclear as to whether or not this feature would actually provide any value to the user. My gut says Yes - at least something. But, I'm also too emotionally involved at this point to be objective. That said, I appreciate that the Screen Flow provides the user with an alternative, topographical view of the Prototype. And, that is sheds on light on screens that may not be reachable based on the current hotspot configuration:
So, that's the idea that I have so far. I'd really appreciate any feedback both positive and constructive. This way, I can polish the concept and get it to a point where I feel it's ready to pitch to the Product Team at InVision.
Thank you so much for your time!