Nachrichten getagged: Entwicklung

Meine erste iPhone App – Folge 15

Von , 24. November 2011

Screenshot_WuppTourDEIm Projekt meine erste iPhone App geht es Stück für Stück weiter. Das Design der frisch registrierten Domain www.wupptour.de ist nun fertig. Die Anpassung des Themes hat sich leider als sehr zeitaufwendig gestaltet und ich werde es mir zweimal überlegen, ob ich wirklich nochmal ein Fluid Theme (mit flexibler Breite) editieren möchte, anstatt ein Theme mit fester Breite zu nehmen. Schließlich soll die Webseite auf allen Devices und allen Browsern möglichst gleich aussehen, egal ob PC oder Smartphone und egal mit welchem Browser. Diese Anforderung ist dank der unterschiedlichen Engines aber äusserst schwierig und mit einem Theme mit “fixed-width” wäre das Leben um einiges leichter gewesen. Besonders der CSS Bug im IE7, dass man keine negativen Positionsangaben in Prozent nutzen kann, sei hier mahnend erwähnt! Letztendlich wäre ich mit meinen mageren Web und CSS Kenntnissen auch komplett gescheitert, hätte ich nicht die Hilfe von einigen Personen gehabt. Schließlich wollte ich mich primär mit iOS Entwicklung beschäftigen und mich nicht in Web Techniken einarbeiten. Danken möchte ich also an dieser Stelle besonders @gallenkamp, Marco und iDörk. Aber selbst mit der tollen Unterstützung sind einige Tage vergangen, bis es so war, wie ich mir das vorgestellt habe. Das typische App Webseiten Design sieht natürlich anders aus, aber ich wollte es passend zur App schlicht, schlank und einigermaßen elegant haben. Jetzt fehlt “nur” noch der Content, der bis zum Release der App noch erstellt werden muss.

Weiter habe ich versucht, einige Fans für die Facebook Seite zu gewinnen, was mir zumindest im Freundes- und Bekanntenkreis auch gelungen ist. Anderweitige “Gefällt Mir” Klicks sind bis jetzt leider noch nicht aufgetreten. Das ist schade, aber verwundert mich auch nicht wirklich, so klein wie die Zielgruppe sein dürfte. Wobei klein natürlich relativ ist. Immerhin hat Wuppertal von Januar bis September knapp 158.000 registrierte Besucher zu verzeichnen. Das sind auf das Jahr hochgerechnet über 210.000 Besucher die im Durchschnitt 2,3 Tage verweilen. (Quelle: WZ-Newsline)

Ausgehend von einem weltweiten Handy Marktanteil des iPhones von rund 5% (Quelle), sind das über 10.500 potentielle Kunden für die WuppTour App – jedes Jahr. Mangels nachvollziehbarer Statistiken fehlen in dieser Zahl noch iPad (3G) und iPod Besitzer. Letztere können mangels GPS zwar die App nicht in Form einer automatisierten Führung nutzen, aber durchaus manuell die Führung durchlaufen. Ausserdem kann man vom Content der App sogar profitieren, ohne wirklich die Route vor Ort abzulaufen. Das es auch dafür eine Zielgruppe gibt, zeigen Apps wie Weltstädte – Der Audioführer von Jourist.

An der App selbst hat sich seit dem letzten Beitrag nichts geändert, aber ich habe heute die finalen Texte für die Führung erhalten. Diese werden nun eingebettet, so dass als nächstes nochmal eine Generalprobe starten kann, bevor die Aufnahmen im Tonstudio gemacht werden. Beenden möchte ich den Artikel wieder mit einem interessanten Link bezüglich Crowdsourcing. Es geht um die von Apple unabhängige Messung des App Store Review Prozesses per Twitter. Jeder Entwickler möge ein Tweet verfassen indem er die Wartezeit twittert, die dann von ShinyDevelopment ausgewertet wird. Schöne Sache um einen Anhaltspunkt zu haben, wie der aktuelle Stand der Review Zeit ist.

Meine erste iPhone App – Folge 14

Von , 8. November 2011

