Demostración de principio a fin en iOS

improve this page | report issue

Información general

El propósito de esta demostración es presentar un flujo de principio a fin:

  1. Desde MobileFirst Operations Console se registrará y descargará una aplicación de ejemplo que está empaquetada de forma previa con el SDK de cliente de MobileFirst
  2. Se desplegará un adaptador nuevo o uno que se proporcione en MobileFirst Operations Console.
  3. Se cambiará la lógica de la aplicación para realizar una solicitud de recurso.

Resultado final:

  • Ping satisfactorio a MobileFirst Server.
  • Recuperación satisfactoria de datos utilizando un adaptador.

Requisitos previos:

  • Xcode
  • Opcional. MobileFirst CLI (descargar)
  • Opcional. MobileFirst Server autónomo (descargar)

1. Cómo iniciar MobileFirst Server

Asegúrese de haber creado una instancia de Mobile Foundation, o
Si está utilizando MobileFirst Developer Kit, vaya hasta la carpeta del servidor y ejecute el mandato ./run.sh en Mac y Linux o run.cmd en Windows.

2. Creación de una aplicación

En una ventana de navegador, abra MobileFirst Operations Console cargando el URL: http://su-host-servidor:su-puerto-servidor/mfpconsole. Si lo está ejecutando de forma local, utilice http://localhost:9080/mfpconsole. El nombre de usuario y la contraseña son admin/admin.

  1. Pulse el botón Nuevo junto a Aplicaciones
    • Seleccione la plataforma iOS
    • Especifique com.ibm.mfpstarteriosobjectivec o com.ibm.mfpstarteriosswift como identificador de aplicación (dependiendo del armazón de la aplicación lo descargará en el siguiente paso)
    • Especifique 1.0 como valore de versión
    • Pulse Registrar aplicación

    Registrar una aplicación

  2. Pulse en la ventana Obtener código de inicio para seleccionar y descargar la aplicación iOS de ejemplo.

    Descargar aplicación de ejemplo

3. Edición de la lógica de la aplicación

  1. Abra el proyecto Xcode efectuando una doble pulsación sobre el archivo .xcworkspace.

  2. Seleccione el archivo [project-root]/ViewController.m/swift y pegue el siguiente fragmento de código, sustituyendo la función getAccessToken() existente:

    En Objective-C:

    - (IBAction)getAccessToken:(id)sender {
    _testServerButton.enabled = NO;
    NSURL *serverURL = [[WLClient sharedInstance] serverUrl];
    _connectionStatusLabel.text = [NSString stringWithFormat:@"Connecting to server...\n%@", serverURL];
        
    NSLog(@"Testing Server Connection");
    [[WLAuthorizationManager sharedInstance] obtainAccessTokenForScope:@"" withCompletionHandler:^(AccessToken *token, NSError *error) {
         if (error != nil) {
             _titleLabel.text = @"Bummer...";
             _connectionStatusLabel.text = [NSString stringWithFormat:@"Failed to connect to MobileFirst Server\n%@", serverURL];
             NSLog(@"Did not receive an access token from server: %@", error.description);
         } else {
             _titleLabel.text = @"Yay!";
             _connectionStatusLabel.text = [NSString stringWithFormat:@"Connected to MobileFirst Server\n%@", serverURL];
             NSLog(@"Received the following access token value: %@", token.value);
                
             NSURL* url = [NSURL URLWithString:@"/adapters/javaAdapter/resource/greet/"];
             WLResourceRequest* request = [WLResourceRequest requestWithURL:url method:WLHttpMethodGet];
                
             [request setQueryParameterValue:@"world" forName:@"name"];
             [request sendWithCompletionHandler:^(WLResponse *response, NSError *error) {
                 if (error != nil){
                     NSLog(@"Failure: %@",error.description);
                 }
                 else if (response != nil){
                     // Will print "Hello world" in the Xcode Console.
                     NSLog(@"Success: %@",response.responseText);
                 }
             }];
         }
    
         _testServerButton.enabled = YES;
     }];
    }
    

    En Swift:

    @IBAction func getAccessToken(sender: AnyObject) {
         self.testServerButton.enabled = false
            
         let serverURL = WLClient.sharedInstance().serverUrl()
            
         connectionStatusLabel.text = "Connecting to server...\n\(serverURL)"
         print("Testing Server Connection")
         WLAuthorizationManager.sharedInstance().obtainAccessTokenForScope(nil) { (token, error) -> Void in
                
             if (error != nil) {
                 self.titleLabel.text = "Bummer..."
                 self.connectionStatusLabel.text = "Failed to connect to MobileFirst Server\n\(serverURL)"
                 print("Did not recieve an access token from server: " + error.description)
             } else {
                 self.titleLabel.text = "Yay!"
                 self.connectionStatusLabel.text = "Connected to MobileFirst Server\n\(serverURL)"
                 print("Recieved the following access token value: " + token.value)
                    
                 let url = NSURL(string: "/adapters/javaAdapter/resource/greet/")
                 let request = WLResourceRequest(URL: url, method: WLHttpMethodGet)
                    
                 request.setQueryParameterValue("world", forName: "name")
                 request.sendWithCompletionHandler { (response, error) -> Void in
                     if (error != nil){
                         NSLog("Failure: " + error.description)
                     }
                     else if (response != nil){
                         NSLog("Success: " + response.responseText)
                     }
                 }
             }
                
             self.testServerButton.enabled = true
         }
    }
    

