Tag: javascript

201514Mai

plainJS: Sammlung mit Vanilla-JavaScript-Bibliotheken

JavaScript-Code, der nicht auf externe Bibliotheken angewiesen ist, bezeichnet man auch als Vanilla-JavaScript. Die Entwicklung der Browser und Webstandards ist in den letzten Jahren soweit fortgeschritten, dass JavaScript-Frameworks wie jQuery oder Dojo immer mehr in den Hintergrund treten. Ich hatte hierzu bereits einen ausführlichen Artikel veröffentlicht. Aus diesem Grund stellt sich vielen Entwicklern die Frage, ob für das nächste Projekt überhaupt noch jQuery oder ein anderes Framework zur Vereinfachung eingesetzt werden soll: Mit ECMAScript 5 und der stärker werdenden Verbreitung moderner Browser stehen im Grunde alle Funktionen bereit, die beispielsweise mit jQuery vereinfacht werden.

plainJS - The Vanilla JavaScript Repository

Daher gibt es jetzt schon etliche Skripte, die nicht auf ein Framework setzen und sich stattdessen ES5-Features zunutze machen. Eine Sammlung solcher Skripte steht nun mit plainJS bereit, die in unterschiedliche Kategorien eingeteilt ist: UI, Eingabe, Medien, Navigation, Effekte und Sonstiges. Hier finden sich also kleine Bibliotheken für alle erdenklichen Bereiche einer modernen Website.

201514Mai

Tooltip.js: MouseOver-Skript mit HTML-Konfiguration

Vor 5 Jahren hatte ich ein Tutorial veröffentlicht, das die Entwicklung eines eigenen jQuery-Tooltip-Plugins beschreibt. Das daraus resultierende Plugin kann zwar immer noch eingesetzt werden, doch mittlerweile bieten sich andere Techniken an, um Seiten eine spezifische JavaScript-Funktionalität hinzuzufügen. Daher habe ich das Skript Tooltip.js entwickelt, das sich an AngularJS orientiert und auf eine HTML-Konfiguration setzt.

Tooltip.js - A basic mouseover tooltip script

Dementsprechend können DOM-Elemente per data-Attribut mit der Tooltip-Funktionalität versehen werden. Anschließend wird noch ein Tooltip-Text benötigt, der aus dem entsprechenden title-Attribut gelesen wird. Über einen JSON-Option-String lassen sich einzelne Tooltip-Elemente zudem anpassen.

Weiterlesen...
201506Mai

JavaScript: Einführung in die Konzepte von React.js

Mit React.js stellen die Entwickler von Facebook schon seit geraumer Zeit eine Alternative zu AngularJS oder anderen MVW-Frameworks zur Verfügung. Zuletzt wurde mit React Native sogar ein Framework vorgestellt, mit dem sich native Mobile-Apps auf der Basis des JavaScript-Frameworks entwickeln lassen.
Der Einstieg in das vielseitige Framework gestaltet sich aber nicht unbedingt einfach, da verschiedene Konzepte verwendet werden und komplexe Bereiche abgedeckt werden. Die Entwickler von RisingStack haben daher ein ausführliches Tutorial veröffentlicht, das die Welt von React besser verständlich machen soll.

React - A JavaScript library for building user interfaces

Behandelt werden in dem Artikel die grundlegenden Themen rund um die JavaScript-Bibliothek. React setzt auf ES6 (mittels Babel-Transpiler) und Komponenten, die wiederum JSX-Templates beinhalten. Bei JSX handelt es sich um eine JavaScript-Erweiterung, welche die direkte Einbindung von XML-Code in JavaScript und Zwei-Wege-Bindings ermöglicht. React verarbeitet schließlich die JSX-Views, verknüpft dynamische Daten (Backend) in einem virtuellem DOM, welches für die Präsentation sorgt und auf Änderungen wartet (unidirektionaler Datenfluss). Dieser Sachverhalt wird ausführlich in dem Artikel beschrieben und am Ende wird noch eine mögliche Anwendungsstruktur aufgezeigt.
Mittlerweile ist auch schon der zweite Teil von insgesamt drei Teilen veröffentlicht worden.

201530Apr

Visual Studio Code: Cross-Plattform-Editor für Entwickler

Anlässlich der Build 2015 hat Microsoft ein wirklich interessantes Projekt für Webentwickler vorgestellt: Visual Studio Code heißt eine neue, kostenlose und plattformübergreifende (Windows, Mac OS X, Linux) Entwicklungsumgebung, die an Webentwickler gerichtet ist. Der Editor basiert auf Electron (zuvor Atom Shell) und damit auf Node.js, HTML und CSS. Dennoch bietet er alles, was das Entwickler-Herz begehrt: Bracket-Matching, IntelliSense, Multi-Cursor-Support, Parameter-Hints, Snippets, Breakpoints, Git-Integration und vieles mehr. Die Anwendung gibt Entwicklern 3 Themes zur Auswahl und die Konfiguration ist direkt über die Bearbeitung von JSON-Dateien möglich.

Visual Studio Code - Cross-Plattform-Editor für Webentwickler