Hier war aus privaten Gründen einige Wochen Funkstille, die ich hiermit nun brechen möchte! Passiert ist an der App in der letzten Zeit zwar wenig, aber zu berichten gibt es viel. Anfangen möchte ich mit der Aufklärung meiner Andeutung aus dem letzten Blog Artikel, nämlich der Tatsache, dass ich jemanden über Twitter gefunden habe, der mir zukünftig beim Thema Grafik und Design unter die Arme greift. Es handelt sich um jemanden, der genau wie ich das ganze als Hobby betrachtet und keine finanziellen Interessen verfolgt. Als er hörte worum es sich handelt, war er sofort Feuer und Flamme und sagte:

Sowas hab ich noch nie gemacht, das ist spannend, da bin ich sofort dabei!

Darüber habe ich mich natürlich sehr gefreut und so ging es auch schon kurze Zeit später zu einem Blind-Date in ein Wuppertaler Bistro, wo wir alles weitere ausführlich besprochen haben. Die ersten Versuche der Zusammenarbeit sind auch bereits erfolgreich vollzogen worden und ich habe ein sehr gutes Gefühl bei der Sache, dass wir bei den Dingen auf einer Wellenlänge liegen. Bestaunen dürft ihr hiermit also das von ihm designte neue App Icon, welches das alte Hässliche von mir ersetzen wird. An dieser Stelle noch mal vielen Dank an iDörk! Kritik, aber vor allem Lob zu dem neuen Icon als Kommentar sind mehr als erwünscht! :)

WuppTourIconRund

Die stilisierte Skyline von Wuppertal mit einigen markanten Objekten, ergänzt durch die über alles schwebende Schwebebahn finde ich wunderbar. Es passt einfach zur App und zu Wuppertal und ist ein dezenter optischer Ruhepunkt in der sonst quietschbunten App Icon Welt.

Weiter gibt es zu berichten, dass ein Meeting statt gefunden hat, in dem ich den Status der App präsentiert habe und das weitere Vorgehen besprochen wurde. Speziell die finalen Texte und Tonaufnahmen müssen angegangen werden, wenn mein Wunsch, die App noch dieses Jahr im Store zu haben, in Erfüllung gehen soll. Angekommen ist die App jedenfalls sehr gut, was mich wirklich gefreut hat!

Im Bereich Marketing, was ja bekanntermaßen die halbe Arbeit bei so einem Projekt ist, hat sich auch einiges getan. So habe ich den App Namen final auf WuppTour festgelegt und entsprechend eine Webseite (www.wupptour.de), einen Twitter Account (@WuppTour) und eine Facebook Seite (facebook.com/WuppTour) registriert. Damit das mit der Webseite und der neuen Mail Adresse (info ätt wupptour punkt de) auch funkioniert, musste ich noch einige Konfigurationsarbeiten auf meinem Mietserver erledigen. Die Inhalte dieser verschiedenen Marketing Plattformen müssen natürlich noch gefüllt werden, aber mit der Festlegung des App Namen musste ich mir die verschiedenen Adressen logischerweise schon mal sichern. Es ist wirklich extrem wichtig eine App über alle zur Verfügung stehenden Kanäle zu promoten und bekannt zu machen. Immerhin muss man irgendwie aus der Masse von über 500.000 Apps, die es mittlerweile im Store gibt, heraus treten.

Wie bereits beim letzten Mal, möchte ich den Blog Eintrag mit einem sehr interessanten Artikel auf Tap! von Matt Gemmell abschließen, in dem er aufzeigt, wie man eine iPhone App gestalten sollte:

The worst design mistake you can make is believing your app is software. Instead, try building a piece of virtual hardware

 

Meine erste iPhone App – Folge 13

Von , 13. Oktober 2011

