RSS-Feed

Android Fragments

von Kai um 10:07 am Mittwoch, 1. Februar 2012 in Android, How-To | 1 Kommentar

Gefühlte 95% aller Android Apps sind nicht für Tablets angepasst, was zur Folge hat, dass viele Apps einfach schlimm aussehen. Dabei wurde vor ziemlich genau einem Jahr eine sog. Fragment API veröffentlicht, die die Anpassung bestehender (und neuer) Apps auf Tablets einfacher gestalten soll. Ziel ist es, eine einzige APK-Datei (also App) für alle Plattformen zu bauen, um damit den Mehraufwand beispielsweise bei Aktualisierungen zu minimieren.

Da meine beiden kleinen Apps bisher ebenfalls nicht mit gutem Beispiel vorangehen, habe ich mich mal etwas näher mit der Android Fragment API beschäftigt. Die Idee dahinter ist schnell erklärt: Statt bisher einer Activity hat man nun eine FragmentActivity, die wiederum eine oder mehrere Fragments beinhaltet. Für ein Smartphone bietet sich nun an, je FragmentActivity ein Fragment darzustellen. Bereits veröffentlichte (oder geplante) Apps lassen sich damit komplett auf Fragments portieren, ohne etwas am Design, Aufbau oder der Interaktion der App etwas zu ändern. Um dieselbe App nun auf Tablets zu portieren, passt man den Aufbau der App (also die entsprechende XML-Datei der FragmentActivity) dahingehend an, dass man je nach Größe, eben zwei oder mehrere Fragments pro FragmentActivity anzeigt.

Ein häufig anzutreffendes Beispiel ist die Listenansicht innerhalb einer Activity: Klickt der Benutzer auf ein Listenelement geht eine neue Activity auf mit dem Verweis des geklickten Elements. Auf einem Tablet ist genug Platz, um neben der Liste einen Bereich anzuzeigen, der den Inhalt des aktuellen Listenelements anzeigt.

Da das Konzept von Fragments am Anfang etwas verwirrend sein kann, hab ich auf GitHub ein minimales Minimalbeispiel gebaut, was eine einfache Liste darstellt und eine zweite Ansicht mit dem Inhalt jedes Listenelement zeigt.



Podcast App für Android

von Kai um 19:41 am Sonntag, 23. Oktober 2011 in Android, Produktivität | 5 Kommentare

Anfang des Jahres hatte ich mir zum Ziel gesetzt eine Podcast App für Android zu schreiben, die genau so aussieht und ganz bestimmte Features hat, wie ich sie bei anderen Podcast Apps im Android Market vermisst habe. Wie das aber nun mal so ist mit Hobby-Projekten habe ich in den ersten beiden Wochen nach dem ersten Commit ca. 80% aller Features implementiert und dann erstmal wieder die Lust daran verloren. Zum einen bin ich kein Designer. Daher fällt mir die Gestaltung eines Icons für die App oder die einzelnen UI-Elemente in der App sehr schwer, zum anderen gibt es bei jedem Projekt immer Sachen, die einem mehr Spaß machen und (notwendige) andere Sachen, die man soweit nach hinten schiebt, bis das ganze Projekt hängt, weil eben gerade diese bestimmte Funktionalität noch nicht implementiert ist.

Der aktuelle Stand sieht so aus wie in den Screenshots, die ich in dem Beitrag hier verlinkt habe. Die einzelnen Podcasts besorge ich mir aus dem Miro Podcastverzeichnis, die für Drittanwendungen eine API anbieten, um auf die dort gelisteten Podcasts zuzugreifen und zu abbonieren. Im Prinzip ist die App bereits fertig und muss nur noch “rund” gemacht werden. Dazu zählt intensives Testen der Anwendung und eben die vorher erwähnte Gestaltung eines Icons und diverser UI-Elemente.

Nach meinen positiven Erfahrungen mit SparkleShare hinsichtlich kollaborativer Zusammenarbeit (Pleonasmus-Alarm) überlege ich derzeit, ob ich das Repository, was sowieso schon auf github.com liegt, nicht auch frei gebe. Bleibt für mich bloss die Frage, wer denn Lust hätte (freiwillig) sich mit UI-Design zu beschäftigen? ;-)


SparkleShare für Android

von Kai um 16:18 am Freitag, 21. Oktober 2011 in Android, News | 6 Kommentare

Nach knapp vier Wochen Entwicklungszeit (hauptsächlich Abends und am Wochenende) hab ich diese Woche zusammen mit dem Hauptentwickler von SparkleShare eine erste Version für Android geschrieben.

Was ist SparkleShare?