4. Despliegue un adaptador

Descargue this prepared .adapter artifact y despliéguelo desde MobileFirst Operations Console con la acción Acciones → Desplegar adaptador.

Como alternativa, pulse el botón Nuevo junto a Adaptadores.

  1. Seleccione la opción Acciones → Descargar ejemplo. Descargue el ejemplo de adaptador Java de ejemplo “Hello World”.

    Si Maven y MobileFirst CLI no están instalados, siga las instrucciones de Definir su entorno de desarrollo en la pantalla.

  2. Desde una ventana de línea de mandatos, vaya a la carpeta raíz del proyecto Maven del adaptador y ejecute el mandato:

    mfpdev adapter build
    
  3. Cuando finalice la construcción, despliéguelo desde MobileFirst Operations Console con la acción Acciones → Desplegar adaptador. El adaptador se puede encontrar en la carpeta [adapter]/target.

    Desplegar un adaptador

Aplicación de ejemplo

5. Prueba de la aplicación

  1. En Xcode, seleccione el archivo mfpclient.plist y edite las propiedades protocol, host y port con los valores correctos para su instancia de MobileFirst Server.

    • Si está utilizando una instancia de MobileFirst Server local, los valores habitualmente son http, localhost y 9080.
    • Si está utilizando una instancia remota de MobileFirst Server (en Bluemix), los valores habitualmente son https, dirección-su-servidor y 443.

    Como alternativa, si ha instalado MobileFirst CLI, navegue hasta la carpeta raíz del proyecto y ejecute el mandato mfpdev app register. Si se utiliza una instancia remota de MobileFirst Server, ejecute el mandato mfpdev server add para añadir el servidor, seguido por ejemplo por mfpdev app register myBluemixServer.

  2. Pulse el botón Reproducir.


Resultados

  • Pulsando el botón Ping MobileFirst Server visualizará Conectado a MobileFirst Server.
  • Si la aplicación se pudo conectar a MobileFirst Server, tendrá lugar una llamada de solicitud de recurso con el adaptador Java desplegado.

La respuesta del adaptador se visualiza entonces en la consola de Xcode.

Imagen de una aplicación que llamó de forma satisfactoria a un recurso desde MobileFirst Server

Siguientes pasos

Aprenda más sobre cómo utilizar adaptadores en aplicaciones, y cómo integrar servicios adicionales como, por ejemplo, notificaciones push, utilizando la infraestructura de seguridad de MobileFirst entre otras cosas:

Last modified on April 25, 2017