iOS5_IconFür viele lang ersehnt und von mir bereits im Sommer im Rahmen des Beta Tests als Apple Developer für sehr gut befunden, ist nun iOS5 für alle verfügbar. Es war so sehr erwartet worden, dass die Leitungen der Backbone Betreiber geglüht haben und Apple fast das Internet kaputt gemacht hat! Beeindruckender Start! Was auch noch beeindruckend war, dass Apple gefühlt fast allen Produkte ein Update verpasst hat, die nicht bei 5 auf den Bäumen waren. Dadurch uferte der Update Prozess bei vielen in eine wahre Orgie aus. Bei mir belief es sich dann schliesslich auf iPad, iTunes, Xcode, AppleTV2 und OS X Lion Update. Weiter die Einrichtung der scharf geschalteten iCloud und die Installation der neuen Apple Apps: Airport Utility, Find-My-Friends und Cards, als auch Updates diverser Apps die nun iCloud und iOS5 Unterstützung beinhalten. Auch wenn es nicht direkt mit meiner App zu tun hat, wollte ich es der Vollständigkeit halber erwähnen. Gut daran ist jedenfalls, dass Xcode nun nicht mehr beta ist und ich somit meine App demnächst einreichen kann.
Der Stand ist zur Zeit, dass ich nun eine Info Seite implementiert habe, auf der einige App Details ersichtlich sind. So etwas wie Version, Entwickler (ich), Webseite und weiteres. Allerdings gefällt mir das Layout so überhaupt nicht und muss nochmals überarbeitet werden. Das bringt mich zu einem wichtigen Thema, dass ich zu Beginn des ganzen Projektes stark unterschätzt habe. Und zwar das Thema Design, Look&Feel und Gestaltung, eben das “hübsch machen” einer App. Ich selbst bin und war darin immer schon eine absolute Niete. Gimp und Photoshop sind mir zuwider und ich bin froh, wenn ich morgens vor dem Kleiderschrank keine Fehlgriffe bei der Farbkombination meiner Klamotten mache. Mir ist während der Entwicklungsphase immer wieder aufgefallen, wie viel Zeit ich teilweise in die einfachsten Layout Gestaltungen investiert habe und letztendlich immer doch noch unzufrieden war. Ich habe daher geschworen, mir für die nächste App Hilfe zu suchen. Diese Hilfe habe ich offenbar gefunden und zwar über Twitter. Wozu die Social Networks doch so gut sind. Näher möchte ich darauf allerdings erst im nächsten Blog Artikel eingehen.

Davon ab gibt es noch zu berichten, dass ich für einige ToolBar Buttons hübsche Icons brauchte. Während ich für die TabBar damals die Glyphish Icons gekauft habe, konnte ich für die ToolBar (oben) eine kostenlose Sammlung qualitativ hochwertiger Icons finden. Vielen dank an dieser Stelle an TWG – The Working Group, die ich hiermit gemäß der  Creative Commons Attribution-Share Alike license erwähnen möchte. In die fertige Produktbeschreibung kommt natürlich auch nochmal ein entsprechender Hinweis. Ansonsten sind ein paar Kleinigkeiten wie die Einführungsseite zur Stadtführung hinzu gekommen und der Startpunkt der Führung ist nun anhand eines grünen Pins zu erkennen (die anderen sind rot). Als nächstes bastel ich noch die GPS Logik, die ich hoffe im Laufe dieser Woche abschliessen zu können.

Nebenbei habe ich übrigens einen zwar oberflächigen, aber dennoch interessanten Artikel gefunden, in dem in groben 8 Schritten der Weg zur ersten App beschrieben wird. Solltet ihr euch mal ansehen, wenn ihr ebenfalls eine iPhone App plant.

Meine erste iPhone App – Folge 12

Von , 26. September 2011

