Minimal Software Application Development

Software Entwicklung ist heute einfacher wie vor 10 Jahren. Dies liegt unter anderem an Tools die das erstellen von Anwendungen einfacher machen, aber auch an den Geräten auf denen die Anwendungen laufen.

Z.B. kann man mit den folgenden Frameworks in wenigen Minuten ganze Webanwendungen erstellen:

Oder mit Vaadin ein schnelle UI für eine Java Webanwendung erstellen. Durch Plugins und eine große Community gibt es zudem eine große Menge an Standard Funktionen dazu.

Aber was erleichtern diese Frameworks und Tools?

Wer eine Idee für ein Produkt bzw. Anwendung hat, kann mit dieser Hilfe einfach das MVP realisieren und dabei mit wenig kosten eine erste Prototyp Version erstellen und schauen ob die Annahmen dem Markt entsprechen. Z.B. kann man mit Ionic, AngularJS und einer Grails REST-API ganz schnell eine App mit einem Backend bauen.

HTML5 / Javascript für Desktop Anwendungen

Eine Anwendung die mit HTML5 und Javascript erstellt wird, kann auf vielen Plattformen verwendet werden. Als Mobile App oder auch als Desktop Anwendung und ist zudem nicht an ein Betriebssystem gebunden wie das z.B. bei nativen Android Apps der Fall ist.

Wer aber in Google nach “javascript html5 desktop application” sucht bekommt als Ergebnisse TideSDK, AppJS, BracketsShell, Sencha und Node-webkit. Während bei TideSDK und AppJS es anscheinend keine Entwicklung mehr gibt, ist Sencha Desktop eine kommerzielle Lösung. Ich habe mir daher mal Node-Webkit im Zusammenhang mit NodeJS näher angeschaut. Sucht man nach Beispielen und versucht diese unter Linux 64bit und “grunt” zum laufen zu bringen, landet man sehr schnell bei einem Fehler mit “libudev.so.0”. Um diesen Fehler zu lösen hat bei mir nur das Script von rockiger aus seiner Anwendung https://github.com/rockiger/akiee/blob/master/scripts/build_binaries.sh geholfen.

