“Bundesverfassung” App released

Posted by admin | iPhone,Software | Wednesday 13 January 2010 15:19

“Bundesverfassung” enthält die Bundesverfassung der Schweizerischen Eidgenossenschaft vom 27. September 2009 in Deutsch, Französisch, Italienisch und Englisch. Die Sprache kann jederzeit geändert werden. Einzelne Artikel können in einer extra Favoritenliste gespeichert werden. Eine Suche über die Artikelnamen ist möglich.

avail_on_app_store2

Share/Save/Bookmark

“Bundestag” App released

Posted by admin | iPhone,Software | Wednesday 13 January 2010 14:41

Bundestag bietet einen Überblick über alle 622 Mitglieder des 17. deutschen Bundestags.

Aufgelistet nach Fraktionen, Bundesländern sowie Wahlkreisen. Zusätzlich ist eine Gesamtliste integriert.

Zu jedem Mitglied gibt es eine Kurzbiografie und ein Foto. Weiterhin können Notizen zu jedem Abgeordneten angelegt werden.

avail_on_app_store2

Share/Save/Bookmark

NSString Templating

Posted by admin | Development,Objective-C | Sunday 3 January 2010 22:19

Ich hab nach einem einfachen Template System gesucht das mit NSStrings funktioniert. Ich konnte zwar diesen älteren Blogeintrag finden aber das verlinkte Disk-Image war leider nicht mehr auf dem Server zu finden. Da ich die Idee aber sehr gut fand habe ich das Interface hier einmal nachgebaut.
NSString+Template.h

//
//  NSString+Template.h
//
//  Created by Danny Thüring on 12/25/09.
//  Copyright 2009 Danny Thuering. All rights reserved.
//
 
#import 
 
@interface NSString (Template)
 
- (NSString*) stringByParsingTagsWithStartDelimeter:(NSString*)startDelim endDelimeter:(NSString*)endDelim usingObject:(id)object;
 
@end

NSString+Template.m

//
//  NSString+Template.m
//
//  Created by Danny Thüring on 12/25/09.
//  Copyright 2009 Danny Thuering. All rights reserved.
//
 
#import "NSString+Template.h"
 
@implementation NSString (Template)
 
- (NSString*) stringByParsingTagsWithStartDelimeter:(NSString*)startDelim endDelimeter:(NSString*)endDelim usingObject:(id)object {
	NSScanner *theScanner;
	NSString *text = nil;
	NSMutableString *workString = [[self mutableCopy] autorelease];
 
	theScanner = [NSScanner scannerWithString:workString];
 
	while([theScanner isAtEnd] == NO) {
		[theScanner scanUpToString:startDelim intoString:NULL];
		[theScanner scanUpToString:endDelim intoString:&text];
		NSMutableString *tmp = [text mutableCopy];
		[tmp appendString:endDelim];
		text = [text stringByReplacingOccurrencesOfString:startDelim withString:@""];
 
		workString = [[workString stringByReplacingOccurrencesOfString:tmp withString:[object valueForKey:text]] mutableCopy];
		[tmp release];
	}
 
	return workString;}
 
@end

Das NSString Objekt wird dabei durch Categories um die Funktion stringByParsingTagsWithStartDelimeter:endDelimeter:usingObject:
erweitert. Das NSString Objekt sollte dabei das Template enthalten. Die zu ersetzenden Felder müssen mit einem Start- und Endbegrenzer eingefasst sein. Zum Beispiel:

<$ text />

In dem Fall sollte @”<$ ” und @” />” als Begrenzer angegeben werden. Als Objekt kann dann ein NSDictionary übergeben werden, dass unter dem Key “text” dann den zu ersetzenden Eintrag erhält. Es können aber auch andere Objekte benutzt werden die den Wert durch Key-Value-Programmierung zurückliefern.

Share/Save/Bookmark

noch mehr über pragma mark

Posted by admin | Development,Objective-C | Saturday 26 December 2009 00:40

Das folgende Pragma Statement in XCode erzeugt eine horizontale Trennlinie zwischen den einzelnen Einträgen:

#pragma mark -

hr line in xcode

Share/Save/Bookmark

iPhone App für EU Produkt Warnungen

Posted by admin | Development,iPhone | Sunday 13 December 2009 22:16

Eine neue App im iTunes Store informiert über Produktwarnungen der Europäischen Union. Enthalten sind alle Warnungen aus 2009 und es werden wöchentliche Updates bereitgestellt.
Da von der EU nur Informationen auf Englisch bereitgestellt werden können zur Zeit leider keine Übersetzungen angeboten werden.

avail_on_app_store2

Share/Save/Bookmark

Neue iPhone App Live-Strip Lite

Posted by admin | Development,iPhone | Sunday 13 December 2009 22:01

Für die NET-LINE Online-Dienste GmbH wurde eine iPhone App realisiert welche kostenlos im Store zum Download bereit steht:

Screenshot 2009.11.17 18.58.04

Screenshot 2009.11.17 19.00.21


avail_on_app_store2

Share/Save/Bookmark

Icons für die Tabbar

Posted by admin | Development,iPhone | Saturday 5 December 2009 00:02

Sehr schöne Icons für die Tabbar gibt es in diesem Blog.

Share/Save/Bookmark

Base64 Kodierung/Dekodierung auf dem iPhone

Posted by admin | Development,iPhone,Mac OS X,Objective-C | Wednesday 25 November 2009 10:51

Hier gibt es eine Base64 Implementierung als Erweiterung von NSData für das iPhone.

