Charles Jolley

Subscribe to Charles Jolley: eMailAlertsEmail Alerts
Get Charles Jolley via: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn

Top Stories by Charles Jolley

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. Prerequistites 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 ... (more)

The Frozen Canuck Is At It Again

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 ... (more)

HTML5 Drag and Drop in Firefox 3.5

HTML5 drag and drop in Firefox 3.5: With Firefox 3.5 all the major browsers (including IE!) support native drag and drop.  The SC.Drag interface in SproutCore was designed from the beginning to follow the same protocols.  That means once someone SC.Drag to use native drag events, all your SproutCore-drag code will automatically work between browser windows and applications without you making any changes to your code. HTML5 Ready. Volunteers? :) ... (more)

Aspect-Oriented Programming and You

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 behaviors. 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)

Event Handling in SproutCore 1.0 - Part 2 - Dragging a View

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 tighter control. Remember that to listen for events, you just need to add a method to your view with t... (more)