Mittwoch, 1. Oktober 2014

…was da wohl drin ist…?

Ein neues Spielzeug?

Ein neues Spielzeug?

Auch die 5. Auflage macht einen Autor noch stolz.

Auch die 5. Auflage macht einen Autor noch stolz.

Ich freue mich sehr, Ihnen eine neue Ausgabe von Einstieg in Eclipse zeigen zu können.

Ich freue mich sehr, Ihnen eine neue Ausgabe von Einstieg in Eclipse zeigen zu können.

Ich bin sicher, auch alte Eclipse-Hasen finden hier frisches Futter ;-)

Ich bin sicher, auch alte Eclipse-Hasen finden hier frisches Futter ;-)

Samstag, 27. September 2014

TKWeek ab sofort kostenlos

Als ich 2009 mit der App-Entwicklung angefangen habe, wollte ich in erster Linie eigene Erfahrungen sammeln. Das ist gelungen. Auch die Monetarisierung von Apps konnte ich so erproben. Dass sich das ganze finanziell nur selten rechnet, habe ich 2011 in meinem Vortrag Für eine Handvoll Dollar dargestellt. Seitdem sind die Verpflichtungen, die ein Entwickler eingeht, nicht kleiner, sondern größer geworden. Wer neugierig ist, kann sich beispielsweise eine der vielen Hilfsseiten zum Thema Steuern ansehen. Das ist nur einer von vielen möglichen Fallstricken.

Ich jedenfalls habe genug gelernt. Smiley Spannend wird sein, wie sich ab jetzt die Download-Zahlen entwickeln. In der Zeit, in der TKWeek kostenpflichtig war, haben etwas mehr als 1000 Leute die App heruntergeladen.

Dienstag, 23. September 2014

Unboxing Microsoft Dock für Surface 3 Pro

Unboxing #1

Unboxing #2

Unboxing #3

Unboxing #4

Unboxing #5

Unboxing #6

Unboxing #7

Unboxing #8

Das Dock für das Surface 3 Pro macht einen sehr wertigen Eindruck. Um das Surface einzulegen, muss man das Dock ein Stück auseinander ziehen. Dann das Tablet auf das Dock legen und zusammen schieben. Fertig. Der Mechanismus arbeitet präzise und leichtgängig. Top. Praktisch finde ich, dass die linke Seite des Docks magnetisch ist.Man “dockt” den Stylus einfach an. Schön finde ich, dass ein zusätzliches Netzteil mitgeliefert wird. Geht man auf Reisen, muss man nicht erst das Netzteil vom Boden unterhalb des Schreibtisches aufsammeln, sondern nimmt einfach das mit, das beim Surface mitgeliefert wurde.

Sonntag, 14. September 2014

Energie sparen schwer gemacht

Mein Surface 3 Pro wollte nicht in den Energiesparmodus wechseln. Tatsächlich war nicht einmal die korrespondierende Option im Ein-/Ausschalten-Menü vorhanden. Des Rätsels Lösung: Connected Standby verträgt sich nicht mit Hyper-V, was beim Installieren von Visual Studio 2013 aktiviert wird. Ausführliche Infos finden sich auf The Connected Home.

.Net-te Konvertierungen

Das Umwandeln von Quelltexten, die in einer bestimmten Sprache vorliegen, in eine andere hat eine lange Tradition. Einen schönen Überblick liefert der Wikipedia-Artikel Source-to-source compiler. Gründe für die Konvertierung von Sprache A nach B gibt es viele. Sei es die Notwendigkeit, eine wichtige Bibliothek nutzbar zu machen, das Fehlen eines geeigneten Entwicklers, oder reine Neugier. Spaß macht es auf jeden Fall.

Da ich mich ein bisschen für C# interessiere, habe ich nach einem Umwandlungstool von dieser Sprache nach Java gesucht. Meine Wahl fiel auf den C# to Java Converter von Tangible Software Solutions. Den gibt es als kommerzielle Variante sowie in einer (eingeschränkten) Free Edition. Für das Experimentieren reicht die kostenlose Ausgabe vollkommen aus. Der Anbieter ist beileibe nicht alleine – eine entsprechende Recherche listet zahlreiche Produkte und Frameworks. Meine Auswahl ist deshalb auch keine Wertung, sondern, wenn Sie so möchten, reiner Zufall.

Lassen Sie uns nun einen Blick auf das Tool werfen:

Screenshot: C# To Java Converter

Screenshot: Einstellungen

Das Ergebnis sieht ja recht schick aus, und kann bzgl. Formatierung an die eigenen Bedürfnisse angepasst werden. Auffälig ist eigentlich nur, dass wir an der main()-Methode Anpassungen vornehmen müssen.