SparkleShare ist vergleichbar mit dem bekannteren Dropbox, also einem Onlinedienst, mit dessen Hilfe man Dateien in einen bestimmten Ordner auf seinem Computer schiebt und diese dann über mehrere Computer, Tablets und Smartphones hinweg synchronisieren kann. Der Vorteil von SparkleShare ist, dass man für die Synchronisation einen eigenen Server benutzen kann und damit (zumindest theoretisch) die volle Kontrolle über seine Daten behält.

Ich bin da der gleichen Meinung wie beispielsweise Dirk Deimeke, der gerne mal verlauten lässt, dass fremdgehostete Dienste grundsätzlich eine schlechte Idee sind. Wie man seinen eigenen Server mit SparkleShare aufsetzt wird hier näher erklärt. Die von mir geschriebene Android-App benutzt die SparkleShare-Erweiterung Dashboard. Wer also seine Dateien bequem von seinem Android-Smartphone aus durchsuchen möchte, sei ebenfalls auf ein kleines Tutorial hier verwiesen.

Damit das ganze in Zukunft einfach zu installieren und zu benutzen ist, hab ich Hylke, den Entwickler von SparkleShare, schon darauf angehauen, dass Dashboard direkt mit SparkleShare ausgeliefert wird, so dass man im Idealfall mit ein paar Befehlen auf der Kommandozeile seinen eigenen SparkleShare Server aufsetzen kann.

Objectify

von Kai um 15:10 am Donnerstag, 18. August 2011 in Android, Objectify | 1 Kommentar

Gestern habe ich die erste Version von Objectify veröffentlicht, einen mobilen 3D-Scanner für Android Smartphones.

Die App nutzt die Frontkamera und das Display des Smartphones, um das zu fotografierende Objekt von verschiedenen Seiten zu beleuchten und aus den gewonnen Informationen die Oberflächengeometrie zu rekonstruieren.

In der ersten veröffentlichten Version lassen sich 4-9 Fotos schießen, um ein 3D-Objekt zu rekonstruieren. In den folgenden Versionen werde ich noch verschiedene Exportmöglichkeiten wie obj einbauen, um das 3D-Objekt auch mit anderen Programm öffnen zu können. Ein Export nach (animierter) Gif-Grafik steht ebenfalls auf der TODO-Liste.

Die Rekonstruktion der Oberflächengeometrie funktioniert über ein sogenanntes Photometric Stereo Verfahren und ist am besten in sehr dunklen Umgebungen. (Wer diese App also tatsächlich kaufen und ausprobieren möchte, sollte sich zuvor in einen dunklen Raum begeben, um das beste Ergebnis zu erhalten).
Auf meinem Schreibtisch liegen aber schon einige Publikationen, die dieses Verfahren auch in Echtzeit beschreiben. Das ist daher (neben den bereits beschriebenen Updates) der nächste Schritt für mich: 3D-Rekonstruktion in Echtzeit, yeah :)

Die App ist derzeit sowohl im AndroidPIT-Market, als auch im offiziellen Android-Market von Google erhältlich. Einfach auf die Badges hier klicken, um in den jeweiligen Market zu gelangen.

AndroidPIT BadgeAvailable in Android Market

Android 2.3

von Kai um 20:02 am Montag, 6. Dezember 2010 in Android, News | 0 Kommentare

Heute wurde das neue Android SDK in der Version 2.3 veröffentlicht. Ich habe mir das SDK bereits gezogen und mir die Neuerungen angeschaut. Einige werden sich sicherlich über das neue Low-Latency Audio freuen. (:-) ) Insgesamt soll Android 2.3 wohl etwas schneller sein und besser performen. Ich hab auf dem Nexus One noch keine Nachricht für ein mögliches Update bekommen, hoffe aber, dass ich das mit dem (Google) Smart- phone wieder schnell haben werde. Eine weitere Neuerung ist der DownloadManager, der mit größeren Downloads zurecht kommt. Bedeutet Downloads werden erneut angestoßen, falls was schief ging, Netzwechsel sollen (hoffentlich) kein Problem mehr sein und im Lockmodus bzw. im Hintergrund wird weiter geladen.

Ich werde das zum Anlass nehmen mich mal an einem eigenen Podcast-Client für Android zu versuchen, da alle, die ich bisher ausprobiert habe mindestens unter dem eben angesprochenen Problemen litten und daher Downloads manchmal nicht richtig klappten.
Das Programm wird dann zwar für 2.3 geschrieben und damit wohl nur auf wenigen Smartphones laufen (bisher), aber ich brauche endlich eine gute mobile Lösung um Podcasts zu hören.