Archives for category: sproutcore

As more people start to adopt statecharts to help organize application logic and manage the app’s current states, a question begins to appear about what, if anything, are SproutCore’s controllers useful for? After all, application logic that used to be located in controllers is now being yanked out and placed into individual state objects. This would appear to make controllers redundant. But is that really the case? If so, then what does that mean for classes such as SC.ObjectController, SC.ArrayController and SC.TreeController? Should they simply be removed from SproutCore altogether? To really answer these questions and know where a statechart begins and controllers end, we first have to understand what controllers really are, and, more specifically, what controllers are with regard to SproutCore.

Read the rest of this entry »

I admit it: I have neglected to directly talk about something that people who have been using Ki end up running into, and it’s about “pivot state” errors. This is something that I have been asked about a few times, and while I do describe what the error means, I, for some darn reason, just keep forgetting to write it down for others to learn about. Well know more. This sad lack of information shall end now.

Read the rest of this entry »

When developing Ki for SproutCore, the main goals I aim for are the following:

  1. Follow the principals laid out in David Harel’s seminal paper Statecharts: A Visual Formalism for Complex Systems.
  2. Make it intuitive to take a statechart diagram and translate it into code, and vice versa.
  3. Help reflect code that is simple, modular, extensible and maintainable.

In addition to the above, Ki needed to integrate well with SproutCore itself, meaning that it contained the all necessary functionality allowing a statechart to respond to actions and events propagated from various parts of SproutCore, and, in order to function, required the minimal amount of effort to add a statechart to an application.

Read the rest of this entry »

A few days ago there was a post on the SproutCore Google Group by an individual asking if his code could be reviewed by people in the community. Given the request, I checked out the code from github and began to go through it. In a nutshell, I was reviewing a small SproutCore application that allows you to simply log in and log out of the application. The application makes use of Ki, a statechart framework, in order to keep track of what state the application is currently in. In addition, there are two custom views. One view represents a toolbar displaying whether you are logged in or logged out, and another view that represents a login form. The login form view also contains logic that will fake the log in procedure.

Read the rest of this entry »

This is just a quick announcement that I’ve started a new (and admittedly tiny) framework called Mata that is for SproutCore. Mata contains handy components that you can use to help you build your SproutCore applications. Anything that goes into Mata are things that I’ve built and used extensively in my own line of work and feel that it would benefit the greater SproutCore community. Best of all, everything in Mata is free to use!

For the official release, Mata comes with a visitable mixin that has proven very useful to me. I definitely recommend reading the comments to understand its full use.

Although tiny at the moment, I plan on adding to Mata, but only things that I consider really useful to the greater community. I don’t want to just push in code that really serves no purpose beyond small or obscure scenarios.

-FC

SC.RunLoop is the primary mechanism within SproutCore that will ensure all bindings propagate data changes. The reason for the run loop is due to how properties can be chained together through bindings.

Read the rest of this entry »

The first SproutCore interview I attempted with Eloqua’s Matt Grantham and Ryan Mudryk went well and it acquired a lot of viewership. Knowing that, I decided to test the waters again and try a second SproutCore interview this time with Michael Harris who created the SproutCore Sudoku game. Mike is consultant and local here in the Washington, DC area, so he and I met one day during lunch to discuss his game and SproutCore itself.

Read the rest of this entry »

As more people become aware of SproutCore, there have been some common questions raised about who is actually using the framework and what are companies and individuals doing with it in order to make a successful product. I figured one way of trying to address those questions, and even have some fun with it, is to go directly to the people who have used SproutCore and let them speak for themselves through an interview — a SproutCore interview. Therefore, as an initial experiment, I roped in two colleagues of mine, Matt Grantham (@MattGrantham) and Ryan Mudryk (@ry), and let them discuss SproutCore from a web designers perspective. So without further ado, let’s get this first SproutCore interview started. Hope you all enjoy!

Read the rest of this entry »

Recently I made a quick post about Michael Harris‘s Sudoku app that he built entirely with the SproutCore framework. It’s a really great example of what you can do with SproutCore, but if you’re looking for some more inspiration about what you can do with the framework or even wondering if it’s worth investing in, be sure to checkout Eloqua‘s new Eloqua10 app. The entire UI was built using the SproutCore framework, and it’s a great example of how you can successfully build a complex, desktop-like application for real-world use. Evin Grano (@etgryphon) made a post over on the official SproutCore blog about why SproutCore was chosen and what came out of the effort.

-FC

As of today, the Ki framework has become the official statechart framework for SproutCore. This has replaced the original statechart framework that Mike Ball, Evin Grano, and I originally worked on. But what does this mean for anyone who is already using Ki for their SproutCore project? Well, it means a few things.

First, I will still continue to maintain the original Ki framework. It won’t be going away. But, over time, the shift in focus will be on Ki that was brought in for the next version of SproutCore. So, for now, any updates will be done on both versions of Ki, that way everyone will get the benefit of the latest fixes and enhancements. Of course, if you want to use Ki that comes with latest commit of SproutCore, the root namespace will now be under SC, not Ki. And please note that Ki is not part of SproutCore v1.4.x. So if you are building your app exclusively under SproutCore v1.4.x, then you’ll still be working with the original Ki framework.

For those who are using Ki or want to use the framework, I will be shortly getting around to writing posts, but if you want to get some information now, then please check out this SproutCore group post here.

-FC