Share/Save/Bookmark

Lokalisierung einer iPhone App

Posted by admin | Development,iPhone,Mac OS X,Objective-C | Thursday 5 November 2009 19:01

Unter der Lokalisierung einer Anwendung versteht man allgemein die Übersetzung und Anpassung der Oberfläche in eine andere Spache. Wie das in XCode für XIB Dateien und im Quellcode durchgeführt wird soll dieses kleine Beispiel zeigen.

Wir starten mit einem neuen Projekt und wählen als Vorlage das View-based Application Template. Als Name habe ich LocalizationTest gewählt.

Wir öffnen die LocalizationTestViewController.h Datei und erweitern die Interface Definition um 2 UILabels:

@interface LocalizationTestViewController : UIViewController {
	IBOutlet UILabel *label1;
	IBOutlet UILabel *label2;
}

Als nächstes öffnen wir den Interface Builder durch Doppelklick auf die LocalizationTestViewController.xib Datei und fügen dort 3 UILabel Controls hinzu. Die ersten beiden verlinken wir durch CTRL-Klick und ziehen auf das File’s Owner Objekt mit den beiden Definitionen im View Controller label1 und label2. Das dritte Label füllen wir mit statischem englischen Text.

Wir gehen zurück in XCode und öffnen das Info Fenster für LocalizationTestViewController.xib. Unten links im General Tab befindet sich der Make File Lokalizable Button. Durch Klicken des Buttons wird für die .xib Datei die englische Default Loaklisierung angelegt. Durch Klick auf den Add Lokalization Button wird eine neue Version für die angegebene Sprache erstellt. Dafür müssen die 2 Buchstaben ISO Codes verwendet werden.

Im XCode ist jetzt ein kleiner Pfeil zum Aufklappen vor der LocalizationTestViewController.xib Datei aufgetaucht. Darunter finden wir die .xib Dateien für die angelegten Sprachen. Diese können normal geöffnet und bearbeitet werden. In unserem Fall ersetzen wir den englischen Text des dritten Labels durch einen deutschen. An den ersten beiden brauchen wir keine Änderung durchführen da wir deren Inhalt dynamisch im Code ändern werden.
Damit ist der erste Teil der Lokalisierung abgeschlossen.

Als nächstes erweitern wir die viewDidLoad Methode in LocalizationTestViewController.m um folgenden Code:

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
 
    NSLocale* curentLocale = [NSLocale currentLocale];
 
    label1.text = [NSString stringWithFormat:
		NSLocalizedString(@"The current locale is: %@",
		@"String used to display the current locale."),
		[curentLocale displayNameForKey:NSLocaleIdentifier
		value:[curentLocale localeIdentifier]]];
 
    label2.text = NSLocalizedString(@"This is my default value.", @"This is a comment about my default value string.");
 
    [super viewDidLoad];
}

Die wichtigste Funktion hier ist NSLocalizedString. Der erste Parameter ist der Key für die Sprachen Dateien und fungiert auch als Default Wert. Der zweite Parameter ist ein Kommentar, der später in der generierten Sprach Datei erscheint.

Für das erste UILabel erzeugen wir einen lokalosierbaren String mit Platzhalter, an dem wir das vom Benutzer eingestellte Local mit Hilfe der NSLocale Klasse ausgeben.

Für das zweite UILabel erzeugen wir mit einem einfacheren Beispiel nur einen einfachen String zur Ausgabe.

Um jetzt die Strings im Code zu lokalisieren müssen wir XCode leider verlassen. Wir öffnen ein Terminal Fenster und springen in das Hauptverzeichnis der Anwendung. Dort führen wir das folgende Kommando aus:

genstrings Classes/*.m

Dies erzeugt uns die Datei Localizable.strings mit folgendem Inhalt:

/* String used to display the current locale. */
"The current locale is: %@" = "The current locale is: %@";
 
/* This is a comment about my default value string. */
"This is my default value." = "This is my default value.";

Diese müssen wir jetzt unserem Projekt hinzufügen. Wir klicken dafür mit der rechten Maustaste auf den Reources Ordner und wählen Add existing File und dann Localizable.strings aus. Als Text Encoding wählen wir UTF-16.

Der weitere Ablauf ist analog der Lokalisierung der .xib Datei. Wir öffnen das Info Fenster für Localizable.strings, klicken auf Make File Lokalizable, dann auf den Add Lokalization Button und fügen dann de hinzu.

Jetzt öffnen wir die deutsche Version von Localizable.strings und ändern diese entsprechend ab:

/* String used to display the current locale. */
"The current locale is: %@" = "Das aktuelle Schema ist: %@";
 
/* This is a comment about my default value string. */
"This is my default value." = "Das ist mein Default Wert.";

Damit haben wir auch die Lokalisierung des Quellcode abgeschlossen.

Das XCode Projekt findet ihr hier.

Share/Save/Bookmark

Flash AS Code Snippet: RandomNumber

Posted by admin | Development,Flash | Wednesday 28 October 2009 13:22

Flash Actionscript Code Snippet. Die Funktion gibt eine Zufallszahl zwischen den angegebenen Minimal- und Maximalwert zurück:

function randomNumber(low:Number=NaN, high:Number=NaN):Number {
	var low:Number = low;
	var high:Number = high;
 
	if(isNaN(low)) {
		throw new Error("low must be defined");
	}
	if(isNaN(high)) {
		throw new Error("high must be defined");
	}
 
	return Math.round(Math.random() * (high - low)) + low;
}
Share/Save/Bookmark

« Previous PageNext Page »