Quilmes Enters Master

written by SproutCore

Late last night we merged the quilmes branch back into master. The merge includes all changes from quilmes, along with the fixes from master. This means that we now only have two major branches: master, new home of the quilmes code, heading towards 1.5 and 1-4-stable for the 1.4 code.

1-4-stable is a bug fix only branch. Any new features should go into master. If you do have a bug fix for 1-4-stable, please check to see if it also applies to master and vice-versa.

Also, a reminder for those of you who missed it. The git repo has now moved to the sproutcore acccount at github.com/sproutcore. If you have not done so, please update the remote on any cloned repos you have as follows:

git remote rm origin
git remote add origin git://github.com/sproutcore/sproutcore.git

If you have SproutCore as a submodule, open your .gitmodules file and update the references there as well.

Introducing Greenhouse

written by Evin Grano


Well, we have finally done it. At jsconf2010 on Sunday, Mike Ball and I introduced Greenhouse: a Graphical Interface Builder for building blazing fast native-style applications using SproutCore.

Development on Greenhouse started in earnest only a couple of months ago. Mike and I worked in it in only in our spare time, but we have it far enough along to share with the community as a developer preview in SproutCore’s current master branch.

The truth is, we waited a lot longer than most other projects to start on our interface builder. But we didn’t want to start until we could do it right. We wanted SproutCore to go officially 1.0. We needed the API to become stable because there is nothing worse than jumping the gun and delivering a half-baked designer with an API that changes underneath.

So What, Everyone Has a Interface Builder…

While this may be true, no one has really innovated in this space for 20 years. They all seem to look the same. Here is a small sample of them:

Interface Builder




TIBCO Interface


Ext-JS Builder


So these are good, but they all have the same problem.

If we are to build beautiful web applications, we can’t do it with a cluttered workspace. My wife does mosaics and she can’t really be creative unless she has a space to create in…I think it is the same for developers. We need a workspace for creativity, but these interfaces are cluttered with controls and only give you a small window to see your actual content!

So what can we innovate this space? How do we turn these cramped UIs in to a place where we can create some awesome web applications? Here are the steps that we took:
Continue reading

Introducing SproutCore Touch

written by SproutCore

This guest post was contributed by Mike Ball.  Mike presented SproutCore today at jsconf along with Evin Grano.

There are two officially supported platforms for developing apps on touch devices like the iPad: native and HTML5.   A lot of people don’t know this or don’t care because conventional wisdom states that you can’t build a really great HTML5 experience on touch devices.

Guess what?  Conventional wisdom got it wrong.  Ever since the early iPhones Safari has had great touch-specific features and the problem is, as is common in the web, few people know how to use them.

Today all of that changes.  At jsconf this morning Evin and I, representing the SproutCore project, got to show for the first time SproutCore Touch.

Hedwig on iPad

SproutCore Touch is the first edition of SproutCore that includes complete support for touch events and hardware acceleration on the iPad and iPhone. 

Continue reading

SproutCore 1.0 is Done!

written by SproutCore

I’m happy to announce that SproutCore 1.0.1046 is the official “1.0” release of SproutCore.  We’ve had the gem out for nearly two months now without any show stopper issues forcing an update, so I’m pretty confident with its stability.

Thanks again to the many people who contributed code to SproutCore 1.0.  You’ve built something you should be very proud of.  

This project was in the works for 18 months.  We rewrote 20,000 lines of code, added nearly 6,000 unit tests, and significantly improved the clarity and consistency of the API.  

Most importantly, SproutCore 1.0 is a performance beast.  It feels really good to be able to recommend SproutCore to people building complex app that will push the boundaries of the browser knowing that we have the goods to get them there.

If you’ve been holding off on SproutCore 1.0 until it was really really done – well it’s ready so come and get it!

Now What?

Ironically, most of the core SproutCore team has moved well along past the 1.0 candidate.  A lot of work is already going into the next release with some really fantastic results.  So must so that I will spend most of my talk at jsconf in April covering the new stuff instead of 1.0.

The good news is that 1.5 (or whatever it’s called) will be a much shorter release cycle – probably starting this summer.  And this time a lot of the development is happening in the community so it is a lot easier for everyone to get involved.  

I’ll save some of the big surprises for jsconf but suffice to say the next few versions of SproutCore will be major moves forward.  1.0 was about laying the ground work for some big things down the road.  These next few releases we start to reap those rewards.

See you at jsconf.

Yay!  SC.TableView is Coming to SproutCore!

written by SproutCore

Yay!  SC.TableView is coming to SproutCore!

The full implementation is not done yet (column resizing and reordering in particular are not fully functional) but the basics are working – it should be enough for most casual users today.  You can see it in the demo code we just posted to samples:

Go to the SproutCore Table View Demo »

(NOTE: This is alpha code.  Scrolling is still a bit choppy.)

Note that the team that initially developed SC.TableView changed direction and decided not to use table view after all.  There are other people using it who I believe will contribute additional features, but if you find something you want missing in this code, please feel free add it and contribute it back.

SproutCore Is Now on Gemcutter

written by SproutCore

Link: SproutCore Is Now on Gemcutter

Gemcutter is the new replacement for RubyForge.  It is faster and more reliable, which is great if you just want to install SproutCore and not worry so much about the Ruby.

The sproutcore gem will be published on both Gemcutter and standard RubyGems so you don’t have to change anything.

If you want to try using the Gemcutter service, just follow the instructions on the Gemcutter home page to get going.

SproutCore 1.0 Goes to RubyForge

written by SproutCore

The first release candidate for SproutCore 1.0 is only a few weeks away.  In preparation, we are now publishing the SproutCore 1.0 gems directly through RubyForge instead of using Github.

This means that if you want to install SproutCore 1.0, all you now need to do is open your terminal and type:

sudo gem install sproutcore

It’s that simple!

From now on I will periodically publish new gems directly to RubyForge so you can update and install sproutcore using this command.

Note that if you have installed SproutCore 1.0 using the “gem” command previously, you will need to manually uninstall the old beta versions for this new gem to take effect.  To uninstall the old sproutcore just type:

sudo gem uninstall sproutit-sproutcore
sudo gem install sproutcore

And you are all set.  Once you have SproutCore installed via RubyGems you can update sproutcore from now on by simply typing:

sudo gem update sproutcore

The official 1.0 release is coming soon!  If you haven’t already take a moment to checkout the new gem release and give us your feedback.