WupperTourActionSheetEs freut mich, dass iOS5 so langsam für den Otto-Normal-Verbraucher in Sicht kommt. Einhergehen sollte der Release nämlich mit Xcode 4.2, welches ich (in der beta Version) für diese App Entwicklung genommen habe. Damals unwissend, dass Apple es verbietet Apps in den App Store zu stellen, die mit einer beta Version der Entwicklungsumgebung entwickelt wurden. Meine Planung ist, spätestens im November mit der App im Store zu sein und ich fände es äusserst deprimierend, eine fertige App nicht veröffentlichen zu dürfen. Aber was habe ich eigentlich gemacht in den letzten Tagen seit dem letzten Update? Es gibt nun einen “locate me” Button in der Karten Ansicht, nach dessen Betätigung Google Maps einem die aktuelle Position anzeigt und dort hinein zoomt. Zusätzlich gibt es einen weiteren Button um per “ActionSheet” (siehe Bild) den Karten-Typ zu wechseln. Zum Beispiel kann eine Karte ohne Satellitenansicht manchmal übersichtlicher sein, wenn man bestimmte Strassen sucht. Ebenfalls fertig ist das Overlay der eigentlichen Route. Also eine durchgezogene Linie anhand derer man erkennen kann, wo man lang laufen muss um von POI zu POI zu kommen. Das wird zwar erst mit iOS4 wirklich gut unterstützt, allerdings sehe ich das zur Orientierung als absolut notwendig an. Wer mit erscheinen von iOS5 nächsten Monat nicht mal auf der 4er Version ist, dem ist ohnehin nicht mehr zu helfen. Leider sind diese Overlays nicht wirklich trivial, aber ich habe in den weiten des Internet ein gutes und vorallem übersichtliches Beispiel gefunden, das mich zur korrekten Lösung geführt hat. Der Muster Code von Apple scheint mir da doch arg überfrachtet und aufgeblasen zu sein! Zu guter letzt habe ich nochmal am Audio Management gefeilt. Es wird nun auch der “Play” Button aktualisiert, wenn die Abspielung des Audio Files beendet ist und eingehende Anrufe sorgen für die automatische Unterbrechung und nahtlose Wiedergabe nach dem Beenden des Anrufes.

Abschalten von Copy, Paste und Select in UITextView

Von , 19. September 2011

kontextMenuDa dies eine immer wieder gern gestellte Frage ist, nicht zuletzt auch von mir, habe ich mich dazu entschlossen eine deutsche Version von diesem Artikel zu erstellen. Wenn ihr also ein UITextView einsetzt um Informationen darzustellen und diese schützen wollt vor einfachem kopieren durch “Copy&Paste“, ist es möglich das Kontextmenü für den Benutzer abzuschalten. Da die Klasse UITextView selbst keine Eigenschaft dafür kennt, ist es notwendig per Vererbung eine neue Klasse zu erstellen und die Methode canBecomeFirstResponder zu überschreiben. Die neue Klasse würde dann wie folgt aussehen:

// ReadOnlyTextView.h
#import <Foundation/Foundation.h>

@interface ReadOnlyTextView : UITextView
{

}

@end

// ReadOnlyTextView.m
#import "ReadOnlyTextView.h"

@implementation ReadOnlyTextView

// Overwrite method to disable Copy&Paste
- (BOOL)canBecomeFirstResponder
{
  return NO;
}

@end

Viele geben zu diesem Thema auch den Hinweis, die Methode canPerformAction:withSender zu überschreiben. Allerdings ist das relativ häßlich, da dann trotzdem noch (zumindest ganz kurz) das Kontextmenü aufpoppt.

Meine erste iPhone App – Folge 11

Von , 14. September 2011

pinViewIm Vergleich zum holprigen Start geht es derzeit Schlag auf  Schlag und ich kann fast wöchentlich ein Update zum Fortschritt abliefern, was mir eine persönliche Freude ist. Nichts ist motivierender als sichtbarer Erfolg! Diese sichtbaren Erfolge sind im heutigen Fall auch hörbare, da ich das Audio Management fertig gestellt habe. Es lassen sich nun in allen Ansichten die entsprechenden Tonausgaben abspielen (derzeit Test Aufnahmen). Ein Etapenziel dabei war, dass der Ton auch beim Wechsel der Ansicht weiter spielt, bis er zuende ist oder eine andere Audiodatei ausgewählt wird. Lobet die Objektorientierte Programmierung! Entgegen meiner bisherigen Planung, komme ich glücklichweise ohne eine aufwändige Audio-Bedienleiste aus, was der Übersichtlichkeit der GUI zugute kommt. Quasi “Ein-Knopf-Betrieb”, der meiner Meinung nach genügen sollte. Die beta Tester werden es dann später merken, ob das langt. ;)

