Sproutcore – zukunftsträchtiges Javascript Framework

Sproutcore ist ein Javascript HTML 5 Framework, welches eine Programmierung nach dem MVC Modell (Model View Controller) erlaubt und komplexe WebApplikationen ganz ohne Flash und andere Plug-Ins ermöglicht. Prominentestes Beispiel der Unternehmen, die das Sproutcore Framework einsetzen ist Apple. In der Web Applikation Mobile.me wird zur Gänze auf das innovative Framework zurückgegriffen. Apple selbst ist dabei ein stiller Unterstützer des Frameworks (entnehmbar aus dem Sourcecode) und unterstützt es mit einigen Codezeilen.

Mitte 2009 wurden erste Builds der neuen Version veröffentlicht, die sich vom bisherigen Ruby-HTML-Basis (Ruby On Rails) verabschiedete. Zwar setzen die Core-Programme zum Deployen und Testen der Applikationen auch weiterhin auf Ruby, jedoch werden keine HTML Templates mehr zum gestalten der einzelnen Views auf Basis von Ruby on Rails verwendet. Seit der finalen Version von Sproutcore 1.0, die im Februar 2010 auf Basis des Builds 1.0.1046 schon rund einen Monat vorher veröffentlicht wurde, bauen alle Views auf reines JavaScript auf. Was sich im ersten Moment sehr komplex und umständlich anhört, entpuppt sich aber als hoch effiziente Methode Web Anwendungen recht simpel zu programmieren.

meinTestView: SC.View.design({
    // Quasi-Container für einen oder mehrere Sub-View ...
    childViews: 'meinSubView'.w(),
    classNames: 'meineCSS', // eine Klasse für den Container
    meinSubView: SC.View.design({ // Sub-View
      layout: { top: 10, left: 10, height: 50, width: 50 },
      // Breite 50, Höhe 50, von oben und von links 10 Pixel entfernt
      // ... Inhalte ...
    })
    // Weitere Views wie Buttons, etc ...
  })

Tatsächlich lässt sich eine Testanwendung inklusive Installation innerhalb von 10 Minuten erstellen und auf einem Webserver deployen. Kurze Anleitung findet sich hier: Sproutcore get started. Der Schritt des „Deployments“ ist bei Sproutcore im Übrigen nichts anderes als die Bereitstellung des gesamten Codes (Javascript, HTML, CSS und Bilder) in einem Ordner, der dann per Drag&Drop auf einen statischen Webserver geladen werden kann. Dynamische Aufrufe werden allesamt über AJAX erledigt. Der Vorteil der Lösung ist ganz klar: die Hauptarbeit wird auf den Client abgeschoben und selbst komplexe Webanwendungen lassen sich durch das ausliefern vorwiegend statischer Inhalte wesentlich beschleunigen (beispielsweise ein CDN vorausgesetzt).

Eine Liste von Projekten, die Sproutcore bereits einsetzen findet sich hier: offizielle Liste. Speziell hervorheben möchte ich dabei das Projekt BONG.TV, an welchem ich beteiligt war und mit welchem es uns gelungen ist die Funktionsweise eines gesamten Videorekorders im Netz nachzubilden (inklusive Blog, TV Programm und Online Shop).
Zusätzlich dazu darf ich die folgenden Seiten zum Nachschlagen empfehlen: Blog mit nützlichen Infos, Sproutcore in GoogleGroups. Etliche Demos uns Interace-Beispiele finden sich unter http://demo.sproutcore.com

Nachtrag: 18. April 2010. Inzwischen wird emsig an Version 1.1 gearbeitet, die nicht nur wesentliche Elemente wie einen Table View als Basis-Element zur Verfügung stellt, sondern auch ein Animations-Framework als auch eine Touch-Üunterstützung für iPhone und iPad zur Verfügung stellt (Demos finden sich hier). Selbst ein Interface Builder (Greenhouse) ist inzwischen erhältlich und soll die Entwicklung von Anwendungen für das Internet wesentlich beschleunigen.

Über den Autor

Andreas Unterhuber studierte Wirtschatfsinformatik und ist seit 2007 Geschäftsführer der KIM Keep In Mind GmbH mit Sitz in Bozen. Mit seinem Fachwissen in Video Encoding, diverser Programmiersprachen sowie in Datenbanken und Serversystemen unterstützt er zahlreiche nationale und internationale IT Projekte.