Laravel 4 – Static or not static. That is the question.

Als ich das erste Mal das noch zu unbekannte Framework Laravel vor der Nase hatte, sind mir sehr schnell die statischen Zugriffe der API aufgefallen. Wo sich viele qualitätsbewusste Entwickler heutzutage die „und wie soll man das testen“ Frage stellen, stand ich hier vor verschlossenen Türen.

THE PHP FRAMEWORK FOR WEB ARTISANS.

Hier scheint sich Laravel 4 eines uns sehr gut bekannten Design Patterns zu bedienen. Die Rede ist von einer Facade. Jede Klasse welche scheinbar statische Methoden bereitstellt, erbt von einer „Facade“-Klasse. Wenn wir also „Config::get(‚database‘)“ aufrufen, wird eine fast leere Facade benutzt. Diese kennt lediglich ihren Accessor (facadeAccessor = ‚config‘) und erweitert entsprechend die Laravel Facade. Die eigentliche Implementierung der genutzten Methode ist dort also gar nicht enthalten.

Das führt uns zu zwei Fragen:

  • Welche Klasse wird bei dem Genannten nun wirklich aufgerufen?
  • Und woher kennt die Facade augenscheinlich diese Klasse?

Nun dann schauen wir mal genauer hin.

Weiterlesen

JavaScript Tests mit Karma schnell an den Start bringen

Schon seit geraumer Zeit gibt es für fehlende Unit Tests in JavaScript keine Entschuldigung mehr. Erstens weil JavaScript mit Sicherheit keine “toy language”, sondern eine ernstzunehmende Programmiersprache ist. JavaScript steuert heutzutage client- und serverseitige  Applikationen, die ohne Wenn und Aber getestet werden müssen. Zweitens existieren auch für JavaScript bereits seit längerem Frameworks, die das Schreiben von Unit Tests vereinfachen und standardisieren. Zu nennen sind hier JSUnitYUI Test, QUnit, Mocha und Jasmine. Drittens und schließlich sind auch automatisierte Testläufe mit Runnern wie JSTestDriver, YUI YetiBusterJS und eben Karma ohne Probleme durchführbar. Der zuletzt genannte Test Runner Karma ist der neueste von allen. Seine Vorzüge werde ich im Folgenden darstellen.

Weiterlesen

TestFlight & Titanium Mobile: Einfaches Testen von iOS-Apps

In den letzten Monaten habe ich eine native iOS-App mit dem Titanium Mobile SDK erstellt. Ab einem gewissen Zeitpunkt wollte ich die App einigen Freunden zum Testen und für das Sammeln von Feedback zur Verfügung stellen. Leider macht Apple einem hier das Leben nicht gerade einfach, es sei den man hat das iOS Developer Enterprise Program. Auf der Suche nach Alternativen bin ich auf TestFlight gestoßen, welches ich bis heute sehr zufrieden einsetze.

Was ist TestFlight?

Der kostenlose Service ermöglicht es, iOS Builds gleichzeitig an mehrere Personen oder Teams zu verteilen, um Feedback zu sammeln bevor die App im App Store landet. Sobald man bei TestFlight einen neuen Build hochlädt, erhalten registrierte Nutzer automatisch eine E-Mail mit einem Link zum bequemen Installieren bzw. Aktualisieren der App.

TestFlight bietet noch weitere Funktionen wie Tracking, In-App-Fragen, Remote-Logging, In-App-Updates und den Zugriff auf Crash-Logs an. Dieser Artikel wird sich jedoch zunächst auf den Einsatz von TestFlight in Verbindung mit Titanium Mobile konzentrieren. Weiterlesen