Übrigens gibt es unter http://compileonline.com/ die Möglichkeit, Code direkt ausführen zu lassen. Wie bei allen Online-Diensten muss man sich nur überlegen, welche Daten man an einen Server schickt.

Online-Übersetzung des C#-Originals

Auch Online-Compiler gibt es wie Sand am Meer. Haben Sie diesbezügliche Favoriten? Schreiben Sie mir…

Sonntag, 7. September 2014

Clip4Moni: Inhalt anzeigen

Ich habe Clip4Moni um eine kleine, aber nützliche Funktion erweitert. Das Programm kann den Inhalt des System-Clipboards als Text anzeigen. Dabei werden bestimmte Escape-Sequenzen aufgelöst.

Menü von Clip4Moni

So wird aus…

\u002A\u002f\u000a\u0069\u003d\u0034\u0032\u003b

Der Dialog Inhalt anzeigen

Der Inhalt bleibt aber unverändert, die Konvertierung erfolgt bewusst nur für die Darstellung.

Praktisch, oder?

Mittwoch, 20. August 2014

\u0069\u003d\u0034\u0032\u003b

Ich freue mich auf den Herbstcampus 2014. Und wenn Sie wissen möchten, was es mit dem Buchstabensalat im Titel auf sich hat, kommen Sie doch einfach zu meinem Talk.

Freitag, 15. August 2014

TKWeek: experimenteller Support für Schulferien

In TKWeek gibt es ab Version 1.7.7 experimentelle Unterstützung für Schulferien in Deutschland. Basis ist der Ferienkalender der Kultusministerkonferenz. Ganz wichtig: alle Daten sind ohne Gewähr.

TKWeek Schulferien #1

TKWeek Schulferien #2

TKWeek Schulferien #3

Samstag, 26. Juli 2014

Tomy Racing Cockpit

Meine Frau hat mir heute vom Flohmarkt ein cooles Gadget aus den frühen 80ern mitgebracht, das Tomy Racing Cockpit. Leider mag das gute Stück nicht mehr, aber das macht nichts, kultig ist es allemal. Ich selbst besaß das Spielzeug nicht, aber ein Junge aus der Nachbarschaft hatte eines. Der Schalthebel steuert ein paar Anzeigen, unter anderem die Geschwindigkeit und den Turbo.
Tomy Racing Cockpit #1
Tomy Racing Cockpit #2
Tomy Racing Cockpit #3
Tomy Racing Cockpit #4
Tomy Racing Cockpit #5
Tomy Racing Cockpit #6

Kenne Deine Klassenbibliothek Ausgabe 2014/07/26

Im Herbst vergangenen Jahres hatte ich an dieser Stelle über die Klasse Pair der Android-Klassenbibliothek berichtet. Mein Fazit damals:

Paare kommen recht häufig vor. Denken Sie an Koordinaten, Größenangaben oder Seitenverhältnissen. Aber auch für jede Form von Schlüssel-Wert-Kombinationen kann diese Klasse ein praktischer Container sein.

Das stimmt natürlich auch heute noch. Und gilt nicht nur für Android, sondern auch klassische Java-Projekte. Wenn Sie nach java key value pair suchen, stoßen Sie auf eine ganze Reihe von Eigenentwicklungen. Und natürlich auf Implementierungen in weit verbreiteten Bibliotheken. Commons Lang beispielsweise bietet im Paket org.apache.commons.lang3.tuple die abstrakte Klasse Pair sowie deren Ableitungen ImmutablePair und MutablePair. Nicht ganz so bekannt ist, dass Java von Haus aus etwas ähnliches anbietet: die Basis bildet das Interface java.util.Map.Entry. Die Klassen AbstractMap.SimpleEntry und AbstractMap.SimpleImmutableEntry implementieren es. Commons Lang tut dies übrigens ebenfalls.

Auffällig ist, dass die einzelnen Implementierungen jeweils eigene Namen für die Teile des Paares haben. Der Klassier ist key/value. Dann wären da noch first und second, sowie left und right. Hier sehen Sie übrigens das Hauptargument gegen den Einsatz von allgemeinen (generischen) Paaren. Sie verraten nicht, welche Beziehung im konkreten Einsatz die beiden Teile zueinander haben. Spannende Lektüre bietet der Stackoverflow-Eintrag What is the equivalent of the C++ Pair in Java?.

Wie sehen Sie das? Schreiben Sie mir…

Sonntag, 29. Juni 2014

Fragmentierung

Ja, ich habe mir eine LG G bestellt. Angeblich soll das gute Stück kommenden Freitag ausgeliefert werden. Dumm nur, dass ich wahrscheinlich nicht viel darüber werde berichten können.

Screenshot: Kompatibilitätstest Android Wear

