Motivation

We have always needed ways to record and communicate our information. Major leaps have come with writing, mechanical printing, networked computing. Given that, it is probably worth spending a bit of time thinking about how we use networked computers, and what a perfect system would look like compared with what we presently use.

On the 'network' in the early days, people communicated mostly with plain text, and this worked surprisingly well. Eventually due to the awesomeness of links, images and textured backgrounds people moved to HTML. This was (and still is) pretty great, but there was some content that HTML could only link to - multimedia, applications, sound, video. While HTML was trying to shoehorn this stuff in, Flash was enjoying great success. It was quite good with multimedia, albeit quite bad for applications. It wasn't a very portable or open format either, but people only needed it once in a while and it worked pretty much everywhere. In reality, people were still astounded that they weren't getting massive long distance bills for all this, so life seemed pretty good.

Fast forward a ten years, and a few things happened. First, 'works everywhere' came to mean something different than 'works on a PC and reasonably well on a Mac'. There were suddenly a dizzying amount of chip capabilities, screen sizes, operating systems, computer languages, and form factors. What was worse, they were getting popular. Second, Flash had by now become quite... rotund. Even in its prime it had struggled with devices, so the writing was already on the wall by the time the third thing happened - the Flash player was banned from iOS devices. This meant there was no longer a 'good enough' way to get your ideas 'pretty well everywhere'. We all now had to get up to speed with lower level device specific programming. This in turn opened up everything.

We now often program directly on the operating system, allowing speed and integration right to the limits of the hardware. Even on the web, HTML is getting good enough that it is a viable option for things that used to require a plugin abstraction (on top of a browser abstraction). Skills with native programming allows us to make anything from brochure ware to full blown desktop applications if we wish. What has perhaps changed the most, is good enough is no longer good enough. People expect real applications, and they are getting them.

The trade offs here of course, are complexity and reach. In a typical project we now use around 5 languages, target 3+ platforms, but still don't reach nearly the number of end users we could with HTML/Flash. There is a ton of innovation happening as ideas from all these different environments cross pollinate. There are also many tools emerging to help corral the chaos. Great IDE's, all kinds of frameworks that abstract the targets, code re-targeting for pretty well every major language... even whole new abstract platforms like Unity that bypass a lot of the OS and target the GPU directly.

The common thread in all these tools is they try to capture some of your intent, in an abstract intermediate way, so it can be re-purposed for different environments.

This is where It3rate comes in. Its goal is to allow you to create a platform agnostic user interface, and then iterate on it as you develop your project. It wants to accommodate whatever design tools you use, your style of project management, your preferred coding environment, and your desired target platforms. Its function is to capture your mock ups, to enable designers to turn those into graphical assets, and provide a way for programmers to code against those designs. And of course it is tuned for the essential 'rinse and repeat' steps as you iterate through to your final product.

We really appreciate any and all feedback on the tool, and how it could better fit with your workflow. Hope to see you on the Beta!

Join the Early Beta