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
Last night I merged the final set of changes for the first release candidate
of SproutCore 1.0. I also published a new gem (build 1.0.1008) so you can
get the official release quite easily. Just open your terminal [on Mac or
Linux] and type:
sudo gem install sproutcore
If you just want a taste of what the release candidate can do, check out the
Especially try the SampleControls app, where you can see an example of over
300 views rendered on a single page (in the Controls tab).
What’s In the Box?
In case you haven’t heard, Sprout... (more)
“Throughout the years, the winning strategy has been to build something for
next year’s highest common denominator. That’s right. Build software
that doesn’t even work very well on what we have today, trusting that by
the time you need a big market to be there, you would have created the
perfect product for it. Go ahead. Use too much memory. Use too much
cpu. Use graphics that won’t render on the cheap cards. It doesn’t
matter. The early adopters already have the more powerful machines, and by
the time you have crossed the chasm, everyone else will too.”
- Fred’s Got it W... (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)
If SproutCore 1.0 had a theme it would be “performance”. We’ve spent a
lot of time - almost a year in fact - trying to make SproutCore applications
the fastest web apps on the planet. I think we’ve done a pretty good job
For example, we took Steve Souders excellent book on High Performance
Websites and built his 14 rules right into our platform. We also discovered a
few other rules along the way and built those in as well.
That means simply by adopting SproutCore for your web apps [and following our
deployment recommendations], you will get best performance practices out... (more)