We are working in a project to develop a retail stock taking application. The application is developed using Xamarin native for Xamarin.IOS.
The application uses a 3rd party RFID reader to read RFID tags, the vendor has provided iOS native SDK and we have converted this to a Xamarin DLL using Xamarin provided tools.
We are facing performance issues while accessing an SDK function that starts to read the RFID tags in the store frontend. The function takes about 5 seconds to return. We observe the delay of 5 seconds only when using the Xamarin DLL from the Xamarin iOS native application. When the iOS SDK is used from iOS native application, there is zero delay.
The details of the development environment is here:
· Xamarin Environment: Xamarin Studio Community, V6.3
· Compilation/Build Option : Release Build, LLVM-Disabled, AOT enabled
Steps followed to generate Xamarin DLL from RFID reader iOS SDK
· Use Xamarin Binding Library Project include the ApiDefinition, StructsandEnum and Native SDK file and then Create the DLL in Release Build.
How the Xamarin DLL is used from the Mobile app.
· Include the Xamarin DLL in our project.
· Create instance for the RFID reader SDK.
· Create a Class and Inherit from the SDK classes
Sharpie tool – Options/Parameters used with the tool
assembly: LinkWith ("libsymbolrfid-sdk.a", SmartLink = true, ForceLoad = true)
Output from Sharpie tool
Output of Sharpie Tool is ApiDefinition.cs and StructsandEnum.cs files.
a. ApiDefinition Contains the Interface of Obective C Class.
b. StructsandEnum Contains just Enum Values used in Objective C Projects.