Mein treues Fairphone ist dazu nämlich zu alt. Oder zu doof. Oder beides. Die Companion App von Android Wear hätte nämlich gerne Android 4.3, aber die Macher des Fairphone sehen sich derzeit nicht in der Lage, auf Android 4.4 zu aktualisieren. Apple-Jünger, freut euch, ihr habt es besser.

Übrigens gibt es durchaus Gerüchte, dass viele MediaTek-Androiden von kitKat abbeißen dürfen. Nur eben leider nicht mein Fairphone.

Immerhin hat mein Experiment in Sachen Fairness länger gedauert als gedacht.

Donnerstag, 26. Juni 2014

Lektüre-Tipp: Entdecker - Android-Apps und das Web

In der seit heute erhältlichen iX 7/2014 findet sich mal wieder ein Artikel von mir: Entdecker - Android-Apps und das Web. Im World Wide Web warten unerschöpflich viele Informationen auf den Smartphone-Entwickler. Daten und Dienste soll man in die eigene App integrieren. Ich zeige Ihnen, wie Sie sicher und schnell auf Webinhalte zugreifen können.

Sonntag, 22. Juni 2014

Nostalgie: Tomy Arcade Racing (Mini Arcade)

Heute reisen wir ein bisschen in die Vergangenheit. Ich stelle Ihnen ein Tabletop Game vor, mit dem ich als Kind gerne und oft gespielt habe. Ob das Tomy Arcade Racing in den späten 70ern oder frühen 80ern erschienen ist, kann ich leider nicht mehr genau sagen. Ich denke, ich werde wohl so um die zehn Jahre alt gewesen sein. Weiter unten gibt’s ein kleines Video.
Tomy Arcade Racing #1
Tomy Arcade Racing #2
Tomy Arcade Racing #3
Tomy Arcade Racing in Aktion
Unfassbar, wie viel Spaß wir damals mit so wenig hatten. Können Sie sich vorstellen, dass heutige Kids länger als 3 Minuten dran bleiben? Sehr schade, oder?

Mittwoch, 18. Juni 2014

Zurück in die Zukunft

Screenshot: Min Time unter Froyo

Soo, Min Time steht in Google Play nun auch für die etwas älteren Androiden zum Download bereit. Geräte ab Froyo (API Level 8), also Android 2.2, sollten die App nun finden und installieren können. Über Rückmeldungen würde ich mich natürlich freuen.

Montag, 16. Juni 2014

Zeitmaschine

Ein Leser hatte mich gefragt, warum denn ein simples Programm wie Min Time unbedingt Android 4 braucht. Die Frage ist natürlich legitim. Da ich sie aus dem Stegreif nicht beantworten konnte, habe ich versucht, die App unter Android 2.x lauffähig zu bekommen. Das Setzen des Attributs android:minSdkVersion auf 8 (Froyo) war schnell erledigt. Die Android Development Tools haben dann noch (logischerweise) das Setzen des Vollbildmodus android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen" moniert. Dann konnte es losgehen. Mit …Sie ahnen es… rrrrummmmmssss. Es gab ein paar Stellen, an denen Android auf die Nase gefallen ist, weil ich Methoden aufrufe, die es in Android 2.x noch nicht gibt. Das passiert, weil ich das Ziel-SDK (android:targetSdkVersion) auf 19 (KitKat) gelassen hatte. Statt Versuch und Irrtum hätte es natürlich auch das Herabsetzen dieses Wertes getan. Naja. Große Hämmer sind eigentlich gar nicht dabei gewesen: das Abfragen, ob das Gerät einen Vibrationsmotor hat, geht erst ab API Level 11. Das Konfigurieren eines Menüeintrags setShowAsAction() ebenfalls. Und da ist dann noch das Ermitteln der Anzeigegröße. Das von mir verwendete getSize() gibt es erst ab API Level 13, vorher muss man getHeight() und getWidth() verwenden. Das war’s.

Wann es die Version in Google Play gibt, kann ich noch nicht versprechen. Ich bin auch, das gebe ich offen zu, zwiegespalten, was den Support alter Versionen angeht. Auf der einen Seite gibt es viele Leute, die gerne mit Ihrem “alten” Gerät arbeiten. Das ist lobenswert. Warum sollte man etwas wegwerfen, das prima funktioniert. Und in meinem ganz konkreten Fall ist der Aufwand ja minimal. Auf der anderen Seite sind Tests eine Tortur. Je komplizierter die App, desto aufwendiger die Überprüfung. Und: so viele Geräte kann man eigentlich gar nicht vorhalten…

An dieser Stelle nochmals herzlichen Dank an @timothep.

Sonntag, 15. Juni 2014

Noch einmal Min Time: diesmal mit bbbbbrrrrrummmmmm

