Scrivere applicazioni Swift mediante il kit SDK client iOS
È possibile sviluppare applicazioni Mobile iOS utilizzando il kit SDK client iOS e i linguaggi di programmazione Swift e Objective-C.
Utilizzo dell'IDE Xcode:
- Aggiungere i file di intestazione di creazione.
- Aggiungere i file di intestazione e le librerie SDK.
- Aggiungere il flag del linker Objective-C.
- Compila e collega l'applicazione utilizzando il kit SDK client iOS come qualsiasi altro progetto iOS in Xcode. L'utilizzo di SDK con Swift ha tutte le stesse dipendenze dell'utilizzo di SDK con Objective-C.
Aggiungi file di intestazione Bridging
È necessario utilizzare un file di intestazione bridging per importare i file di intestazione delle classi pubbliche Objective-C chiamate dall'applicazione Swift. Tutte le classi pubbliche disponibili nel kit SDK client Oracle Mobile Hub sono disponibili nella cartella include
del kit SDK.
Per creare un file di intestazione bridging in Xcode, effettuare le operazioni riportate di seguito.
Aggiungere le intestazioni e le librerie SDK a un'applicazione Swift
Il set di intestazioni e librerie aggiunte dipende dalle librerie statiche del kit SDK client incluse nell'applicazione. È necessario disporre almeno delle librerie libOMCCore.a
e libIDMMobileSDK.a
.
Usa oggetti SDK nelle applicazioni Swift
Le regole per la conversione da Objective-C a Swift sono descritte in modo corretto nella documentazione Apple. Per informazioni generali sulla relazione e l'uso di queste due lingue, assicurarsi che ci si stia visualizzando.
Per quanto segue, verificare quanto riportato di seguito.
-
La funzione Completamento automatico dell'Editor di codice in Xcode funziona in genere con una funzionalità sufficiente per ottenere i mapping. A volte tuttavia inserisce un'etichetta nel primo parametro che non dovrebbe trovarsi in quella posizione. Eseguire questa operazione se si utilizza la funzionalità Completamento automatico.
-
Quando i metodi
init
Objective-C passano a Swift, utilizzano la sintassi dell'inizializzatore Swift nativo. Ciò significa che il prefissoinit
viene suddiviso e diventa una parola chiave per indicare che il metodo è un inizializzatore. Per informazioni complete, consultare la documentazione Apple. -
Prestare particolare attenzione alle specifiche dei parametri
!
e?
facoltativi, nonché agli eventuali tipi parametrizzati nelle dichiarazioni. I tipi facoltativi sono determinati automaticamente dal compilatore durante il mapping di Objective-C a Swift.
Dovrebbe essere possibile compilare ed eseguire l'applicazione Mobile utilizzando Swift e il kit SDK client Oracle Mobile Hub sia sul simulatore Xcode che su un dispositivo effettivo.
Di seguito è riportato un esempio di Objective-C e il codice Swift confrontabile che utilizza il kit SDK client Oracle Mobile Hub.
Il seguente codice Objective-C per registrare un token dispositivo per le notifiche 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
}) ;
}];
potrebbe essere scritto nel modo seguente in 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);
};
}