Gifts Planner

Hallo Zusammen,

ich möchte euch meine neue App vorstellen: Gifts Planner.

Mit der App könnt ihr Geschenke planen. Meistens ist es doch so – braucht man Geschenke, hat man keine. Hat man welche, fehlt der Anlass. Kommt der Anlass, hat man alles schon wieder vergessen. Gleichzeitig könnt ihr Geschenke, die ihr bekommt verwalten. Die Idee kam von einem Arbeitskollegen, der schon öfters einem Freund Dinge doppelt geschenkt hat :D

Kontakte_DE_35

Weiterlesen

leicht gemacht: NSUserDefaults Startwerte festlegen

Hallo Zusammen,

in NSUserDefaults werden Einstellung des Nutzers für die App gespeichert – zum Beispiel, ob die App Sounds abspielen soll. Die Werte in NSUserDefaults werden persistiert und sind bei jedem Nachfolgenden Start wieder verfügbar. Als Speicherort für Spielständer ohne Ähnliches sollte es dennoch nicht genutzt werden.

Gelegentlich ist es sinnvoll für NSUserDefaults Startwerte zu initialisieren. So kann man zum Beispiel einstellen, dass der Sound einer App beim ersten Start einer App an ist. Einfach den Wert auf an stellen ist hier keine Option, da so bei jedem nachfolgenden Start der Wert immer wieder mit an überschrieben wird – auch wenn der Benutzer den Sound irgendwann aus gestellt hat. Auf den selben Weg können wir den ersten Start einer App herausfinden, um zum Beispiel dem Nutzer mit einem Tutorial zu unterstützen.

In applicationDidFinishLaunching registrieren wir die beschriebenen Werte mit ihren Startwerten.

- (void)applicationDidFinishLaunching:(UIApplication *)application {  

    [[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], @"isFirstLaunch",[NSNumber numberWithBool:YES], @"soundOn",nil]];   
}

In einer nachfolgenden init oder ViewDidLoad Methode können wir nun zum Beispiel den firstLaunch Wert abfragen. Liefert er YES zurück, wurde die App das erste mal gestartet und wir können besonderen Code ausführen. Natürlich dürfen wir nun nicht vergessen den Wert von isFirstLaunch auf NO zu setzten.

-(id) init {
      // Abfrage der vorher gesetzten Boolschen Variable in NSUserDefaults  
      if ([[NSUserDefaults standardUserDefaults] boolForKey:@"isFirstLaunch"]) {   
         // der erste Start -> was besonderes machen
         // anschließend isFirstLaunch auf NO setzten, so dass beim nächsten mal die FirstStart Routine nicht erneut aufgerufen wird 
         [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"isFirstLaunch"];    
}

Bis bald.

Tutorial: Game Center Leaderboards

Hallo Zusammen,

heute geht es um Game Center Leaderboards. Wahrscheinlich hat sich jeder der schon mal ein Spiel gespielt hat bewusst oder unbewusst in ein Leaderboard eingetragen. Leaderboards sind Ranglisten eines Spiels – wer ist schnellste, war sammelt die meisten Punkte?

In diesem Tutorial zeige ich euch, wie ihr Leaderboards in iTunes Connect erstellt und aus eurer App heraus Punkte berichtet.

Weiterlesen

Tutorial: PageViewController

Hallo Zusammen,

heute beschäftigen wir uns mit dem PageViewController. Ein PageViewController ist eine Art Container. Er hält mehrere Seite zusammen und ermöglicht es dem Nutzer durch diese zu blättern. Die “Seiten” sind jedoch vollwertige ViewController mit all ihren Möglichkeiten. Daraus ergeben sich natürlich spannende Kombinationen.

Ich wähle für dieses Tutorial die Kombination aus PageViewController und TableViewController – einfach weil es für diese Zusammenstellung nur wenig Tutorials gibt. Wir erstellen also eine App die drei TableViewController in einem PageViewController bündelt. Der Nutzer kann dann in der “fertigen” App seitlich durch die Tabellen swipen.

Am Ende des Tutorials werden wir 3 View Controller im Storyboard haben. Einen StartViewController, einen PageViewController und einen TableViewController. Der StartViewController wird beim starten der App aufgerufen und hat die Aufgabe den PageViewController zu erstellen, sowie die anzuzeigenden Daten vorzuhalten. Der PageViewController wiederum initialisiert beliebig viele TableViewController, je nach Bedarf.

Weiterlesen