201528Mär

Nuclide: Facebook-IDE für React, Hack und Flow

Die Entwickler von Facebook bereiten derzeit die Veröffentlichung einer quelloffenen Entwicklungsumgebung (IDE) vor, die den Namen Nuclide trägt und auf GitHubs Atom-Editor basiert. Nuclide wird die volle Unterstützung (Auto-Vervollständigung, Syntaxhervorhebung, etc.) für die Eigenentwicklungen von Facebook enthalten: Dazu zählt zum einen das Projekt Hack, einem Just-In-Timer-Compiler für PHP, der unter Anderem statische Typisierung bietet. Weiterhin wird Flow unterstützt, mit dem statische Typisierung auch in JavaScript möglich wird. Und schließlich unterstützt Nuclide das React-Framework, dem Frontend-Kern von Facebook.

Nuclide - a unified IDE

Man darf gespannt sein, wie Nuclide bei den Entwicklern ankommen wird. Bisher sieht das Projekt vielversprechend aus, auch wenn derzeit nur ein Screenshot verfügbar ist. Es wird sich zeigen, ob es sich wirklich um eine voll ausgestattete IDE handelt, die mit WebStorm mithalten kann — dieser hat sich mittlerweile zum Platzhirsch gemausert und immerhin bietet dieser ebenfalls Support für React und JSX-Templates. Zudem werden Meteor- und PhoneGap/Cordova/Ionic-Anwendungen unterstützt und auch die Entwicklung mit Polymer, TypeScript, Dart, Node.js, ES6, Gulp, Grunt und CSS3 werden wesentlich erleichtert.
Die Open-Source-Projekte von Facebook sind übrigens hier einsehbar.

201516Mär

jQuery: Kurzanleitung für Deferred-Objekte und Promises

Um in JavaScript die sogenannte "Callback Hell" zu verhindern, können sich JavaScript-Entwickler seit jQuery 1.5 dem Deferred-Objekt und damit verbundenen Promises bedienen. Dabei handelt es sich um ein Konzept, mit dem sich asynchrone Programmabläufe besser steuern lassen. Dies kann beispielsweise bei Ajax-Abfragen, Animationen oder Benutzerinteraktionen der Fall sein.

jQuery - Kurzanleitung für Deferred-Objekte und Promises

Zusammen mit dem Deferred-Objekt können also Promises und entsprechende Funktionen wie $.then() und $.when() eingesetzt werden. Weiterhin können Callbacks mit .done() und .fail() ausgeführt werden, nachdem ein Promise aufgelöst (per resolve oder reject) wurde. Um die ganzen Begrifflichkeiten und den Zusammenhang von Deferred-Objekten und Promises besser zu verstehen, können Interessierte einen Blick in die Anleitung von Vasanth Krishnamoorthy werfen. Der Entwickler zeigt hier anhand eines einfachen Beispiels die Funktionsweise von Deferred-Objekten auf. Schließlich wird auch die synchrone Version des Beispiels aufgezeigt, wodurch das Konzept noch besser verständlich wird.

201511Mär

ANNE: Stack aus AngularJS, Node, Neo4J und Express

Für moderne Webanwendungen muss nicht immer ein LAMP-Stack (Linux, Apache, MySQL, PHP) her: Dank der Beliebtheit von Node.js und NoSQL-Datenbanken eröffnen sich Webentwicklern in diesem Bereich neue Möglichkeiten. Mit Node.js steht ein plattformunabhängiges Server-System bereit, das mit bestehenden NoSQL-Lösungen harmoniert. Zusammen mit dem Express-Framework, das sich mittlerweile als Quasi-Standard etabliert hat, werden neue Konstellationen möglich, um eine Webanwendung zu betreiben. MEAN (MongoDB, Express, AngularJS, Node.js) stellt einen dieser Technologie-Stacks dar.
Wer hier noch eine weitere Alternative sucht, könnte mit dem ANNE Stack (AngularJS, Node, Neo4J, Express) gut beraten sein: Hier kommt die Graph DB Neo4j zum Einsatz, die eine RESTful API bietet und über die Cypher-Syntax angesprochen werden kann.

ANNE Stack - AngularJS, Node, Neo4J and Express

In dem Blog-Eintrag von 42id wird der ANNE Stack anhand eines Problems beschrieben. Die dazugehörige Beispiel-Anwendung, ein System zur Verwaltung von Medikamenten, steht bei GitHub zum Download bereit. Der Stack dient in jedem Fall als Inspiration und gibt Einblick in eine mögliche Server-Anwendung auf Basis von Node.js.

201510Mär

Konva: Framework für HTML5-Canvas-Anwendungen

Die Arbeit mit HTML5 und dem canvas-Element gestaltet sich je nach Anforderung unterschiedlich komplex. Für Browsergames oder grafische Webanwendungen empfiehlt sich der Einsatz einer JavaScript-Bibliothek, die bereits mit grundlegenden Canvas-Funktionalitäten ausgestattet ist. KineticJS dürfte hier der bekannteste Vertreter sein.
Mit Konva steht eine weitere Bibliothek zur Verfügung, die als Fork von KineticJS gestartet wurde. Dabei handelt es sich ebenfalls um eine JavaScript-/HTML5-/Canvas-Bibliothek, die auf die Entwicklung von grafischen Desktop- und Mobile-Anwendungen ausgelegt ist.

Konva - 2D HTML5 canvas framework for desktop and mobile applications

Konva bietet eine objektorientierte API, Verschachtelung von Knoten, Ebenen, Caching, Animationen, Tweens, Drag 'n' Drop, Filter, Selektoren und sogar Kollisionserkennung. Gelungen sind bei dem Projekt auch die Dokumentation sowie die API-Dokumentation. Das Framework kann schließlich auch als Node.js-Modul oder per Bower installiert werden.