كتابة تطبيقات Swift باستخدام iOS Client SDK

تقوم بتطوير تطبيقات iOS النقالة باستخدام SDK الخاصة بعميل iOS ولغات البرمجة Swift وAdoive - C.

استخدام Xcode IDE:

  1. إضافة ملفات العناوين المختصرة.
  2. إضافة مكتبات وملفات رأس SDK.
  3. قم بإضافة علامة الرابط الهدف - C.
  4. قم بتجميع التطبيق وربطه باستخدام SDK لعميل iOS كما تفعل مع أي مشروع iOS آخر في Xcode. يشتمل استخدام SDK مع Swift على نفس التبعيات المستخدمة مع SDK مع Objective - C.

إضافة ملف العنوان المرحلي

أنت بحاجة إلى استخدام ملف رأس دمجي لاستيراد ملفات الرأس الخاصة بالطبقات العمومية بلغة Objective - C التي تستدعيها تطبيق Swift. يمكن العثور على كل الطبقات العامة المتاحة في Oracle Mobile Hub client SDK في مجلد include الخاص بـ SDK.

لتكوين ملف عنوان مرحلي في Xcode:

  1. حدد ملف > جديد... > ملف... ثم من iOS/Source اختر ملف الرأس باستخدام أيقونة .h. يمكن تحديد أي اسم لملف عنوان مرحلي تم اختياره.
    تبعًا لطبقات SDK التي يستخدمها التطبيق ، يجب أن تبدو المحتويات بالشكل التالي:
    #ifndef GettingStartedSwift_Bridging_Header_h
    #define GettingStartedSwift_Bridging_Header_h
    
    #import "OMCCore.h"
    #import "OMCAuthorization.h"
    #import "OMCMobileBackend.h"
    #import "OMCMobileManager.h"
    #import "OMCServiceProxy.h"
    #import "OMCUser.h"
    
    #import "OMCStorage.h"
    #import "OMCMobileBackend+OMC_Storage.h"
    #import "OMCStorageCollection.h"
    #import "OMCStorageObject.h"
    
    #import "OMCSynchronization.h"
    #import "OMCMobileBackend+OMC_Synchronization.h"
    #import "OMCFetchObjectCollectionBuilder.h"
    #import "OMCMobileResource.h"
    #import "OMCSyncGlobals.h"
    
    #import "OMCAnalytics.h"
    #import "OMCMobileBackend+OMC_Analytics.h"
    
    #import "OMCNotifications.h"
    #import "OMCMobileBackend+OMC_Notifications.h"
    
    #import "OMCLocation.h"
    #import "OMCMobileBackend+OMC_Location.h"
    
    
    #endif /* GettingStartedSwift_Bridging_Header_h */
  2. بعد تكوين ملف الرأس ، لاحظ موقع الملف في إعدادات الإصدار لإعداد Objective-C Bridging Header.
    الأفضل للاحتفاظ بموقع الرأس المحدد ذي صلة بالمشروع ، بدلاً من اعتباره مسارًا مطلقًا ، وفي حالة مشاركة المشروع.

إضافة رؤوس ومكتبات SDK إلى تطبيق Swift

تعتمد مجموعة الرؤوس والمكتبات التي تضيفها على أي من مكتبات SDK الثابتة الخاصة بالعميل تقوم بتضمينها في التطبيق. بحد أدنى ، تحتاج إلى مكتبات libOMCCore.a و libIDMMobileSDK.a.

لإضافة عناوين مكتبات SDK:
  1. تنزيل Oracle Mobile Hub SDK وفك ضغطه.
  2. من الموقع الذي قمت بفك ضغط ملفات SDK ، قم بسحب المكتبات وملفات العناوين التي تريدها إلى مشروع Swift في رمز x.
    يتم ترتيب محتويات مكتبات SDK بشكل متدرج حسب الفئة ، لذا يلزم سحب المجلدات بالكامل للاحتفاظ بتضمين رؤوس أخرى.
  3. ضمن إعدادات إنشاء المراحل ، أضف المكتبات الثابتة بالإضافة إلى أطر iOS المطلوبة بواسطة مكتبة IDM إلى الارتباط بمرحلة المكتبات الثنائية .
  4. أضف ملفات الرأس إلى مسار البحث. أسفل إعدادات المشروع ، قم بتكوين Header Search Paths لتضمين موقع الدليل الرئيسي لمجلدات SDK ، أي ، الدليل الرئيسي لـ libOMCCore.a و libIDMMobileSDK.a وما إلى ذلك. تأكد من استخدام مسار نسبي للمشروع.
  5. قم بتحرير ملف عنوان مرحلي لتضمين ملفات العنوان التي تحتاجها بالفعل للرمز.
    ويعني ذلك أنك ستحتاج أيضًا إلى إضافة رؤوس مستخدمة بواسطة الكلاس التي ترغب في استخدامها.
    على سبيل المثال ، للتأكد من أن كل أساليب OMCAuthorization.h يمكن الوصول إليها ، تجب أيضًا إضافة OMAuthView.h و OMCUser.h و OMDefinitions.h. دون ظهور هذه الملفات في ملف رأس الإعداد ، لن تكون بعض الأساليب وخصائص OMCAuthorization مرئية ، ولن يقوم المجمع بتحذيرك بوجود أخطاء.

استخدام وحدات SDK في تطبيقات swift

كما يتم وصف قواعد التحويل من Objective - C إلى Swift بشكل جيد في وثائق Apple. للحصول على معلومات عامة حول العلاقة والاستخدام لهذه اللغات معًا ، تأكد من النظر في هناك.

شاهد عن ما يلي:

  • تعمل ميزة الإكمال التلقائي لمحرر التعليمات البرمجية في Xcode بشكل عام بدرجة كافية للحصول على التخطيطات. على أن أحيانًا تقوم بوضع تسمية في المعلمة الأولى غير المفترض أن تكون هناك هناك. يمكنك مشاهدة هذه السمة إذا كنت تستخدم الإكمال التلقائي.

  • عند انتقال أسلوب- C init إلى Swift ، فإنها تأخذ على صياغة أداة Swift الأولية المحلية. وهو ما يعني أن بادئة init يتم إيقافها ويصبح كلمة أساسية للإشارة إلى أن الأسلوب هو مهيئ. يرجى الاطلاع على وثائق Apple لمعرفة البيانات الكاملة.

  • دفع الانتباه الخاص إلى المواصفة الاختيارية ! و ? ، بالإضافة إلى أية أنواع محددة بمعلمات في التعريفات. ويتم تحديد الأنواع الاختيارية تلقائيًا بواسطة المجمع عند تخطيط الهدف - C إلى Swift.

يجب أن تكون قادرًا على تجميع تطبيقات الأجهزة المتنقلة وتشغيلها باستخدام Swift وعميل Oracle Mobile Hub SDK في كل من محاكي Xcode والجهاز الفعلي.

فيما يلي مثال لرمز الهدف - C ورمز الهدف القابل للمقارنة الذي يستخدم SDK لعميل Oracle Mobile Hub.

التعليم- C البرمجية التالية لتسجيل مقطع جهاز للإخطارات التلقائية بالرسائل:

// 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
	}) ;
}];

قد تكون مكتوبة بالطريقة التالية في سويفت:

@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);
	};
}