Nach den ersten Gehversuchen hat sich aber schnell gezeigt das mit Hilfe von Node-Webkit im zusammen spiel mit NodeJs die Entwicklung von Desktop Anwendungen schnell und einfach möglich ist. Es wird zudem Windows, Linux und Mac unterstützt (https://github.com/nwjs/nw.js/wiki/How-to-package-and-distribute-your-apps). Desweiteren kann mit den gleichen Dateien eine Android App erstellt werden oder eine Webseite.

Elm unter Linux installieren / How to install elm-lang under linux

Um unter Linux mit der Sprache Elm zu programmieren, muss man diese installieren. Leider findet man unter http://elm-lang.org/Install.elm nur etwas für Mac und Windows.

Mit den Debian GHC und cabal packages konnte ich elm nicht installieren. Daher am besten diese selbst compilern und installieren. Dafür verwendet man die Anleitung https://gist.github.com/yantonov/10083524 um GHC und cabal in der aktuellen Version zu installieren.  Wichtig, am Ende gib es den Punkt “# add path to cabal to PATH environment”. Dort muss vor die beiden zeilen noch ein export und dann kann das ganze wie bei ghc in der Datei ~/.profile eingetragen werden.

Danach kann man dann der Anleitung “Build from Source” auf http://elm-lang.org/Install.elm  folgen:

Es ist möglich das es danach dann zu Fehlern kommt. Sollte es Probleme bei einem Package geben, findet man das log unter ~/.cabal/logs/<packagename>.log

Bei mir gab es einen Fehler bei der Installation von haskeline-0.7.2.1. Die Lösung war die Pakete lib64tinfo5 und libtinfo-dev über den Paketmanager Synaptic zu installieren.

For english:

Use for install ghc and cabal not the debian or suse packages. Use the step for step howto from https://gist.github.com/yantonov/10083524. Please add the steps after “# add path to cabal to PATH environment” to your ~/.profile file and add the word “export” for each line.

After this you can use the howto from http://elm-lang.org/Install.elm for “Build from source”.

I you have a problem, check the logs under ~/.cabal/logs/.

For Problems with haskeline-0.7.2.1 you must install with apt-get the packagelib64tinfo5 and libtinfo-dev.

Informatik für Schüler – Online Tutorials

Robotor Programmierung: http://mp-public.iais.fraunhofer.de/

Spielend Programmieren lernen – Online Kurs auf OPEN HPI https://open.hpi.de/courses/pythonjunior2014

Spielend programmieren lernen mit SCRATCH – http://schuelerlabor.informatik.rwth-aachen.de/modul/spielend-programmieren-lernen-mit-scratch

AntMe – lerne spielend objektorientiert Programmieren – http://www.antme.net/

Einführung in die Informatik – online Tutorial –http://learn.code.org/s/1

JUnit – Daten aus Xml, CSV, Json .. als Liste im Test bereitstellen

Mit Hilfe von DBUnit können Datenbanken mit Daten z.B. aus CSV oder XML Dateien vor einem Test befüllt werden.

In einigen Testfällen werden aber auch Testdaten benötigt die sich noch nicht in der Datenbank befinden und nicht mit “SELECT” aus der Datenbank geholt werden sollten. Eine Möglichkeit ist, Objekte zu erstellen und die Attribute mit Daten zu befüllen.

Ich habe mir mit Hilfe von DBUnit noch eine weitere Möglichkeit geschaffen. Ich lese Daten aus XML, CSV … etc. mit Hilfe von DBUnit ein und schreibe sie dann Continue reading “JUnit – Daten aus Xml, CSV, Json .. als Liste im Test bereitstellen”

Werkzeuge für die Umsetzung von Projekten Teil 2

Build-Management Tool und Ant

Mit Maven und Ant gibt es zwei Werkzeuge, die das bauen und erzeugen von Programmen vereinfachen. Durch Maven werden Abhängigkeiten und Bibliotheken automatisch heruntergeladen und auch der Wechsel zwischen Versionen einer Bibliothek ist sehr einfach.Maven und Antdienen aber in erster Linie zum bauen und erzeugen von Anwendungen durch einzelne Targets / Lebenszyklen.

Managed Issues Continue reading “Werkzeuge für die Umsetzung von Projekten Teil 2”

Werkzeuge für die Umsetzung von Projekten Teil 1

Bei der Umsetzung von Software Projekten spielt das dafür verwendete System eine wichtige Rolle. Neben der Planung der Programmierung ist ein System mit hilfreichen Werkzeugen ein Vorteil und Unterstützer für Qualität und Übersicht. Im folgendem werde ich einige Werkzeuge zu verschiedenen Bereichen vorstellen. Alle erwähnten Werkzeuge sind OpenSource und ihre Nutzung daher kostenlos.

Versionierungssystem

Um Änderungen leicht und schnell zu verfolgen, sowie diese wiederherzustellen ist die Verwendung eines Programms zur Versionsverwaltung unabdingbar. Dafür möchte ich zwei Programme näher erwähnen, GIT und SVN (Subversion). Für ein freies OpenSource Projekt würde ich GIT aufgrund Flexibilität und der einfachen Verwendung von Arbeitskopien verwenden, für Projekte Continue reading “Werkzeuge für die Umsetzung von Projekten Teil 1”

Eclipse RCP

Eclipse RCP ermöglicht es, schnell und einfach Anwendungen zu erstellen. Bei der RCP Version von Eclipse sind auch einige Beispiele dabei, welche z.B. eine “Hello World” RCP Anwendung erstellen, auch mit Menü wenn man weitere Beispiel auswählt.

Ein gutes Eclipse RCP Tutorial im Internet ist von “Lars Vogel”. Dies beschreibt den Aufbau einer kompletten RCP Anwendung. Zu finden ist es unter http://www.vogella.de/articles/EclipseRCP/. Darüber hinaus hat er noch mehr Beiträge zu diesem Thema unter  Vogella Eclipse.  Auf der Eclipse Seite selbst, gibt es im Wiki weitere gute Hilfen und Howtos. Unter SaxonySoft gibt es drei Beiträge zu StatusLeiste, ComboBox und Listener von Sebastian Würkner.

Unter http://www.ralfebert.de/blog/eclipsercp/rcp_examples/ findet ihr eine Liste von Eclipse RCP Anwendungen mit Quellcode.