FAQ - Mobile SDK¶
Do I need to send a flinkey Box to Apple in order to get my app approved?
Every version of your app will be reviewed by Apple and needs to be approved before you can submit your app to the Apple App Store. With this process in place Apple makes sure that an app complies to the guidelines and works as expected.
Apps using specific external hardware like a flinkey Box cannot be tested by Apple to the full extend. At this point it is not required to send the specific hardware to Apple.
So the answer is no, you do not have to send a flinkey Box to Apple. That being said we recommend providing a description and a video in the "App Review Information" section in App Store Connect.
Here is what we provided for the flinkey app:
The attached video "flinkey-demo.mp4" shows the interaction of the mobile app with the designated hardware. In addition you can get more insight on how the system works with our promo video:
In the attached video we show how a key is placed in the flinkey Box and how to operate the flinkey Box with the app (close box, open box).
How can I retrieve an idToken?
The idToken is a Java Web Token (JWT) which is required to authenticate mobile apps with the Tapkey Mobile Library. Your backend should provide an enpoint that delivers the idToken to your mobile app. In order to do so your backend needs to call the flinkey API. The reference documentation for this request can be found here.
Where can I find sample code regarding the Tapkey Mobile Library integration?
Is an internet connection required to operate the flinkey Box?
To operate the flinkey Box a valid digital key needs to be locally available on the device. The digital key is retrieved by the Tapkey Mobile Library via the Tapkey backend. For this task an internet connection is required. Once the digital key is present on the device the flinkey Box can be operated without internet connection as long as the digital key is valid. At this point a digital key is valid for 7 days.
How does a mobile app find the flinkey Box?
The flinkey Box is recognized via bluetooth advertising. The Tapkey Mobile SDK provides a class BleLockScanner that has methods to lookup flinkey Boxes in reach of the mobile device. Reference documentation is available for iOS and Android.
Which permissions need to be declared in AndroidManifest.xml?
The Tapkey Mobile Library needs to have access to the internet and to bluetooth. The following permissions need to be declared in the AndroidManifest.xml.
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.BLUETOOTH"/> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> <uses-permission-sdk-23 android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
What's the difference between a "physical lock id" and a "flinkey box id"?
The flinkey Box id is the actually printed on the flinkey Box (e.g. C1-1F-8E-7C). Therefore this id is best suited to identify the box. The physical lock id in contrast is a representation of the flinkey Box id that is required when using API methods of the Tapkey Mobile Library. The flinkey Box id can be converted to a physical lock id and vice versa. For the conversion of the ids we provide methods in the witte mobile library both for Android and iOS:
WITTE Mobile Library for Android
WITTE Mobile Library for Objective-C
What's a digital key?
A digital key is a piece of information locally available on the mobile device that is used by the Tapkey Mobile Library to trigger the flinkey Box in order to open or close the box. A digital key is retrived by the Tapkey Mobile Library for each flinkey Box a user is granted access to.
How long is a digital key valid?
While the users grant for a flinkey Box might be valid for an unlimited time, the validity of a digital key is limited to 7 days. Therefore digital keys need to be regularly renewed.
How are digital keys retrieved from the Tapkey backend?
The Tapkey Mobile Library provides a class NotificationManager which is used to retrieve new or updated keys from the Tapkey backend:
In addition please refer to Tapkeys documentation on "Polling for Data": https://developers.tapkey.io/mobile/android/getting_started/#polling-for-data
How are digital keys renewed or updated?
Digital keys are renewed or updated in the same ways they are initially retrieved. In addition your app should be enabled to regularly check for digital key updates while beeing in the background. Please refer to "How are digital keys retrieved from the Tapkey backend?".
How can I detect if a digital key is present on the mobile device and how long the digital key is valid?
The Tapkey Mobile SDK provides a class KeyManager. KeyManager's queryLocalKeys method provides all locally available keys as KeyDetails. The corresponding KeyDetails object contains the date and time until the digital is valid.
Which mobile platforms are supported by the Tapkey Mobile Library?
The Tapkey Mobile Library is available for Android and iOS.
Which Xcode version is required for iOS development using the Tapkey Mobile Library?
Each version of the Tapkey Mobile Library for iOS might require a different version of Xcode. This is due to the untilized Swift version which differs with Xcode version. At this point the latest Tapkey Mobile Library v184.108.40.206 is compatible with the latest Xcode version 11.3.1.
Can I use the Tapkey Mobile Library with Xamarin, Cordova, Flutter, React Native or other multiplatform toolkits?
There is no official suppport for multiplatform toolkits. That beeing said we have customers who managed to successfully integrate the Tapkey Mobile Library with Cordova and Flutter. The flinkey app is based on Xamarin.Android and Xamarin.iOS. In many cases one might need to write a wrapper or plugin for the Tapkey Mobile Library in order to be able to integrate the library in an multiplatform environment which comes with additional effort. Please get in touch with us to discuss the pros and cons of a multiplatform approach.
Where can I find reference documentation for the Tapkey Mobile SDK?
There is no API to tell the flinkey Box to open or close. Why is that?
Due to the construction of the flinkey Box it is not possible to tell the box directly to open or close. All we can ask the flinkey Box for is to change its state - we call this "triggering the box" - and the box will tell us via the box feedback what happend (box opened or box closed) after the event.
What is the box feedback?
The box feedback is a piece of information that is delivered by the flinkey Box after the box has been triggered. The box feedback contains the information if the box has been opened or closed.
How can I evaluate the box feedback and what information do I get?
The box feedback provides the information if the box has been opened, closed or if the box drawer is opened (and therefore neither opened or closed).
Box feedback interpretation (Android)
Box feedback interpretation (iOS)
How can I determine if the flinkey Box is opened or closed?
There is no way to determine if the box is opened or closed prior to triggering the box.