Ein weiterer Meilenstein ist die Finalisierung der POI Stationen. Nach dem Testrundgang (siehe letzter Artikel) hatte sich noch Änderungsbedarf herausgestellt, der nun umgesetzt worden ist. Ich konnte daher die POI Liste einbauen und vor allem die entsprechenden Bilder verlinken. Auf jeder Detailansicht tauchen nun die zugehörigen Bilder in der Reihenfolge auf, in der man beim Ablaufen der Stadtführung die Umgebung erlebt. Ich hoffe das wird als Orientierungshilfe ausreichend dienen können. Weiter in Arbeit befinden sich die eigentlichen Texte der POI’s, welche hoffentlich in den nächsten Wochen fertig gestellt werden. Erst dann können für die oben genannte Audio Infrastruktur die Aufnahmen im Tonstudio gemacht werden.

Last but not least habe ich das Grundgerüst fertig, damit die POI’s als kleine Stecknadeln auf der Kartenansicht dargestellt werden. Was noch fehlt ist die Möglichkeit, diese auswählen zu können und direkt zur Detailansicht zu gelangen. Ausserdem sind im Datenmodel derzeit bis auf 3 Testeinträge noch keine Positionsangaben hinterlegt. Hier muss ich mir mithilfe von Google Maps noch die genauen Koordinaten (Längen- und Breitengrade) zu jedem POI heraussuchen und in der XML Datei hinterlegen.

Meine erste iPhone App – Folge 10

Von , 29. August 2011

Screenshot_WupperTour_110829So langsam nimmt die App tatsächlich Form an und es war an der Zeit, den Stadtrundgang zu validieren. So sind wir also etwa 5h bei schönstem Wetter durch Wuppertal gelaufen und haben haufenweise Notizen gemacht, an dem Rundgang gefeilt und zu jedem POI mehrere Bilder geschossen. Insgesamt sind es 270 Stück geworden, die nun aussortiert werden wollen, da 1-3 Bilder pro POI reichen sollten. Dann ist mir bewusst geworden, dass die POI’s Luftlinie teilweise recht nah beieinander liegen, weswegen wir einige zusammenfassen mussten. Sobald die letzte Programmieraufgabe – die eigentliche Führung per GPS – umgesetzt ist und zumindest beta Stadium erreicht hat, werden wir den Rundgang erneut gehen. Da wird sich dann herausstellen, ob das so funktioniert wie geplant. Die Dauer der Stadtführung sollte (bequem gegangen) bei etwa zwei Stunden liegen und ist meiner Meinung nach sehr schön und zeigt “alle” Facetten die Wuppertal ausmachen. Sobald die Stationen nach unseren Änderungen sauber definiert und ausformuliert sind, werde ich die Datenübernahme vornehmen und die Bilder auswählen und hinzufügen. Das technische Grundgerüst der POI Detail Anzeige für die Texte und Bilder ist auch bereits fertig und gefällt mir eigentlich sehr gut. Ich mag GUI‘s, die schlicht und schlank sind, besonder wenn ich mit meiner mangelnden kreativen Ader eine entwicklen soll. Ein Designer würde also sicher alles ganz anders machen, aber so ist es nun mal. Budget ist nicht vorhanden, um jemanden dafür zu bezahlen. Sollte sich natürlich jemand berufen fühlen, etwas gutes für Wuppertal und den Erfolg der App zu tun, gerne bitte bei mir melden! :)

Davon ab, habe ich mich zur Feier des 10. Artikels über meine erste iPhone App dazu entschieden, in Zukunft aus den Berichten die technischen Aspekte wie Quellcodes usw. rauszuhalten. Leider ohne großartiges Feedback von euch erhalten zu haben, ist es vermutlich so, dass es eine nennenswerte Gruppe Leser dieser Reihe gibt, die eben nicht Objective-C Programmierer sind und nur am Fortgang der App aus Projektsicht interessiert sind und weniger an der technischen Umsetzung. Das wird also ab sofort in separate Artikel verpackt werden.