Die gestern veröffentlichte Version 1.02 hatte einen kleiner Fehler: beim Auswählen einer Zeitverteilung wurde die Gesamtdauer nicht aktualisiert. Da ich nach der Veröffentlichung schon weiter gebastelt hatte, habe ich mich entschlossen, den Fehler gleich in der neuen Version zu beheben. Die brummt bei Phasenübergängen. Leider ist hierfür eine Berechtigung erforderlich. Ich bin aber zuversichtlich, dass dies nicht zu sehr stört. Und Werbeeinblendungen sind mit ihr ja auch nicht möglich. Zwinkerndes Smiley Viel Spaß also mit Min Time 1.03.

Samstag, 14. Juni 2014

Min Time 1.02 mit Speicherfunktion

Screenshot von Min Time

Min Time hat eine Funktion zum Speichern und einfachen Aktivieren von Zeitverteilungen erhalten. Außerdem zeigt die kleine App nun die Gesamtzeit, also die Summe der dreiPhasen, an.

Montag, 9. Juni 2014

TKWeek 1.7.6

Screenshot von TKWeek 1.7.6

Es gibt eine neue Version von TKWeek. Im Modul Informationen über ein Jahr können jetzt die Jahreszeiten eingesehen werden. Außerdem sind ein paar neue Nationalfeiertage hinzu gekommen. Haben Sie Ideen, Wünsche oder Anregungen? Lassen Sie es mich wissen…

Freitag, 30. Mai 2014

Min Time verfügbar



Seit ein paar Stunden ist Min Time im Play Store verfügbar. Ich freue mich sehr über konstruktive Rückmeldungen.


Donnerstag, 29. Mai 2014

Gestatten…: Min Time

So ziemlich das Nervigste am App-Schreiben ist… das Namen erfinden… Nicht nur, dass es praktisch für jedes Thema schon eine App gibt – nein, auch alle Namen dieser Welt scheinen bereits vergeben zu sein. Ich versuche dann immer aus der Not eine Tugend zu machen und bastle Wörter. Beispiel: Eine App, die Vortragenden in bestimmten Intervallen signalisiert, wie viel Zeit noch zur Verfügung ist, könnte Timer, Stoppuhr, Eieruhr, Countdown, Time Keeper, … heißen. Gibt’s aber alles schon. Deshalb nenne ich meine Min Time. Ich weiß, dass Sie sich jetzt verlegen am Kopf kratzen. WIE?? Sie können es als Abkürzung für Minimalistic Timer lesen, oder als Wortspiel, denn im Englischen heißt In Time rechtzeitig. Und das möchte doch jeder Referent werden, nicht wahr? Hier also Min Time:

Die App "Min Time"

Die Idee ist, einen Vortrag in drei Bereiche zu teilen: in die lange Komfortzone, die Zielgerade und die “Der letzte Satz”. Man stellt die drei Werte ein, tippt auf Start und unterhält das Publikum. Am ende des Vortrags tippt man einmal auf den Bildschirm. Fertig. Das Ding ist winzig klein, schnell und vor allem unkompliziert. Haben Sie Lust bekommen, es herunterzuladen? Bald, nur noch ein paar letzte Pinselstriche. Smiley

Mittwoch, 7. Mai 2014

Ein kurzer Blick auf den 7. Meilenstein von Eclipse 4.4

Seit Anfang Mai ist der siebte Meilenstein von Eclipse 4.4 verfügbar. Damit ist Luna feature complete. Hier ein paar Dinge, auf die wir uns freuen können (nicht alles kam mit M7). Zunächst ist da natürlich das dark theme. Gefühlt hat der Trend ja in der Ecke der Kreativ-Software begonnen und hat dann (Achtung, grottenschlechtes Wortspiel) auf die IDEs abgefärbt. Ich weiß nicht, wie es Ihnen geht, aber ich werde mit dem dunkel-düsteren Ambiente nur langsam warm.

dark theme #1

dark theme #2

Was wirklich schön ist: die Icons wurden auf das .png-Format umgestellt und wirken weniger kantig. Sehen Sie sich doch mal den obigen Screenshot in Originalgröße an.

Eine prima Sache ist die neue geteilte Ansicht in Editoren:

geteilte Ansicht in Editoren

So macht das gleichzeitige Arbeiten von weit auseinander liegenden Abschnitten im Quelltext endlich Spaß.

Nett ist auch die Unterstützung von Java 8-Sprachfeatures. *** Update: *** Zum Beispiel kann Eclipse aus anonymen Klassen lambda-Ausdrücke machen:

Codebeispiel im "alten" Stil

Aufruf von Quick Assist

Code nach der Umwandlung

Damit das funktioniert, muss ein Java 8 als “Standard VM” hinzugefügt werden.

Installed JREs

Anschließend müssen Sie den Compiler compliance level auf 1.8 setzen. Vorsicht: ggf. projektspezifische Einstellungen beachten.

Compiler compliance level