The next release candidate for 1.11.0 will be out very shortly, but I thought
it best to post a brief update on the past week’s work as this week saw a
concentrated effort on core optimization.
First we took another look at the use of arguments lists throughout the
framework and found several more occurrences of it being accessed in an
inefficient manner. Depending on the browser, accessing arguments in such a
way that causes it to be allocated can be up to 80% slower and so it’s
really good to have these all fixed.
The other piece of optimization work undertaken has been much more difficult.
We’ve been looking into high frequency event handling, such as during touch
dragging or mouse moving, with an eye towards managing memory better. Since
SproutCore already does as much as possible to avoid touching the DOM, the
largest issue that affects the “fluidity” of the us... (more)
SproutCore Task Manager on Google App Engine:
The open-source agile tracker “tasks” is now hosted on Google App Engine.
It’s fast and also looking a lot nicer. Go give it a look. (login:
A user-signup app should be available soon and then we’re going to start
planning some SC work on it. Eventually I’d love to replace lighthouse
with something SC native…
SproutCore 1.10.2 is now available. This is a patch level release and
includes the following fixes:
Fixed problems with keypress handling in IE8 and Opera. Fixed the swap
transition plugin, SC.ContainerView.REVEAL, to properly reset the content
view’s layout after transitioning out. Fixed a problem with
SC.View.prototype.cancelAnimation(SC.LayoutState.CURRENT) that failed to stop
at the proper top or left positions when using CSS transform animations when
the top or left values were negative. This also improves the
SC.ContainerView.PUSH transition, making it possible to push mul... (more)
It’s been noted often that there’s a serious lack of production-level
SproutCore apps with readable source code. Developers often learn best by
poking at something and seeing how it works, but until now there hasn’t
been anywhere to go.
With an eye towards improving that situation, I’m excited to announce
Juniper, a SproutCore app and annotated codebase. Check it out:
I wrote a fuller introduction here, and the source code itself is here.
If you’re new to SproutCore, or wondering if it’s right for your project,
give it a poke! If you have any question... (more)
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... (more)