Meine erste iPhone App – Folge 9

Von , 17. August 2011

WupperTour_Stationen_110816Wieder ist erfolgreich ein wenig Freizeit vernichtet und meine erste iPhone App ein Stückchen weiter. Nachdem ich beim letzten mal ja davon berichtet habe, dass es gar nicht so einfach war, meinem TabBarController einen TableViewController zu verpasssen, wollte ich nun den dritten Aktivist in Form eines NavigationControllers ins Spiel bringen, damit der Anwender nach Auswahl einer bestimmten Station auch die entsprechenden Details eingeblendet bekommt. Leider führte mich erst einmal ein Denkfehler in die Irre. Ich ging davon aus, dass der NavigationController quasi dem TabelViewController hinzugefügt werden muss; es ist aber genau anders herum. Wie beruhigend, dass das ein typischer Anfängerfehler ist, wie mir meine Google Suche bestätigte. Tatsächlich muss also dem TabBarController der NavigationController zugewiesen werden, der dann wiederrum den TabelViewController bekommt. Wechselt der Anwender dann zur Detail Ansicht eines POI’s, wird die entsprechende View auf den Stack des Navigation Controllers gepusht und die TableView ausgeblendet. Auf die richtige Lösung brachte mich eines der vielen schönen Tutorials eines amerikanischen Blogs, unterstützt durch das zugehörige YouTube Video. In dem Tutorial wird das Konstrukt über den InterfaceBuilder angelegt. Ich selbst habe das Grundgerüst allerdings ohne MainWindow.xib aufgebaut, daher folgend die programmatische Ausführung des ganzen in abgesteckter Form als Auszug aus dem AppDelegate:

UIViewController *viewController1, *viewController2;
UINavigationController* navController;
viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
navController = [[UINavigationController alloc] initWithRootViewController:viewController2];
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, nil];
self.window.rootViewController = self.tabBarController;

In meinem Fall ist dann die TableView im XIB File des SecondViewController definiert und wird über die Zuweisung in Zeile 5 reingezogen. Was dann noch fehlt ist der Push des Detail XIB, der im SecondViewController nach der Auswahl eines Tabelleneintrages per didSelectRowAtIndexPath Protokoll-Methode gemacht wird:

detailController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:detailController animated:YES];

Bezüglich der Lokalisierung der POI’s gibt es noch zu berichten, dass ich nun die XML Datei mit den POI’s meinem Projekt auch für die englische Sprache hinzugefügt habe. Verwirrend war dann aber leider erstmal, dass die App auch in Englisch sprachiger Umgebung nur die deutschen Texte zeigte. Aber auch das ist ein allgemein bekanntes Problem. Xcode cacht hier diverse Dateien und erkannte erst nach der Projekt Bereinigung über das Menü “Build -> Clean” die neue sprachenabhängige Datei. Manchmal ist sogar das Löschen der App im Simulator bzw. auf dem iPhone notwendig.

Um mal von der fiesen Technik etwas weg zu gehen: wie man am Screenshot sehen kann, fehlen der POI Liste noch die diversen Informationen. Hier muss ich noch die XML Datei entsprechend ausfüllen, was eine Fleissaufgabe ist. Des weiteren werde ich kommenden Samstag die Route erstmalig selbst ablaufen und zu jeder Station ein Foto machen, welches in der Übersicht sichtbar sein wird und natürlich in größer in der Detailansicht. Im gleichen Gang hoffe ich, dass wir auch die eigentlichen Texte der Führung validieren können, damit die Übersetzung ins Englische starten kann.

Eine kleine Anmerkung in persönlicher Sache: Mit jedem Artikel, speziell zum Thema dieser App, steigt mein Besucherzähler sprunghaft. Feedback habe ich aber leider bisher in keinster weise erhalten. Würde mich also sehr freuen, wenn ihr ein paar Tastendrücke in einen Kommentar investieren würdet – gerne auch Kritik, sofern sie konstruktiv ist. ;)

Panorama Theme by Themocracy