Blog

Alle Beiträge mit dem Tag Eclipse

Scalafizierte Androiden – Teil 1: Werkzeuge

Scala ist eine moderne objektfunktionale Programmiersprache, deren Hype noch immer nicht abgeklungen ist. Für die ereignisorientierte Entwicklung von Android-Applikationen scheint Scala mit seiner funktionalen Ausrichtung und dem starken Typsystem besonders gut geeignet zu sein. Mittlerweile ist die Werkzeugentwicklung so weit fortgeschritten, dass man erste Gehversuche mit Scala auf der Android-Plattform wagen kann. Die in dieser Artikelserie vorgestellte Beispiel-App soll dabei sowohl durch die IDE Eclipse mit den Android Development Tools (ADT) als auch auf der Kommandozeile mit Maven gebaut werden können.

weiterlesen

Mobile Apps erstellen mit PhoneGap, Titanium & Co.

Die Zeiten, in denen man Anwendungen ausschließlich mit Oberflächen ausstattet, die über einen Monitor betrachtet und über Tastatur und Maus bedient werden, sind vorbei. Mittlerweile ist es keine Besonderheit mehr, als Endgerät auch Smartphones und Tablets berücksichtigen zu müssen.

Diese Geräte sind heutzutage vollgepackt mit vielfältigen technischen Gimmicks: GPS-Modul, Beschleunigungssensor, Kontaktverwaltung, Kamera uws. gehören bei iPhone, Android & Co. zum Standard. Eine für mobile Geräte optimierte Webseite hat oft nur eingeschränkten Zugriff auf diese Funktionen.

Für den vollen Zugriff benötigt man eine App, die direkt auf dem mobilen Gerät installiert wird. Als Entwickler muss man sich dann vor seinen Rechner setzen und die App für das iPhone oder für Android entwickeln. Die entsprechenden Entwicklungswerkzeuge sind für sich genommen sehr komfortabel. Nur ist man zunächst einmal an eine der SmartPhone-Welten gebunden.

Das ist natürlich sehr unbefriedigend, wenn man einen großen Anwenderkreis ansprechen will.

Doch wie kommt man zu einer brauchbaren App, die auf vielen mobilen Geräten läuft, ohne sich allzu tief in die speziellen Niederungen der Android- oder iOS-Entwicklung hinab begeben zu müssen?

weiterlesen

Das reine Vergnügen – RIA mit Vaadin und Guice

Vorweg: Vaadin ist cool. Das auf dem Google Web Toolkit basierende Framework erlaubt die komponenten-orientierte Entwicklung hochqualitativer Rich Internet Applications. Dabei wird weitestgehend vom HTML/Servlet Code abstrahiert – das Programmiermodell erinnert somit stark an die vom Desktop gewohnte Entwicklung mit Swing oder RCP. JSP-Taglibs, XML-Wüsten und Platzhalter-Replacements sucht man vergebens, und man vermisst sie auch nicht.

Eine typische Vaadin-Applikation (aus Book of Vaadin, Getting started):

public void init() {
   final Window mainWindow =
      new Window("Myproject Application");

   Label label = new Label("Hello Vaadin user");
   mainWindow.addComponent(label);

   mainWindow.addComponent(
      new Button("What is the time?",
         new Button.ClickListener() {
         public void buttonClick(ClickEvent event) {
            mainWindow.showNotification(
               "The time is " + new Date());
         }
      }));

 setMainWindow(mainWindow);
}

Sobald die Anwendung etwas größer wird, bekommt man jedoch zwangsläufig die klassischen Stand-Alone-Anwendungsprobleme: verschachtelte Komponenten, ausgelagerte Handler, implementierte Listener, gekapselte Service-Facaden … ein Haufen Instanzen will erzeugt und verwaltet werden. Nebenbei arbeitet man auf 3 Scopes (Application, Session, Request), bemüht sich um Separation of Concern und achtet auf maximale Testbarkeit.
Das wird „per Hand“ schnell unübersichtlich. Naheliegend ist, sich bei der Verwaltung der Instanzen helfen zu lassen. Wenn man das Pech hat, nicht auf JEE6 und CDI zurückgreifen zu können (konkret arbeiten wir nach wie vor auf JBoss 5.1), ist die Frage:

Wie?
Oder anders formuliert: Spring oder Guice?

weiterlesen

Apache Ivy: eine sinnvolle Ergänzung zu Apache Ant

Wenn es um Flexibilität im Build-Management geht, distanziert man sich gern von Maven 2. Zwar kann man es durch diverse Einstellungen „umbiegen“, aber das ist nur teilweise zielführend. Möchte man wahrhaft flexibel sein und auch bleiben, so fällt die Entscheidung meist auf Gradle oder Ant. Gradle hat den Vorteil, dass man praktisch Java-Code schreiben kann, Ant zeichnet aus, dass es, so wie Maven 2, rein XML-basiert ist und dennoch als Script-Sprache klassifiziert wird. Apache Ivy erweitert die Funktionalität von Ant um alle notwendigen Features, die zum Auflösen von Abhängigkeiten nötig sind und ermöglicht die Publizierung von Artefakten in ein beliebiges Repository.
weiterlesen