Every so often a few technology trends converge that yield results much
greater than their individual parts. I think we have reached one of those
moments with mobile devices (like the iPad) and HTML5.
In many ways, the iPad is the perfect web device. It’s a lean-back
experience optimized around consuming content. With HTML5 (which mobile
Safari does better than just about anything else), the kind of experience you
can create on these devices is just really spectacular. You only need to use
the NPR demo we wrote earlier this year for a few minutes to realize this is
obviously the future of software.
For this reason I decided about a month ago to leave Apple and form a new
company centered around helping companies bring great native-style app
experiences to mobile device. The center of this company, of course, is
SproutCore. Monday was my last day at Apple.
This ... (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)
I was recently asked to do a write-up about my SproutCore app,
Hubbub (@hubbubapp), as a general anecdotal guide to those interested in
writing large scale applications in SproutCore for the first time.
I’m afraid this first post won’t be very technical, but I will at least
attempt to make it an enjoyable read, and to tell you about some of my early
bumps in the road so that you can avoid them. My overview of Hubbub will also
span a few posts, so if you have particular questions, I can spend some time
on them in future.
What’s all the Hubbub?
This isn’t the place to talk up the a... (more)
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... (more)