Tag: entwicklung

201419Nov

THREE.BasicThirdPersonGame: Ein WebGL-Game-Starterkit

Für die englische Version meiner Website habe ich ein kleines WebGL-Spiel entwickelt, bei dem es sich um einfaches Jump 'n' Run-Prinzip im dreidimensionalen Raum handelt. Dabei kommen die Bibliotheken THREE.js (3D-Engine) und Cannon.js (Physik-Engine) zum Einsatz. Während der Entwicklung des Spiels ist die Idee zu einem kleinen Framework gekommen, das jetzt unter dem Namen THREE.BasicThirdPersonGame als Open Source-Projekt bereitsteht.

THREE.BasicThirdPersonGame - Game Starter Kit in THREE.js + Cannon.js

Dabei handelt es sich also um eine Basis für mögliche 3D-WebGL-Browserspiele, bei denen der Spieler aus der Perspektive der dritten Person verfolgt wird. Während THREE.js die Darstellung übernimmt, sind durch Cannon.js physikalisch korrekte Berechnungen möglich, was sich unter Anderem durch die Verwendung von Starrkörpern (Rigid bodies) auszeichnet. Eine virtuelle Spielwelt kann dank Rigid bodies mit Eigenschaften wie Gravitation, Reibung und Federung versehen werden.

Weiterlesen...
201417Nov

CustomScrollbar: Eigene Scrollbars auf Websites nutzen

Das Thema ist zwar nicht gänzlich neu, aber aus gegebenem Anlass war es an der Zeit, eine eigene Entwicklung anzufertigen: Die Rede ist von individuellen Scrollbars auf Websites, die per CSS angepasst werden können. Bis heute gibt es keine native Möglichkeit, das Aussehen der Scrollbalken in Webbrowsern anzupassen. Zum einen sind die Scroll-Elemente in Browsern unterschiedlich implementiert (Chrome etwa kommt mit einer eigenen Lösung) und zum Anderen sind die Bedienelemente vom Betriebssystem abhängig. Natürlich gibt es bereits etliche JavaScript- oder jQuery-Lösungen für eigene Scrollbars, doch diese fallen sehr unterschiedlich aus. Ich habe daher ein kleines Skript entwickelt, das auf das eigentliche Verhalten der Browser-Scollbars zurückgreift und keine zusätzlichen Berechnungen benötigt.

CustomScrollbar - Eigene Scrollbars auf Websites nutzen

Dementsprechend bleibt das jeweilige Verhalten des Browser-Scrollings, was das Beschleunigen und Abbremsen des Scrollbalkens beinhaltet. Es wird also lediglich das native Scollbar-Element ausgeblendet und ein eigener div-Container wird darüber gelegt. Enstanden ist daraus schließlich CustomScrollbar, eine kompakte JavaScript-Lösung für die genannte Problematik.

Weiterlesen...
201410Nov

Firefox Developer Edition: Webbrowser für Webentwickler

Anlässlich des zehnjährigen Jubiläums von Firefox hat Mozilla heute die Firefox Developer Edition veröffentlicht, die speziell an Webentwickler gerichtet ist und verschiedene Tools zum Entwickeln moderner WebApps bietet. Der neue Browser soll vor allem das plattformübergreifende Arbeiten von einem Gerät aus erleichtern, was durch das Add-On "Valence" (zuvor: Firefox Tools Adapter) erreicht wird. Dabei handelt es sich um eine Erweiterung, welche die Anbindung an Android-, iOS- oder Firefox OS-Geräte (also Tablets und Smartphones) ermöglicht.

Firefox Developer Edition

