I have spent many years looking at software tools. It started back when I installed "Wine Companion" for my father on the first IBM AT (the one promoted by the fake Charlie Chaplin). The software came on 5 1/4" floppy disc and is a long defunct application that cataloged your wine collection. It was running on MS DOS at the time when graphical user interfaces were still waiting for Steve Jobs to hurl his hammer at Big Blue with the Macintosh.
There was something great about MS DOS application software, it was so restrictive in it's layout all a developer could do was put some form of entry system together in the most efficient way possible. Even graphics were used more for logo's and titles than anything else.
Early Prototyping Tools
Now time travel to the post-Mac, Windows 3.0 era of the early 90's (skipping the still restrictive Windows 2.x versions) and developers finally had a way to use an environment to enhance the application via modal dialogs, pull-down menus, and graphics. Back at this time I was working on Aimtech's IconAuthor, software that let non-programmers build computer-based training applications. You created a flowchart using iconic representations of functions as shown here:
Aimtech's IconAuthor from the 90's
IconAuthor was easy to use for most educators - simply find the function you want and drag an icon anywhere in the flowchart where needed. Want to color the screen blue? Find a Display icon, drop it where you want in your "program", and open it's modal dialog to select blue from a drop down. Simple. The end result was an application you could run via a runtime application (which parallels what we do now with browser windows), and train or teach people using a piece of CBT that you created without any code. There were competitors, notably Authorware, Quest, and Asymetrix Toolbook, and they all used the same flowchart model.
It was during this time that I suggested to one of our VP's that we should consider creating a "User Interface Designer" position - that person would oversee the look and feel of the product and suggest layouts and workflows. He agreed and I greedily took on the role. Around that time Aimtech introduced Jamba, a Java applet creator that was voted best of breed by the now defunct Internet World magazine. The principle construction method used in Jamba was the same fill in the blanks and run it type used by the other products.
Current Prototyping Tools
Now travel to 2016 where that User Interface Design position morphed into User Experience Design and there are a new group (more like a horde) of prototyping tools on the market for non-programmers. The user base has expanded to include everyone under the User Experience umbrella (UxD, UID, Visual Designers, etc). And other tools have been created to specifically target educators, including one I worked on from Promethean called ClassFlow.
Here is a partial list of these tools. Note that I am not including wireframing tools like Balsamiq or Pidico, because I consider those separate tools from hi-fidelity prototyping tools. And while Invision, and Marvel are more slide show than interaction tools, the do allow overlays and effects, so they are included.
Craft Prototype (beta)
UPDATED LIST: 2/25/17
Learning Curve & Ease of Use Chart
I put the following line graph together to show what in my opinion represents the learning curve of these apps.
Prototyping Apps - Learning Curve & Ease of Use
If I were going to make a blanket statement about the whole lot, I would say while they all have some excellent features, there is always something lacking in every tool. For example, one app does state based screen changes easily but doesn't have a good enough component library, and the other has hard to use state management but a massive well organized component library.
Some (Invision and Marvel) are leveled-up presentation tools like PowerPoint or KeyNote (which some would list here as prototyping tools given there are add-ons for the apps that make them able to build mockups). On the opposite end of the spectrum are tools like iRise and Axure that let you create a full-blown app, even with data connections.
I think the smartest development approach so far comes from an unlikely source - Adobe. Their new XD (for eXperience Design) app is bare bones as of this writing but can still be used like Invision or Marvel with a bit more control. It has great potential - if they can manage to let us create microinteractions without building another beast like Photoshop or Illustrator. Currently it is an artboard based page turner with links from various elements to other artboards. The are wisely getting a lot of customer feedback during the beta, and are only developing features with the most interest.
My favorite tool of the moment is UXPin but Proto.io is a close second. The reason is you can use their apps to not only author your app's hi-fi screens, but you can easily create object-based interactions while doing page to page navigation. So for example, I can have a bar slide out from the right of the current view, and have a button on that bar navigate to another view. I also like working with SAS apps because by their nature they are online and I can pick up where I left off from any machine. You can't do that with the power tools iRise, Axure, or Justinmind.
Several of these apps only allow mobile app creation unless you build a custom size. The ironic thing is the developers of these apps are not creating them on tablets and smart phones but on high resolution laptops and desktops, the place we all do real work. I work assuming there will be a mobile version of a SAS app, but I find mobile first thinking restricts my creative process - I want to know all the cool things we could do with an app in the best case scenario, not in the worst case, a tiny phone screen. Let me shoot the moon first, then we'll whittle down the desktop app to MVP features for a mobile app.
It certainly doesn't hurt to consider how an app will be used going mobile, but you may find the real value while you are designing the large form factor version.
Importing Existing Materials
Many of the apps listed have plugins for Sketch or Photoshop that export directly into their app, but I find these features too limited, because the export-import process creates bitmaps out of vector graphics which defeats the purpose of creating them as scalable components. You end up with a bunch of bitmaps that are unusable in a responsive design.
What I find myself doing of late is creating all my views and screens inside Sketch or Illustrator, then organizing them into logical artboard groupings to be exported as needed. If I really need to define a microinteraction for a particular feature, I can combine a background PNG with a UXPin built overlay that is truly "microinteractive".
In Summary and Beyond
During the next few months I'm going to review many software design tools including the ones listed above, with the first milestone of creating a list of the features I really like in these apps. The result will be what I hope is a collection of the MVP features I would use in creating my own prototyping tool. The next milestone will be to put these concepts and features into a design sprint to layout a new prototyping tool. And the third milestone would be to enlist some developer friends and colleagues interesting in creating the tool.