Quienes desarrollan aplicaciones para el iPhone deben conocer la importancia de vincular estas con otros servicios que le brinden a nuestros usuarios la posibilidad de compartir información con sus contactos en las comunidades virtuales a las que pertenece. Facebook y Twitter son las más conocidas entre los usuarios (y las abordaremos en breve) existiendo para el caso especifico de los videojuegos en el iPhone tres comunidades que han tomado fuerza en los últimos meses: Plus+, ScoreLoop y OpenFeint. En este nuevo capitulo de la Guía de desarrollo para iPhone e iPad veremos como implementar OpenFeint por ser una de las más populares entre los usuarios y por permitir a los desarrolladores independientes acceder fácilmente a su API.

Características de OpenFeint

  • Contactar con otros jugadores por medio de anuncios, boletines y foros.
  • Ver que jugadores están conectados en ese momento.
  • Tabla de clasificación con los mejores puntajes y logros alcanzados.
  • Geolocalización de la tabla de clasificación integrada con GoogleMaps.
  • Ofrece diferentes formas de promocionar nuestras aplicaciones dentro de la comunidad.

Implementando OpenFeint en una aplicación

Ahora veremos como implementar esta herramienta en nuestra aplicación, para esto retomemos el proyecto creado en artículos anteriores sobre Chipmunk:

1. Lo primero que debemos hacer es registrarnos en OpenFeint.

2. Una vez registrados, podemos descargar el OpenFeint SDK en la parte superior derecha.

3. Descomprimimos y agregamos la carpeta “OpenFeint” a nuestro proyecto

4. Dependiendo de la vista que utilicemos es recomendable borrar una de las siguientes carpetas de nuestro proyecto: “Resources/Landscape” o “Resources/Portrait”

5. Hacemos clic  sobre nuestro proyecto en el panel “Groups & Files” y seleccionamos nuestro “Target”

6. Seleccionamos la pestaña “Build Settings” y nos aseguramos de tener en “Configuration” : “All Configurations”

7. Agregamos en “Other Linker Flags” el valor “-ObjC”

8. Nos aseguramos que esté seleccionado “Call C++ Default Ctors/Dtors in Objective-C” en la sección “GCC 4.2 – Code Generation”

9. Incluimos los siguientes Frameworks al proyecto

10. Ahora podemos ingresos los datos de nuestra aplicación en la web de OpenFeint para obtener el “ProductKey” y el “ProductSecret” que nos da acceso a la API.

11. Agregamos el archivo de cabecera “OpenFeint.h” e iniciamos OpenFeint en nuestra aplicación

#import "OpenFeint.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil] autorelease];
} else {
self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil] autorelease];
}
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];

// Inicia OpenFeint

NSDictionary* settings = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:UIInterfaceOrientationPortrait], OpenFeintSettingDashboardOrientation,
@"Nombre App", OpenFeintSettingShortDisplayName,
[NSNumber numberWithBool:YES], OpenFeintSettingEnablePushNotifications,
[NSNumber numberWithBool:NO], OpenFeintSettingDisableUserGeneratedContent,
[NSNumber numberWithBool:NO], OpenFeintSettingAlwaysAskForApprovalInDebug,
self.window, OpenFeintSettingPresentationWindow,
nil
];

[OpenFeint initializeWithProductKey:@"yourProductKey"
andSecret:@"yourProductSecret"
andDisplayName:@"Nombre App"
andSettings:settings
andDelegates:nil];

// Muestra Pantalla Principal de OpenFeint
[OpenFeint launchDashboard];

return YES;
}

12. Incluimos estas tres funciones de control para OpenFeint

>(void)applicationWillTerminate:(UIApplication *)application
{
// Finaliza OpenFeint
[OpenFeint shutdown];
}

(void)applicationDidBecomeActive:(UIApplication *)application
{
[OpenFeint applicationDidBecomeActive];
}

(void)applicationWillResignActive:(UIApplication *)application
{
[OpenFeint applicationWillResignActive];
}

13. Compilar y ejecutar

En estos momentos tenemos implementada la API de OpenFeint en nuestro proyecto. Ahora debemos agregar dentro del código fuente las funciones necesarias según los servicios que incorporemos: Achievements, Leaderboards, etc. Para más información revisar la documentación oficial.

¿Quiéres más ejemplos? Vamos a continuar ahora trabajando con un API muy conocido, el de twitter.

Repositorio en GitHub : MDW-GuiaiOS09-OpenFeint