Escritura de Aplicaciones Swift con el SDK de Cliente iOS
Para desarrollar aplicaciones móviles iOS, utilice el SDK de cliente iOS y los lenguajes de programación Swift y Objective-C.
Utilizando IDE de Xcode:
- Agregue los archivos de cabecera de puentes.
- Agregue las bibliotecas y los archivos de cabecera de SDK.
- Agregue el indicador Objective-C linker.
- Compile y enlace la aplicación con el SDK del cliente iOS como lo haría con cualquier otro proyecto de iOS en Xcode. El uso del SDK con Swift tiene todas las mismas dependencias que el SDK con el contenedor de objetos.
Agregar el archivo de cabecera de puente
Debe utilizar un archivo de cabecera de puente para importar los archivos de cabecera de las clases públicas Objective-C que la aplicación Swift llama. Todas las clases públicas disponibles en el SDK del cliente de Oracle Mobile Hub se pueden encontrar en la carpeta include
del SDK.
Para crear un archivo de cabecera de puente en Xcode:
Agregar Cabeceras y Bibliotecas de SDK a una Aplicación Swift
El juego de cabeceras y bibliotecas que agregue depende de cuáles de las bibliotecas estáticas de SDK de cliente que incluya en su aplicación. Como mínimo, necesita las bibliotecas libOMCCore.a
y libIDMMobileSDK.a
.
Usar Objetos de SDK en Aplicaciones Swift
Las reglas para convertir de Objective-C a Swift se describen correctamente en la documentación de Apple. Para obtener información general sobre la relación y el uso de estos dos idiomas juntos, asegúrese de estar allí.
Vea lo siguiente:
-
La función de terminación automática del editor de códigos en Xcode funciona normalmente lo suficiente para obtener las asignaciones. Sin embargo, a veces coloca una etiqueta en el primer parámetro que no debería estar ahí. Observarlo si utiliza la terminación automática.
-
Cuando se vuelven a activar los métodos Objective-C
init
a Swift, se obtienen con la sintaxis del inicializador Swift nativo. Esto significa que el prefijoinit
se desglosa y se convierte en una palabra clave para indicar que el método es un inicializador. Consulte la documentación de Apple para obtener más información. -
Preste especial atención a las especificaciones de los parámetros opcionales
!
y?
, así como a cualquier tipo parametrizado en las declaraciones. Los tipos opcionales los determina de modo automático el compilador al asignar Objective-C a Swift.
Debería poder compilar y ejecutar la aplicación móvil con Swift y el SDK del cliente de Oracle Mobile Hub tanto en el simulador Xcode como en un dispositivo real.
A continuación se muestra un ejemplo de Objective-C y el código Swift comparable que utiliza el SDK del cliente de Oracle Mobile Hub.
El siguiente código Objective-C para registrar un token de dispositivo para notificaciones push:
// Get notifications sdk object
OMCNotifications* notifications = [[appDelegate myMobileBackend] notifications];
// Register device token with MCS server using notifications sdk
[notifications registerForNotifications:[appDelegate getDeviceTokenData]
onSuccess:^(NSHTTPURLResponse *response) {
NSLog(@"Device token registered successfully on MCS server");
dispatch_async(dispatch_get_main_queue(), ^{
// Update UI here
}) ;
}
onError:^(NSError *error) {
NSLog(@"Error: %@", error.localizedDescription);
dispatch_async(dispatch_get_main_queue(), ^{
// Update UI here
}) ;
}];
se puede escribir de la siguiente forma en Swift:
@IBAction func registerForPushNotifications() {
// Get notifications sdk object
let notifications = appDelegate.myMobileBackend().notifications();
// Get device token first, and assign it here
let deviceTokenData:NSData! = nil;
// Register device token with MCS server using notifications sdk
notifications.registerForNotifications(deviceTokenData, onSuccess: { (response:NSHTTPURLResponse!) in
NSLog("Device token registered successfully on MCS server");
dispatch_async(dispatch_get_main_queue()) {
// Update UI here
}
}) { (error) in
print("Error: %@", error.localizedDescription);
};
}