dreamworks
Saturday, September 17th, 2005The timing is not so good, but I’m suddenly all excited about making a UI front-end for my website rendering engine thingy. The thing is, Apple’s Core Data framework will just about write it for me.
Okay, not really, but once I figure out what gets bound to what, with this NSArrayController-yaddayadda managing those Fetched Entity Relationships-yaddayadda … 80% of the work will be done. Juniper files are XML, so it should be (relative) cake to hydrate a site’s element structure into a run-time data structure.
Meanwhile Web Kit will put a mini Safari in the app for me. The Dreamweaver team had to write its own (rapidly-obsolete) html renderer.
Of course they had to do in-line editing of content and all sorts of gnarly layout tools. I do not intend to do any of that. You will have to know html and (optionally) php to write sites with my app, but you do get real-time feedback of your changes in a browser with good web standards compliance and longevity.
Actually, hooking up the real-time bit will be challenging.
There will be three site deployment options:
- live - where the templates, themes, locales, etc, are resolved at fetch-time on the site. requires php on the server.
- baked - in which the app outputs a pre-rendered site of static html pages, to be uploaded to a server. there are obvious limitations on content in this case, but you don’t have to know any php to use the app’s templating features.
- baked with php - where every engine-related variable is resolved on the development server and baked, but php remains unevaluated until fetch-time on the deployment server.
The idea is that the tool can be used to develop and maintain traditional, static websites as well as more sophisticated, dynamic sites. In both cases you get templating and all the other features, but in the baked versions the live site cannot, say, switch themes on the fly.
The “baked with php” option may be very hard to implement, actually. Ha ha.
I am also thinking of how to make ajax behavior easily do-able within the Juniper frameworks.
Sigh. All pipe dreams, probably. It’s not like I have time to take on the project at this point, and I am probably overly optimistic about the complexities involved. But it sure would be fun and would make my resume more appealing. =)

