1 post tagged “road map”
Ahh, the smell of a new blog. So fresh, so clean. I figured it was about time I created a blog for the Jade project, so here it is. Hoorah! In this inaugural post I think I should bring all zero of you dear readers up to date on the progress of the Jade framework as well as my super secret plans. But first, an introduction to the idea behind Jade.
So uh.. what is it? Well the idea is simple. There are lots of neat web apps out there such as the Yahoo! mail beta and the new .Mac mail, or Google Maps and Docs & Spreadsheets, and all of them utilize some rather advanced, non-webpage-like UI features. In the case of both mail apps, there's your standard drag and drop of items in tables, split panes, buttons, etc. In Google Maps theres a draggable view of the earth, some sliders, etc., and in Docs & Spreadsheets theres text formatting as well as editable text fields in a grid.
All of these are really rather beyond the scope of a traditional website – they push well into the realm of an offline app, the kind you'd install and such. And everyone who coded these sites, Yahoo!, Apple, Writely (for the documents portion of Google Docs & Spreadsheets), and Google, had to recreate a number of standard UI features that any good non-webbased API has. The idea behind Jade is to provide a framework that already has all of these UI features built in by default. I've opted to build it based on the OpenStep API, deviating where sensible.
Jade, by itself, is the framework. Alongside this framework I'll also be creating two applications. The first will be an application that lets you create other applications. A sort of IDE for using the Jade framework. It'll be based of the Xcode/InterfaceBuilder applications, but fused together into a single app to take care of the differences in programming environment. The second app will be a website design app that lets you build an entire website graphically. Not just the visual design, but also dynamic, database-driven content, will be able to be created with simple drag and drop techniques.
Or so that's the plan! But how far along is it? Well it's quite far, actually. I've been building it up piecemeal, starting with the Foundation Kit, containing all the essential non-GUI related classes. That's pretty much finished, so now I'm working on the Application Kit, containing all of the stuff you deal with in a proper GUI app, which mostly amounts to the stuff you see on the screen. For a lot of things I've opted to go completely ground-up, despite there being browser-native versions. For instance, scrollable content will exist in scrollable views drawn entirely by the AppKit, and not a single browser-native scroller will be seen. Same for pop up / drop down menus.
The reason for doing everything ground up is two fold. First, I want visual consistency. The visuals of the framework will be important to the Jade brand, and l want to maintain the look and feel throughout, instead of having off-brand UI elements. Second, certain features of the UI require behavior that isn't possible given native UI elements. For example, custom scrolling a view to a specific place is difficult, maybe even impossible, to do in a scrollable div. There are also some other reasons, like being able to control the behavior of the UI elements to greater extent.
As of right now, the majority of UI widgets remain unfinished. Effectively done are split views, progress indicators, steppers, scrollers, and sliders. Still to go are panels (Jade equivalents of windows), clip views, scroll views, tab views, ruler, table headers, tables and outlines, menus, boxes (titled containers), browsers (the horizontally "nested" tree viewers), image views, date pickers, segmented controls, buttons (including pop up buttons), and text fields (including search fields and combo boxes). Of those, panels, rulers, boxes, and image views are partially tho not mostly done. Some of them will be easy, once others are done. For instance, doing the scroll view class will be a snap, since its just a clip view and scrollers and rulers tied together. Boxes are just well.. boxes with text for the title. Tab views are just boxes with segmented controls.
That's enough of the wall of text status report. What about the good stuff? Well once this is all finished, I'm going to release the Jade framework, and the associated apps, as free software under the GPL, along with full instruction books and enhanced screencasts. I'm also going to run a site that lets people create their own websites using the site builder app, and also will host web apps designed with a preinstalled copy of the app builder. To generate word of mouth before the official launch I'm going to make stripped down versions of the screen casts to leak onto the web before the official release, to get people wondering what this thing is and how does it work.
My highly tentative and undoubtedly impossible launch date is this upcoming Christmas, sort of a gift to the world, but thats probably not possible. We'll see. It will be fun!