XCode Projekt umbennen

Wer mal ein XCode Projekt umbenennen wollte/musste war bis dato ziemlich aufgeschmissen. Das Umbenennen war ein einziger Krampf. Mit der neuen XCode Version hat Apple hier aber nachgelegt und ein Feature eingbaut, was man eigentlich in jeder Entwicklungsumgebung erwartet: Project Rename

Um ein XCode iPhone / iPad Projekt neu zu benennen einfach folgende Schritte durchlaufen:

1. Project -> Rename

2. Neuen Namen eingeben

3. Xcode überprüfen lassen, auf was sich die Änderung auswirkt

4. Snapshot erstellen lassen

5. fertig

1Password Windows Version

1password windows

1password kommt auf windows

Wie golem.de heute berichtet, ist das Password-Management-Tool 1Password nun auch in einer Beta Version für Windows erhältlich. Bis dato waren Windows Nutzer leer ausgegangen, in der Mac Umgebung hat sich das Programm aber eine große Fangemeinde aufgebaut. Auch für das iPhone und das iPad sind bereits Ableger erhältlich. Eine Synchronisation der Passwörter über verschiedene Rechner ist beispielsweise über getdropbox realisierbar.

Schlemmen iPhone App

Schlemmen iPhone App Logo

Heute mal ein klein wenig Werbung in eigener Sache:mit „Schlemmen“ ist gestern die iPhone Applikation zum Schlemmerblock veröffentlicht worden.

Technisch basiert die App auf einem XML Parser der Daten einer Schnittstelle auswertet und verarbeitet. Positon auf einer Karte, verschiedene Kartendarstellung, Umkreissuche, Restaurant Spezialitäten und Kontaktmöglichkeiten sind einige Kernfunktionaitäten der Anwendung und werden sukzessive ausgebaut.

Positive Bewertungen und Verbesserungsvorschläge werden gerne angenommen. Die nächsten Versionen sind schon in der Mache.

Enstanden ist die Anwendung unter Regie von AYCS.

iPhone langsam?

Vermehrt tritt bei iPhone Nutzern der ersten und der zweiten (3G) Generation ein Performance Problem auf. Dieses macht sich durch sehr langsame Reaktionszeiten und träge Handhabung des Gerätes bemerkbar. Anrufe annehmen ist fast unmöglich, Apps starten ungewohnt langsam und auch An- und Abschalten des Gerätes wird zum Geduldspiel.

Dies kann mehrere Ursachen haben, als erste Lösungsmöglichkeit wäre der Neustart des Gerätes zu nennen. Desweiteren kann das Abschalten einiger Push Anwendungen Abhilfe schaffen. Die spannendste Ursache / Lösung ist Safari, genauer gesagt die „Betrugswarnung“ von Safari. Sobald diese deaktiviert ist über „Einstellungen -> Safari -> Betrugswarnung ausschalten“ scheint das Problem behoben.

Man darf gespannt sein, wann Apple diese Lücke schließt und was die Version 4.0 des iPhone OS bringen wird. Diese wird heute Abend 19 Uhr MEZ angekündigt.

UISegmentedControl Farbe ändern

Die meisten iPhone Interface Objekte sind farblich anpassbar an den gewünschten Look. Ein UISegmentedControl jedoch lässt sich zumindest über den Interface Builder nicht so schön „stylen“. Wie kann eine farbliche Anpassung geschehen, ohne die komplette Funktionalität mit UIButtons nachbauen zu müssen?

Die Lösung steckt in UISegmentedControlStyleBar und einem händischen Eingreifen in das Design dessen!

CGRect frame = CGRectMake( 0,0,100,40);
mySegmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
mySegmentedControl.frame = frame;
mySegmentedControl.segmentedControlStyle = UISegmentedControlStylePlain;
mySegmentedControl.selectedSegmentIndex = selectedAttributeIndex;
mySegmentedControl.backgroundColor=[UIColor redColor];
[mySegmentedControl setTintColor:UIColor blueColor];

Alternativ kann die UIColor natürlich auch folgendermaßen gesetzt werden:

[UIColor colorWithRed:.5 green:.1 blue:.2 alpha:1]

An dieser Stelle sei auf die ClassReference von Apple verwiesen: UIColor zusätzlich passend zu der Thematik: UINavigationBar Color ändern und ein UIColor Cheatsheet

uiimage uiimageview drehen rotieren

Wer ein UIImage drehen möchte, wird merken, dass es nicht funktioniert, was auch sinnvoll ist. Im Grunde möchte man ja die umschließende UIImageView drehen.

Dies funktioniert mit dem folgenden Snippet:

CGAffineTransform rotate = CGAffineTransformMakeRotation(M_PI_2);
[konkreteImageView setTransform:rotate];

Wobei der gewünschte Winkel durch eine Multiplikation von PI zustande kommt.

NSString vs NSMutableString

Wer mit Strings im iPhone / iPad Umfeld hantiert, wird früher oder später vor das Problem gestellt, wie hänge ich korrekt einen String an einen anderen.

Dabei ergeben sich zwei Möglichkeiten, entweder mit NSMutableString zu arbeiten, oder bei dem herkömmlichen NSString einen appendString vorzunehmen.

Lösung NSMutableString:

NSMutableString string1 = [[NSMutableString alloc] initWithString:@“hallo“];
[string1 appendString:@“welt“];

Lösung NSString:

NSString string2 = [[NSString alloc] initWithString:@"hallo2"];
string2 = [[[string2 autorelease] stringByAppendingString:@"welt2"] retain];

Wichtig bei der NSString Lösung, auf das autorelease und retain zu achten, da sonst Speicher nicht freigegeben wird!

Xcode All-in-one Window

xcode-all-in-one-1

Da codet man monatelang mit XCode und ärgert sich Tag um Tag über die zig Fenster die mit Debugger, Build Fenster, Konsole, Simulator und Quellcode gefüllt sind.

Dazu noch ein Browser und selbst zwei Monitore sind überfüllt.

Die Lösung ist so simpel, warum Apple das nicht als default setzt ist daher fraglich.
Im XCode Preferences -> General Tab kann man das Layout umstellen, sofern alle Projekte geschlossen sind. Wenn dieses auf „All-in-one“ geändert wird, hat man ein Fenster, in dem man zwischen Debug und Code schalten kann, ins das Debug Fenster kann dann noch die Konsole eingebettet werden -> perfekt!

xcode-all-in-one-2

xcode-all-in-one-3

Link zu Apple:
http://developer.apple.com/mac/library/DOCUMENTATION/DeveloperTools/Conceptual/XcodeWorkspace/010-The_Project_Window/project_window.html

via:

http://www.mobileorchard.com/14-essential-xcode-tips-tricks-and-resources-for-iphone-devs