Obwohl Visual Studio Code bisher nur in der Version 0.1.0 vorliegt, hat er sich schon jetzt als ultimatives Tool für Node.js-Apps bewährt: Node.js-Anwendungen können einfach per Knopfdruck gestartet und analysiert werden (Breakpoints, Step-Through, etc.) und in der Sidebar werden in Echtzeit die aktuellen Variablen angezeigt. Damit dürfte Microsoft ein kleiner Durchbruch gelungen sein, denn das Tool ist trotz seiner Kompaktheit sehr umfangreich. Es werden sämtliche Web-Sprachen (HTML, JavaScript, CSS, Less, Sass, TypeScript, PHP, CoffeeScript, Go, Handlebars, Markdown, Python, Ruby, SQL, YAML, etc.) unterstützt und durch seine Anpassbarkeit könnte Visual Studio Code schon bald zum Standard im Bereich kostenloser Editoren für Webentwickler werden. Natürlich gibt es weiterhin GitHubs Atom und auch Facebooks Nuclide könnte interessant werden.
Und Visual Studio 2015 wird es ebenfalls in sich haben: Laut einem Blog-Beitrag will man verstärkt auf die Entwicklung mobiler Apps setzen. Hier werden bisher Apache Cordova und Xamarin genannt. Es bleibt also spannend.

201522Apr

JS.ORG: Subdomain für JavaScript-Entwickler per GitHub

Für JavaScript-Entwickler, die bereits über einen GitHub-Account verfügen, gibt es jetzt eine Möglichkeit, das eigene Github-User-Repository mit einer JS.ORG-Subdomain zu verknüpfen. Auf der Website finden sich die notwendigen Schritte: Im Grunde muss nur die gewünschte JS.ORG-Subdomain dem CNAME-Eintrag des User-Repositories hinzugefügt werden. Ob der gewünschte Domain-Präfix noch frei ist, kann hier eingesehen werden.

JS.ORG - Providing nice and free domains for GitHub Pages since 2015

Ist die CNAME-Datei erstellt und in das User-Repository übertragen worden, muss ein Pull-Request auf das JS.ORG-Repository gemacht werden. Der Entwickler verspricht, den gewünschten CNAME-Eintrag innerhalb von 24 Stunden der Liste hinzuzufügen. Die Domain ist dann aktiv und das User-Repository ist von diesem Zeitpunkt an nicht mehr über *.github.io, sondern *.js.org erreichbar.

201516Apr

Osmosis: Website-Quelltexte verarbeiten mit Node.js

Wer mit Node.js den Quelltext von Webseiten auslesen und verarbeiten möchte, kann dazu beispielsweise das Modul Scraper.js nutzen, das bereits mit ausreichend Funktionalitäten bestückt ist. Neu in diesem Bereich ist das Modul Osmosis, das auf Promises basiert und dadurch Piping ermöglicht. Zudem werden verschachtelte Callbacks überflüssig.

Mit Osmosis lassen sich GET- und POST-Abfragen auf eine URL schicken und anschließend mit verschiedenen Funktionen verarbeiten. Per .find() sind CSS- und XPath-Queries möglich und weiterführende Links können mit .follow() ausgelesen werden. Per .set() lassen sich Informationen in das finale data-Objekt schreiben, das die gewünschten Daten repräsentiert. Das Projekt sollte im Auge behalten werden, denn laut Entwickler wird das Modul um eine Funktionalität erweitert werden, mit der auch dynamisch erzeugter Inhalt von Websites verarbeitet werden kann.

201501Apr

React Native: Native Apps mit React/JavaScript erstellen

Und noch einmal Facebook: Bei den hauseigenen Open Source-Projekten tut sich momentan etwas. Noch steht die Veröffentlichung der eigenen IDE namens Nuclide aus und inzwischen wurde auch das Framework React Native zum Open Source-Projekt gemacht. Damit lassen sich native Apps für mobile Geräte auf Basis von React erzeugen. Derzeit steht nur die iOS-Version bereit, womit sich jedoch schon arbeiten lässt. Installiert wird das Framework per Node.js und auch die App-Entwicklung stützt sich ganz auf die V8-Engine: Zu Beginn läuft ein lokaler Server, auf den die App zugreift, so dass die App bzw. der View bei Code-Änderungen nur per Tastenkürzel neu geladen und nicht neu kompiliert werden muss.

React Native - A framework for building native apps using React

Das Beispiel funktioniert soweit einwandfrei, doch will man komplexere Anwendungen erstellen oder andere React-Widgets benutzen, erfordert es schon tiefer gehende Kenntnisse des Facebook-Frontend-Frameworks. Bei GitHub finden sich schon etliche Beispiele, welche die verschiedenen Komponenten oder gar Spiele demonstrieren.
Insgesamt ist der Ansatz interessant, allerdings lässt die Android-Unterstützung noch auf sich warten. Daher empfiehlt sich für die schnelle Entwicklung hybrider Cross-Plattform-Apps auf JavaScript-Basis vorerst das Ionic-Framework, das auf AngularJS und PhoneGap bzw. Cordova basiert und eigene JavaScript-/CSS-Komponenten bietet. Wer also ohnehin schon mit AngularJS vertraut ist, dürfte mit dem Ionic-Framework bestens bedient sein. Auch hier geht die App-Entwicklung dank Node.js und LiveReload sehr schnell von statten.

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.