Archives for posts with tag: 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 »

I just wanted to post a quick announcement about a special SproutCore meetup I’ll be giving on February 24th at Liberty Noodle in downtown Toronto. If you want to learn about what SproutCore is, how it works, and why you may want to think about using it for your next awesome project, then please come on out. There will even be demos of the framework used on real projects!

For more information, please check the meetup annoucement here.

-FC

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 »

I just wanted to send a quick thanks to everyone who swung by my lil’ old blog to read up on all things related to SproutCore. According to my WordPress year-end stats, my blog was visited 43,000 times in 2010. The most viewed post by far was my recent Why Does SproutCore Have a Run Loop and When Does It Execute? post. The next three most viewed posts were:

  1. Creating a Simple Custom View in SproutCore: Part 1
  2. Creating a Simple Custom View in SproutCore: Part 2
  3. Creating a Simple Custom List Item View: Part 1

So it would appear many of you are looking for information on how to create custom views and trying to understand SproutCore’s underlying mechanics. I’m certainly glad to help those out, and I hope to provide more information for 2011.

If you do have comments or questions, please feel free to e-mail me at frzncanuck@gmail.com.

Happy New Year!

-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