One of the new features in SproutCore v1.10.0 was a PhantomJS unit test
runner. It allowed us to automate SproutCore’s own framework unit tests,
giving us awesome continuous integration support right in GitHub via the
great Travis-CI service.
If you use CoreTest, SproutCore’s built-in (QUnit-like) unit test
framework, then you can also use this to run your own tests from the command
line – meaning you can automate it, and hook it up to your own CI
scaffolding. It’s impossible to overstate the impact that continuous,
automatic unit testing has on the quality and stability of your codebase.
You will need to have PhantomJS installed before using the test runner. Full
instructions for this can be found here.
You will also need to track down SproutCore’s installed location in order
to run its test runner script. If you’ve got a copy checked out into your
If you want to design the kind of UI Smashing Magazine likes, maybe you
should be using SproutCore. :-)
Smashing Magazing The Book: Chapter 1
SproutCore Meetup in DC @ jsconf:
I’ll be in Washington DC for jsconf and we’re going to have a SproutCore
git-together while I’m there. If you’re in the DC area add your name to
the list and nominate a place to meet.
We’ll have dinner, drink beer and talk about SproutCore. There might even
be prises in the mix. See you there!
The Frozen Canuck is at it again. This time with I think the first public
explanation of how to build a custom view with the new SC.View class. Notice
that SproutCore 1.0 views are built using a simple render() method where you
generate HTML. It’s a really easy API and it just so happens to be
extremely fast, especially in IE where DOM manipulation is very expensive.
Check it: Creating a Simple Custom View in SproutCore: Part1
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)