Ecrire des applications Swift à l'aide du SDK client iOS
Pour développer des applications mobiles iOS, utilisez le SDK client iOS et les langages de programmation Swift and Objective-C.
Utilisation de l'IDE Xcode :
- Ajoutez les fichiers d'en-tête de pont.
- Ajoutez les fichiers d'en-tête et les bibliothèques SDK.
- Ajoutez l'indicateur de liaison Objective-C.
- Compilez et liez votre application à l'aide du kit SDK client iOS comme n'importe quel autre projet iOS dans Xcode. L'utilisation du kit SDK avec Swift a toutes les mêmes dépendances que l'utilisation du kit SDK avec Objective-C.
Ajouter le fichier d'en-tête Bridging
Vous devez utiliser un fichier d'en-tête de passerelle pour importer les fichiers d'en-tête des classes publiques Objective-C que vos appels d'application Swift. Vous trouverez l'ensemble des classes publiques disponibles dans le kit SDK du client Oracle Mobile Hub dans le dossier include
du kit SDK.
Pour créer un fichier d'en-tête de pont dans Xcode, procédez comme suit :
Ajouter les en-têtes et bibliothèques SDK à une application Swift
L'ensemble d'en-têtes et de bibliothèques que vous ajoutez dépend des bibliothèques statiques du kit SDK client que vous incluez dans votre application. Vous avez besoin au minimum des bibliothèques libOMCCore.a
et libIDMMobileSDK.a
.
Utiliser des objets SDK dans les applications Swift
Les règles de conversion d'Objective-C en Swift sont correctement décrites dans la documentation Apple. Pour obtenir des informations générales sur la relation et l'utilisation de ces deux langues ensemble, assurez-vous que vous y trouvez.
Regardez les points suivants :
-
La fonction d'écriture automatique de l'éditeur de code dans Xcode fonctionne généralement assez pour vous permettre d'obtenir les mappings. Cependant, il place parfois le libellé du premier paramètre qui n'est pas supposé y figurer. Regardez cette règle si vous utilisez la saisie automatique.
-
Lorsque les méthodes Objective-C
init
renvoient à Swift, elles prennent la syntaxe native Swift initializer. Cela signifie que le préfixeinit
est réduit et devient un mot-clé indiquant que la méthode est un initialiseur. Pour plus d'informations, reportez-vous à la documentation d'Apple. -
Prêtez une attention particulière aux spécifications de paramètres facultatifs
!
et?
, ainsi qu'aux types parametrized des déclarations. Les types facultatifs sont déterminés automatiquement par le compilateur lors du mapping entre Objective-C et Swift.
Vous devez pouvoir compiler et exécuter votre application mobile à l'aide de Swift et du SDK client Oracle Mobile Hub sur le simulateur Xcode et sur un appareil réel.
Voici un exemple d'Objective-C et du code Swift comparable qui utilise le SDK client Oracle Mobile Hub.
Code Objective-C suivant permettant d'inscrire un jeton de dispositif pour les notifications 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
}) ;
}];
peut être écrit comme suit dans 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);
};
}