Gravar Aplicativos Swift Usando o SDK do Cliente iOS
Você desenvolve aplicativos móveis iOS usando o SDK do cliente iOS e as linguagens de programação Swift e Objective-C.
Usando o Xcode IDE:
- Adicione os arquivos de cabeçalho da ponte.
- Adicione os arquivos e as bibliotecas do cabeçalho SDK.
- Adicione o flag de vinculador Objective-C.
- Compile e vincule sua aplicação usando o SDK do cliente iOS como você faria com qualquer outro projeto iOS no Xcode. O uso do SDK com Swift tem todas as mesmas dependências que o uso do SDK com Objective-C.
Adicionar o Arquivo do Cabeçalho do Transição
Você precisa usar um arquivo de cabeçalho de ponte para importar os arquivos de cabeçalho das classes públicas Objective-C que sua aplicação Swift chama. Todas as classes públicas disponíveis no SDK do cliente Oracle Mobile Hub podem ser encontradas na pasta include
do SDK.
Para criar um arquivo de cabeçalho de ponte no Xcode:
Adicionar Cabeçalhos e Bibliotecas SDK a um Aplicativo Swift
O conjunto de cabeçalhos e bibliotecas adicionadas depende do que as bibliotecas estáticas do SDK do cliente você inclui na aplicação. No mínimo, você precisa das bibliotecas libOMCCore.a
e libIDMMobileSDK.a
.
Usar Objetos SDK em Aplicativos Swift
As regras para conversão de Objective-C em Swift estão bem descritas na documentação da Apple. Para obter informações gerais sobre o relacionamento e o uso desses dois idiomas juntos, verifique se você observa lá.
Saiba o seguinte:
-
O recurso de preenchimento automático do Editor de Código no Xcode geralmente funciona bastante para você obter os mapeamentos. No entanto, às vezes, ele coloca um label no primeiro parâmetro que não deve estar lá. Assista a ele se estiver usando o preenchimento automático.
-
Quando os métodos
init
Objective-C vêm à Swift, eles obtêm na sintaxe do inicializador Swift nativo. Isso significa que o prefixoinit
é reduzido e torna-se uma palavra-chave para indicar que o método é um inicializador. Consulte a documentação da Apple para obter detalhes completos. -
Preste atenção especial às especificações de parâmetros opcionais
!
e?
, bem como a quaisquer tipos paramétricos nas declarações. Os tipos opcionais são determinados automaticamente pelo compilador ao mapear Objective-C para Swift.
Você deverá estar apto a compilar e executar seu aplicativo móvel usando o Swift e o SDK do cliente Oracle Mobile Hub tanto no Xcode Simulator quanto em um dispositivo real.
Aqui está um exemplo de Objective-C e o código Swift comparável que usa o SDK do cliente Oracle Mobile Hub.
O código Objective-C a seguir para registrar um token do dispositivo para notificações de 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
}) ;
}];
pode ser escrito da seguinte maneira na 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);
};
}