Clay Development Update

Posted by david on 17 October 2012 at 11:22 am

I've integrated Twitter's Bootstrap quite a bit, but most of the changes are still being used as template overrides in the new Vision theme. I will probably pull out some of the old themes that aren't complete/compatible with the current Clay requirements and rebuild them to push back out. I plan to update the Simplestyle_4 theme (the current theme here), so this one shouldn't get pulled out of the repo. 

I've been working on a new Profiles app, which will allow users to build profiles in (my) stye of Facebook, with some strong customization features planned in the future. It is mostly prototyping at this point. It will probably stay kind of lean until I implement Objects, my next topic.

I've also been prototyping the Objects app. Objects is a mix of Hooks (which aren't fully implemented), ClayDo, and Services. The Objects app will likely make some cases of Services obsolete. ClayDo and Services were actually born from the idea to create the Objects app, but I needed to test the implementation in pieces to figure out the best way to do it. Services are basically a way to group types of functionality together, such as extending the Dashboard or adding a Block Type. ClayDO is an object interface for creating containers and items within the containers, such as a form with each input element an item in the form container. Those two represent 2 sides of a normal web site's operation, Services are output and ClayDO is input (although there is no hard restriction that enforces that as a requirement). 

The idea that spawned ClayDO and Services, Objects, provides an interface to combine different types of containers into an object. The object then, generally, has 3 channels: 1 for data input, 1 for data relationships, and last for data ouput and manipulation. All of the channels are tied together and are simply different faces of the same object. In some cases data input and relationships may use the same channel, such as external data sources (XML, RSS, JSON). The channels depend upon how the object's properties are defined and what type of object is being implemented. An object could just be a form that takes input and the application handles the data relationships and output. It could also just be a display container that is used to hook in data from other objects and display them. It all depends on how the object is defined.

So what happens to Services, ClayDO, and (the unfinished) Hooks? They will stay, but maybe tweaked a little. Hooks will likely be used to tie the Objects together. ClayDO actually stands for Clay Data Objects and will be the base objects for containers. And what makes this different from other Dynamic Data implementations? The most obvious advantage will be the way Hooks are integrated directly into the Objects, but the ability to override templates used by Objects will be a big difference as well. Finally, am I rewriting everything again? No, not all at once anyway. There will be tweaks here and there to prevent too much overlap in functionality, but I don't plan on rewriting the Dashboard or anything like that yet. The Dashboard will probably stay simple and be replaced later on with a more advanced Dashboard that uses Objects as a base.

As I mentioned recently, I will be moving in the next few months (hopefully) and that will halt development for at least a month or maybe two. I'm trying to get as much done until then as I can. 

I will be updating this site with the Vision theme, possibly next week, and will then focus on the Objects app and moving some themes back into compatibility. I've done a lot of work on Clay over the last month or so and I'm really happy with the progress it's made lately. I'll try to keep it moving forward while I can.


Log in to comment

No comments yet!