Die Firefox Developer Edition besteht also in erster Linie aus dem aktuellen Firefox-Build, der WebIDE und dem Valence-Add-On: Damit können lokale WebApps aber auch Remote-Projekte mit den gängigen Firefox-Tools (Web-Konsole, Seiten-Inspektor, Javascript-Debugger, Netzwerkanalyse, Audio-Editor, etc.) untersucht werden. Die WebIDE enthält verschiedene Integrationen von Laufzeitumgebungen wie beispielsweise einem Simulator, einem Remote-Browser, einer Chrome Desktop-Anwendung, einer Firefox OS-App oder einer normalen Website. Für das Debuggen von Android-Apps wird natürlich ein entsprechender USB-Treiber für das angeschlossene Smartphone benötigt und die Android Debug Bridge (ADB) muss das Gerät per adb devices auflisten. Unter Mac OS X gestaltet sich der Prozess für iDevices etwas einfacher. Besteht schließlich eine USB-Verbindung, können die Tabs des Smartphone-Browsers mit dem Inspektor oder der Konsole bearbeitet werden. Schließlich ist noch ein Tool zur schnellen Kommunikation enthalten: Per Klick können Links erzeugt werden, die dann an andere Entwickler weitergeschickt werden können, wodurch eventuelle Probleme direkt im Browser-Chat diskutiert werden können.
Die Developer Edition von Firefox ersetzt damit den Aurora-Build und wird alle 6 Wochen neue Funktionen erhalten.

201403Nov

Mozilla: Neuer Browser von Entwicklern für Entwickler

Der Browserhersteller Mozilla hat schon seit geraumer Zeit eigene F12-Entwicklertools in seinen Browser integriert, die einen Inspektor, einen Debugger, eine Konsole sowie Laufzeit- und Netzwerkanalyse-Tools beinhalten. Bei diesen Werkzeugen soll es laut einem aktuellen Blog-Eintrag jedoch nicht bleiben: Am Montag, dem 10. November wird es soweit sein und Mozilla wird einen neuen Browser vorstellen, der speziell an Webentwickler gerichtet ist. Es geht dabei vor allem um den Entwicklungsprozess, der auch das Testen auf verschiedenen Plattformen und Geräten beinhaltet. Dieser Prozess ist in der Tat sehr zeitaufreibend, wenn eine Seite beispielsweise unter Android 4.0, 4.1, 4.2, 4.3, 4.4 sowie iOS 6, 7 und 8 getestet werden soll und dabei noch verschiedene Smartphones und Tablets mit unterschiedlichen Auflösungen und Pixeldichten ins Spiel kommen.

Firefox Developer Tool - Netzerkmonitor

Viele Informationen gibt der Mozilla-Beitrag nicht preis. Lediglich die Integration der WebIDE sowie dem Firefox Tools Adapter wird genannt. Man darf also gespannt sein, was Mozilla an diesem Montag auf den Markt bringen wird.

201429Okt

jQuery 3.0: Die nächsten Generationen des Frameworks

Unter dem Titel "jQuery 3.0: The Next Generations" wurde heute ein Blog-Eintrag von den jQuery-Entwicklern veröffentlicht, in dem eine Art Roadmap für die künftigen Versionen der Bibliothek genannt wird. Es geht dabei vor allem um die Unterstützung älterer Browser wie Internet Explorer 8, Opera 12 und Safari 5. Bisher gibt es dazu jQuery in den Varianten 1.x, wohingegen 2.x auf moderne Webbrowser ausgelegt. Die kommenden Versionen werden unter der Versionsnummer 3 geführt werden und Version 1.x wird zu "jQuery Compat 3.0", während jQuery 3.0 den Nachfolger der aktuellen Version 2.1.1 repräsentieren wird.

jQuery 3.0: The Next Generations

Nützlich ist auch die Information, dass HTML-basierte Android- und iOS-Anwendungen (also auf Basis von beispielsweise Adobe PhoneGap und Apache Cordova) mit Version 3.0.0 fahren können, da hier die Webbrowser bzw. die Browser-Engines der WebViews entsprechende Funktionalitäten aufweisen. Die kommenden 3.0-Packages wird es wie gehabt bei npm und Bower sowie auf den jQuery- und Google-CDNs geben. Entsprechend werden die Pakete dann "jquery-compat-3.0.0.js" oder "jquery-3.0.0.js" benannt sein.

201426Okt

Flux: Unidirektionaler Datenfluss mit AngularJS

