The coding portion of SproutCore 1.0 is nearly complete, so it’s time to
start work on some of the non-code parts of the SproutCore project.
Today I just push a brand new version of the SproutCore website. The design
is very simple, but unifies the wiki, blog, and main site so that they
finally feel like they belong together.
We still have a lot more to do with the site before 1.0. (More on that
later) But, the really interesting thing about the site is how it was
First, the new website uses SproutCore’s build tools. Over the last few
years these tools have been honed to generate highly optimized, cache
friendly apps in multiple languages. It turns out, you can use the same
tools to create highly optimized, cache friendly web pages in multiple
languages too. The new site is really zippy in part because we let these
tools work their magic.
Second, the ... (more)
Google adds SVG compatibility to IE:
With this library, we finally have a generalized way to write vector graphics
across all browsers. Now we just need to make this code easier to generate.
Next step: extend SC.RenderContext in SproutCore with methods to emit
standard SVG code. This way you can easily write vector graphics in any
view without having to learn SVG.
In my last post I introduced event delegation in SproutCore and the basics of
how to handle events. In this post I’m going to build on this foundation
to show you how you can add event handlers to drag a view around the window.*
Introducing the Mouse Events
As I noted in the first post, SproutCore recognizes several different types
of mouse events. Most of these events are essentially the same events sent
by most browsers, though some differ significantly in order to give you
Remember that to listen for events, you just need to add a method to your
view with t... (more)
One of the coolest parts of the new SproutCore View layer is its ability to
use aspect-based programming to add behaviors to views.
Aspect-based programming is built on the premise that often objects that
don’t follow from the same class hierarchy may in fact need similar
This is especially true in GUI programming when designers come to you and say
something like “I came up with this new widget - it looks kind of like a
progress bar but it acts like a button when you click on it”.
In SproutCore, you capture these common behaviors in a “mixin”. A mixin
is just a colle... (more)
SOA & WOA Magazine
Bruz Marzolf is writing a series of blog posts implementing a simple time
tracking app in various client-side rich web app frameworks. He just finished
his example in SproutCore and including some source code.
Here’s what he had to say:
SproutCore provides a higher level abstraction that manages when objects are
changed and need to be updated, and when they’re busy and shouldn’t be
modified, for instance.
Bruz’ code is a good example of a basic starter app that’s a little more
complex than our todos demo. I’m looking forward to his additional entries
in this s... (more)