Facebook macht mit seiner Flux-Architektur schon seit einiger Zeit Gebrauch von dem Prinzip des unidirektionalen Datenflusses. Grundsätzlich muss das Flux-Konzept nicht unbedingt mit Facebooks React-Framework umgesetzt werden, denn es handelt sich nur um eine Alternative zum klassischen MVC-Ansatz, die auf moderne Web-Applikationen ausgelegt ist. Bei Flux findet sich die eigentliche Business-Logik in den Stores, die die Daten aus den Views durch Dispatcher erhalten. Dieses Konstrukt lässt sich auch einfach mit AngularJS umsetzen – ein Beispiel dafür liefert dieser Beitrag, der die verschiedenen Bereiche beleuchtet.

AngularJS - Superheroic JavaScript MVW Framework

In dem Artikel greift der Entwickler Victor Savkin zudem auf ES6-Elemente wie Arrow Functions oder class zurück, um die entsprechenden Funktionalitäten umzusetzen. Auch der EventEmitter, der als Message-Bus-System fungiert, wird in dem Beitrag selbst geschrieben. Hierfür könnte aber auch auf $scope.emit zurückgegriffen werden, da AngularJS bereits von Haus aus mit einem soliden PubSub-System ausgestattet ist.
Der Beitrag dürfte dennoch interessant für Webentwickler sein, die den Flux-Ansatz einmal ohne React und JSX ausprobieren wollen. Zudem gibt der Autor Hinweise auf eine mögliche Komplexität, die sich durch Flux in einer größeren Anwendung ergeben kann.

201421Okt

Koa: Node.js-Framework für WebApps auf ES6-Basis

Wer mit Node.js unterwegs ist und eigene Web-Anwendungen oder APIs bauen möchte, wird an Express.js oder zumindest Connect nicht vorbeikommen. Die Frameworks bieten alles, was für einfache und auch komplexe Server-Anwendungen notwendig ist. Das Team hinter Express.js hat nun ein weiteres Node.js-Framework namens Koa veröffentlicht. Das Interessante daran: Es kommt fast ohne Callbacks aus und basiert auf ECMAScript 6, was mit der --harmony-Option aktiviert werden kann.

Koa - next generation web framework for node.js

In einem ersten Tutorial geben die Koa-Entwickler Einblicke in die wichtigen Konzepte von ES6, auf denen Koa aufbaut. Dazu zählen Generator-Funktion, for-of-Schleifen und auch Thunks. Die Grundidee hinter diesen Techniken besteht darin, die Ausführung des Codes schrittweise und dennoch asynchron ablaufen zulassen. Zudem können über Thunks Callback-Rückgabewerte nach außen gereicht werden, wodurch wiederum gekapselte Funktionen möglich werden, die einem Teilbereich zugeordnet sind. Man darf also gespannt sein, denn schon jetzt versprechen Thunks einen Weg aus der Node.js-Callback Hell.

UPDATE
Mittlerweile wurde auch Teil 2 des Tutorials veröffentlicht.

201430Aug

JavaScript: Angular und React/Flux im Vergleich

Mittlerweile bieten sich für JavaScript etliche Frameworks und Lösungen an, mit denen sich eine Webanwendung umsetzen lässt. Gerade AngularJS und Facebooks React/Flux bieten durchdachte Funktionalitäten, die auf größere WebApps ausgelegt sind. Die Auswahl dürfte hier schwer fallen, da sich die Komponenten von React und Directives von AngularJS sehr ähnlich sind. Beide Konzepte zeichnen sich durch Zwei-Wege-Bindings und der einfachen Verknüpfung mit DOM-Elementen aus. React erlaubt zudem JSX-Templates, die das direkte Einbinden von HTML-Markup erlauben.

AngularJS - Superheroic JavaScript MVW Framework

Die Entscheidung für Components, Dispatcher und Stores oder Directives, Services und Controller kann durch die Betrachtung von direkten Code-Beispielen vereinfacht werden. Mittlerweile gibt es hierfür schon gute Ansätze, beispielsweise das bekannte TodoMVC-Projekt, das bei der Auswahl eines MV*-Frameworks behilflich sein soll.
Weiterhin gibt es von Pete Hunt bei Quora einen hilfreichen Artikel, bei dem AngularJS und React gegenübergestellt werden. Auch der Beitrag von Christian Alfoni zeigt mögliche Fallstricke der beiden Frameworks auf, wobei hier ein Backbone-Projekt die Basis darstellt.