This package gives wrapper methods for Desk360 SDK.

Overview

Desk360 (flutter sdk)

  • This package gives wrapper methods for desk360 sdks. iOS - Android

Getting started

Add below code into your pubspec.yaml file under dependencies section.

desk360flutter:
    git:
      url: https://github.com/Teknasyon-Teknoloji/desk360-flutter-sdk.git
      ref: 0.1.0

And run $ flutter pub get

Installation Notes

  • IOS

    • Set minimum ios version 10.0 or higher in ios/Podfile like: platform :ios, '10.0'
    • Add use_frameworks! into ios/Podfile if not exists.
    • Run $ cd ios && pod install
  • ANDROID

    • Set kotlin_version "1.4.32" or higher in android/build.gradle
    • Set minSdkVersion to 21 or higher in android/app/build.gradle
    • Add maven { url 'https://raw.githubusercontent.com/Teknasyon-Teknoloji/desk360-android-sdk/master/' } into android/build.gradle (Add into repositories under allprojects)

Usage

Let's start

Important footnot

You must add your info.plist file.


   
    NSPhotoLibraryUsageDescription
   

   
    Allow the app to access your photos.
   

Permission text is optional. you can type whatever you want. But this permission not optional. If you didn't add this permission. Desk360 Images attachment property doesn't work

Start Desk360 with appId -and an optinal deviceId, an optional language-

Note: If no deviceId is provided, Desk360 will use device's UUID, which might cause your app to lose tickets when the application is deleted. If use environment type .production, Desk360 will look at prod url. If no application language is provided, Desk360 will use device's language.

import 'package:desk360flutter/enums/environments.dart';
import 'package:desk360flutter/enums/platforms.dart' as Platforms;
import 'package:flutter/material.dart';
import 'package:desk360flutter/desk360flutter.dart';

if (Platform.isIOS) {
    Desk360flutter.start(properties: {
    "appID": "aOJe1THakL03kwONmc2U4utYCeW16zJr",
    "deviceID": "34567",
    "languageCode": 'en',
    "environment": Environment.SANDBOX.value,
    "countryCode": 'tr',
    "bypassCreateTicketIntro": true,
    });
    Desk360flutter.show(animated: true);
} else {
    var androidDeviceInfo = await deviceInfo.androidInfo;
    var deviceId = androidDeviceInfo.androidId;
    Desk360flutter.initialize({
    "appID": "aOJe1THakL03kwONmc2U4utYCeW16zJr",
    "appVersion": "1.0.0",
    "languageCode": 'en',
    "environment": Environment.SANDBOX.value,
    "platform": Platforms.Platform.GOOGLE.value,
    "countryCode": 'tr',
    "name": "Test-092021"
    }, "", deviceId);
    Desk360flutter.start();
}

Using Desk360

import 'package:desk360flutter/desk360flutter.dart';

Desk360flutter.getTicketId()
          .then((value) => {print("Ticket ID: $value")});

Using Optional Notification System

If you need to send a notification when a message is sent to the users. You have to do this integration in ios.

import Desk360

@UIApplicationMain
final class AppDelegate: UIResponder, UIApplicationDelegate {

  func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
       Desk360.setPushToken(deviceToken: deviceToken)
  }
  
}

After the above integration, it is sufficient to make the notification certificate settings in the Desk360 admin panel. You can now use notifications

Also if you want notification redirect deeplink system. You should some extra integration.

import Desk360

@UIApplicationMain
final class AppDelegate: UIResponder, UIApplicationDelegate {
  
  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
  
      Desk360.applicationLaunchChecker(launchOptions)
      if #available(iOS 10.0, *) {
          let center = UNUserNotificationCenter.current()
          center.delegate = self
      }
      return true
      
    }
}

// MARK: - UNUserNotificationCenterDelegate
extension AppDelegate: UNUserNotificationCenterDelegate {

  func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
      completionHandler([.alert])
      Desk360.willNotificationPresent(notification.request.content.userInfo)
  }

  func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
      Desk360.applicationUserInfoChecker(userInfo)
  }
  
  @available(iOS 10.0, *)
  public func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
      Desk360.applicationUserInfoChecker(response.notification.request.content.userInfo)
  }
}

When you click on the notification when your application is closed, you need to add this code on which page you want Des360 to open.

import 'package:desk360flutter/desk360flutter.dart';

...
Desk360flutter.showWithPushDeeplink();
...

Getting the unread tickets

If you would like to get a list of the unread tickets you can do so like follows:

  Desk360flutter.getUnreadTickets().then( (results) {
      print(results);
  });

You can show the unread tickets the way that fits your app design and expierence. If you want to navigate to a specific ticket detail you can do so so by following:

  Desk360flutter.ticketDetailsViewController(unreadTicket);

Customize Desk360 Theme

You should use Desk360 dashboard for custom config.

Support

If you have any questions or feature requests, please create an issue.

License

Desk360 is released under the MIT license. See LICENSE for more information.

You might also like...
Release repo for Gini Bank SDK for iOS
Release repo for Gini Bank SDK for iOS

Gini Bank SDK for iOS The Gini Bank SDK provides components for capturing, reviewing and analyzing photos of invoices and remittance slips. By integra

Sdk for Heap challenge

Heap SDK challenge how to: Introduction I developed Heap SDK with two test applications I built as a challenge for two companies ( Fleetio & Divvy ) d

Da Xue Zhang Platform Lvb iOS SDK

Cloud_Lvb_SDK iOS API Reference Dxz Meeting iOS SDK是为 iOS 平台用户音视频服务的开源 SDK。通过大学长开放平台自研RTC,RTM系统,为客户提供质量可靠的音视频服务。 类 类名 描述 CLS_PlatformManager SDK的音视频主要

Swift SDK for Blockfrost.io API
Swift SDK for Blockfrost.io API

Swift5 API client for Blockfrost Swift 5 SDK for Blockfrost.io API. Installation • Usage • API Endpoints Installation Swift package manager dependenci

PayPal iOS SDK

PayPal iOS SDK Welcome to PayPal's iOS SDK. This library will help you accept card, PayPal, Venmo, and alternative payment methods in your iOS app. Su

Unofficial Notion API SDK for iOS & macOS
Unofficial Notion API SDK for iOS & macOS

NotionSwift Unofficial Notion SDK for iOS & macOS. This is still work in progress version, the module interface might change. API Documentation This l

150,000+ stickers API & SDK for iOS Apps.
150,000+ stickers API & SDK for iOS Apps.

English | 한국어 Stipop UI SDK for iOS Stipop SDK provides over 150,000 .png and .gif stickers that can be easily integrated into mobile app chats, comme

WalletConnect Swift SDK v2

Wallet Connect v.2 - Swift Swift implementation of WalletConnect v.2 protocol for native iOS applications. Requirements iOS 13 XCode 13 Swift 5 Usage

SingleEntry in SwiftUI using the Capture SDK
SingleEntry in SwiftUI using the Capture SDK

SingleEntrySwiftUI for iOS Simple iOS app with SwiftUI for showing the use of Capture SDK. IMPORTANT When using/installing CocoaPods in a new project,

Comments
  • Flutter App not synced with dashboard

    Flutter App not synced with dashboard

    Step 1: I implemented desk360 in a flutter Step 2: Created a dashboard at https://desk360.com Step 3: I created a new product Step 4: Grabbed SDK App key from the product Step 5: Implemented SDK app key as appId

                        Desk360flutter.start(
                          properties: {
                            'appID': appId,
                            'deviceID': '345679',
                            'languageCode': 'en',
                            'environment': Environment.PRODUCTION.value,
                            'countryCode': 'fr',
                            'bypassCreateTicketIntro': true,
                          },
                        );
    

    But I am synced with the dashboard.. it is showing the default screen in an app like the below: image

    opened by bibash28 0
  • crash app on android

    crash app on android

    Desk360flutter.start() crash my android app after the loading screen.

    here is relevant console result E/FLUTTER (22948): io.flutter.plugin.common.MethodCall@e030a72 E/FLUTTER (22948): io.flutter.plugin.common.MethodCall@1735bbe D/OkHttp (22948): --> POST https://teknasyon.desk360.com/api/v1/sdk/configurations D/OkHttp (22948): Content-Type: application/json; charset=UTF-8 D/OkHttp (22948): Content-Length: 42 D/OkHttp (22948): Authorization: Bearer HoV8gyw2KIGtTcrSqX0S7xjyHcUEN3uJhboYLUHwxcVZzVP9tCohHkMg3iyIMj7Q8vxQOJjMMIaT6owR D/OkHttp (22948): {"country_code":"PK","language_code":"en"} D/OkHttp (22948): --> END POST (42-byte body) D/ColorViewRootUtil(22948): initSwipState, isDisplayCompatApp false D/ColorViewRootUtil(22948): mScreenHeight 1600, mScreenWidth 720 D/WindowManager(22948): Add to mViews: DecorView@7239c3a[Desk360SplashActivity], this = android.view.WindowManagerGlobal@876ab23,pkg= com.gomeat.app I/Choreographer(22948): Skipped 1 frames! The application may be doing too much work on its main thread. I/Choreographer(22948): Skipped 12 frames! The application may be doing too much work on its main thread. D/ColorViewRootUtil(22948): initSwipState, isDisplayCompatApp false D/ColorViewRootUtil(22948): mScreenHeight 1600, mScreenWidth 720 D/SurfaceView(22948): 127400373 updateRequestedVisibility, mViewVisibility:true, mWindowVisibility:false, mWindowStopped:false by android.view.SurfaceView.onWindowVisibilityChanged:301 android.view.View.dispatchWindowVisibilityChanged:14512 android.view.ViewGroup.dispatchWindowVisibilityChanged:1590 android.view.ViewGroup.dispatchWindowVisibilityChanged:1590 android.view.ViewGroup.dispatchWindowVisibilityChanged:1590 android.view.ViewGroup.dispatchWindowVisibilityChanged:1590 android.view.ViewRootImpl.performTraversals:2366 android.view.ViewRootImpl.doTraversal:2034 I/SurfaceView(22948): 127400373 Changes: creating=false format=false size=false visible=true alpha=false mUseAlpha=false visible=true left=false top=false I/SurfaceView(22948): 127400373 Cur surface: Surface(name=null)/@0x2405d6f, visible=false I/SurfaceView(22948): 127400373 visibleChanged:true -> SurfaceHolder.Callback.surfaceDestroyed I/PswFrameworkFactoryImpl(22948): get feature:IPswScreenModeFeature V/SurfaceView(22948): Layout: x=0 y=0 w=720 h=1600, frame=Rect(0, 0 - 720, 1600) D/SurfaceView(22948): 105265327 windowPositionLost, frameNr = 0 I/SurfaceView(22948): 127400373 updateSurface this = io.flutter.embedding.android.FlutterSurfaceView{797f9b5 V.E...... ........ 0,0-720,1600} surface.isValid = false D/SurfaceView(22948): 127400373 updateSurface: no valid surface D/SurfaceView(22948): 127400373 updateRequestedVisibility, mViewVisibility:true, mWindowVisibility:false, mWindowStopped:true by android.view.SurfaceView.windowStopped:266 android.view.ViewRootImpl.setWindowStopped:1763 android.view.WindowManagerGlobal.setStoppedState:687 android.app.Activity.performStop:8209 android.app.ActivityThread.callActivityOnStop:4939 android.app.ActivityThread.performStopActivityInner:4917 android.app.ActivityThread.handleStopActivity:4999 android.app.servertransaction.StopActivityItem.execute:41 I/SurfaceView(22948): 127400373 updateSurface this = io.flutter.embedding.android.FlutterSurfaceView{797f9b5 V.E...... ........ 0,0-720,1600} surface.isValid = false D/SurfaceView(22948): 127400373 updateSurface: no valid surface I/SurfaceView(22948): 127400373 updateSurface this = io.flutter.embedding.android.FlutterSurfaceView{797f9b5 V.E...... ........ 0,0-720,1600} surface.isValid = false D/SurfaceView(22948): 127400373 updateSurface: no valid surface D/OkHttp (22948): <-- 200 OK https://teknasyon.desk360.com/login (1151ms) D/OkHttp (22948): Date: Thu, 20 Oct 2022 20:01:48 GMT D/OkHttp (22948): Content-Type: text/html; charset=UTF-8 D/OkHttp (22948): Transfer-Encoding: chunked D/OkHttp (22948): Connection: keep-alive D/OkHttp (22948): Server: nginx/1.20.0 D/OkHttp (22948): Cache-Control: no-cache, private D/OkHttp (22948): X-Frame-Options: SAMEORIGIN D/OkHttp (22948): Set-Cookie: XSRF-TOKEN=eyJpdiI6ImhUODI3WGVmQWdDZ1hEd3Q0YkNmQ1E9PSIsInZhbHVlIjoibEpBZU0yWFBZbHdZMGlNM3loYzJ2aDlOUWFnYUJlQ1ZCVzlLS2J5XC9DNndnWnBDbm4wSk11TzZ5Vkl5bm1qeDQiLCJtYWMiOiJhMmY2YTEyMzQyYWE1YTM1MWQ4NGVmOTYxOWZiYjYwMDM0OTNkMGNhMDgzYTRhY2UxMWUxNTkxYTY5Yjg5ZDNjIn0%3D; expires=Sat, 19-Nov-2022 20:01:48 GMT; Max-Age=2592000; path=/; secure D/OkHttp (22948): Set-Cookie: desk360_session=eyJpdiI6InJTYjQrV2RNOGdhTVNEekpwRFBzOUE9PSIsInZhbHVlIjoidmNydXhwYXRnOXAxUFBaK0pJQzFpU3hwSTN1eWI0ZlZCQ21xc0NiXC9DNkNQa0x2YmRwVFFaYVpYTHVcL284RUJ0IiwibWFjIjoiOGI3YWRjMDRiMDQ0ODg2MDFkYzdkM2FlMTYwZWM0MDM5ODZmMmY1YTYwNmNjYmI4NTM1Nzk1N2MwMWZhOWUyMiJ9; expires=Sat, 19-Nov-2022 20:01:48 GMT; Max-Age=2592000; path=/; secure; httponly D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): Desk360 D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948):

    D/OkHttp (22948): D/OkHttp (22948):
    D/OkHttp (22948): D/OkHttp (22948):
    D/OkHttp (22948):
    D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948):
    D/OkHttp (22948): D/OkHttp (22948):
    D/OkHttp (22948):

    Sign in to your teknasyon

    D/OkHttp (22948):

    teknasyon.desk360.com

    D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948):
    D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948):
    D/OkHttp (22948):
    D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): <-- END HTTP (4588-byte body) E/desk360-Failure(22948): Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $ W/ActivityThread(22948): handleWindowVisibility: no activity for token android.os.BinderProxy@5726f97 W/com.gomeat.app(22948): Accessing hidden method Landroid/content/ContextWrapper;->getDisplay()Landroid/view/Display; (greylist, linking, allowed) D/OkHttp (22948): --> POST https://teknasyon.desk360.com/api/v1/sdk/configurations D/OkHttp (22948): Content-Type: application/json; charset=UTF-8 D/OkHttp (22948): Content-Length: 42 D/OkHttp (22948): Authorization: Bearer HoV8gyw2KIGtTcrSqX0S7xjyHcUEN3uJhboYLUHwxcVZzVP9tCohHkMg3iyIMj7Q8vxQOJjMMIaT6owR D/OkHttp (22948): {"country_code":"PK","language_code":"en"} D/OkHttp (22948): --> END POST (42-byte body) D/OkHttp (22948): --> POST https://teknasyon.desk360.com/api/v1/devices/register D/OkHttp (22948): Content-Type: application/json; charset=UTF-8 D/OkHttp (22948): Content-Length: 171 D/OkHttp (22948): {"app_key":"DHTyOlPu4WFVqJmlLxKPbTe82Z5hwWxD","app_platform":"Android","app_version":"1.0.0","device_id":"QKQ1.200209.002","language_code":"en","time_zone":"Asia/Karachi"} D/OkHttp (22948): --> END POST (171-byte body) D/ColorViewRootUtil(22948): initSwipState, isDisplayCompatApp false D/ColorViewRootUtil(22948): mScreenHeight 1600, mScreenWidth 720 D/WindowManager(22948): Add to mViews: DecorView@4a246be[Desk360BaseActivity], this = android.view.WindowManagerGlobal@876ab23,pkg= com.gomeat.app I/Choreographer(22948): Skipped 14 frames! The application may be doing too much work on its main thread. D/OkHttp (22948): <-- 200 OK https://teknasyon.desk360.com/login (398ms) D/OkHttp (22948): Date: Thu, 20 Oct 2022 20:01:49 GMT D/OkHttp (22948): Content-Type: text/html; charset=UTF-8 D/OkHttp (22948): Transfer-Encoding: chunked D/OkHttp (22948): Connection: keep-alive D/OkHttp (22948): Server: nginx/1.20.0 D/OkHttp (22948): Cache-Control: no-cache, private D/OkHttp (22948): X-Frame-Options: SAMEORIGIN D/OkHttp (22948): Set-Cookie: XSRF-TOKEN=eyJpdiI6Imhoa3NXRjMyMFhrNnA1bE5iVDRzUnc9PSIsInZhbHVlIjoiSjBxQWRCaXJuK0FLNnNXU09FZFJuMkorQUVoV0xHOENIdkFGcFQ2WTJac2pOUkZOaVhaOGtBdnA4TW5maGg4VyIsIm1hYyI6ImNiZDE4MWEwODFkZDA1ZjQ2YWZhZjc1MGZiZjY4OGIwODc5ZmFlZTNmMzZlNjk1Zjk0NGQ0YTA2NThjYzFmOWQifQ%3D%3D; expires=Sat, 19-Nov-2022 20:01:49 GMT; Max-Age=2592000; path=/; secure D/OkHttp (22948): Set-Cookie: desk360_session=eyJpdiI6IkJKRGxmNFVEUWV0d29lRDYza1R4TFE9PSIsInZhbHVlIjoibHowZWd6c1lDdlU0bHRVb0tON3JkenVLZGFuckVtMHN0ZjJGam5pXC9rdGZYQ1VmSnU4R3VNcWgydk1PVTZHSWUiLCJtYWMiOiIwNGU3MGVlOGQ5NmM5ZTQ0ZjQ3OTU1NmZiYWE4N2NlMmNjZTJlNzY2ZDg5YTZmZmM4OTdiM2Y3N2JkZTU0Nzk0In0%3D; expires=Sat, 19-Nov-2022 20:01:49 GMT; Max-Age=2592000; path=/; secure; httponly D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): Desk360 D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948):
    D/OkHttp (22948): D/OkHttp (22948):
    D/OkHttp (22948): D/OkHttp (22948):
    D/OkHttp (22948):
    D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948):
    D/OkHttp (22948): D/OkHttp (22948):
    D/OkHttp (22948):

    Sign in to your teknasyon

    D/OkHttp (22948):

    teknasyon.desk360.com

    D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948):
    D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948):
    D/OkHttp (22948):
    D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): D/OkHttp (22948): <-- END HTTP (4588-byte body) D/AndroidRuntime(22948): Shutting down VM E/AndroidRuntime(22948): FATAL EXCEPTION: main E/AndroidRuntime(22948): Process: com.gomeat.app, PID: 22948 E/AndroidRuntime(22948): android.view.InflateException: Couldn't resolve menu item onClick handler goBackButtonClicked in class com.teknasyon.desk360.view.activity.Desk360BaseActivity E/AndroidRuntime(22948): at androidx.appcompat.view.SupportMenuInflater$InflatedOnMenuItemClickListener.(SupportMenuInflater.java:255) E/AndroidRuntime(22948): at androidx.appcompat.view.SupportMenuInflater$MenuState.setItem(SupportMenuInflater.java:484) E/AndroidRuntime(22948): at androidx.appcompat.view.SupportMenuInflater$MenuState.addItem(SupportMenuInflater.java:531) E/AndroidRuntime(22948): at androidx.appcompat.view.SupportMenuInflater.parseMenu(SupportMenuInflater.java:207) E/AndroidRuntime(22948): at androidx.appcompat.view.SupportMenuInflater.inflate(SupportMenuInflater.java:129) E/AndroidRuntime(22948): at com.teknasyon.desk360.view.activity.Desk360BaseActivity.onCreateOptionsMenu(Desk360BaseActivity.kt:193) E/AndroidRuntime(22948): at android.app.Activity.onCreatePanelMenu(Activity.java:4202) E/AndroidRuntime(22948): at androidx.fragment.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:287) E/AndroidRuntime(22948): at androidx.appcompat.view.WindowCallbackWrapper.onCreatePanelMenu(WindowCallbackWrapper.java:94) E/AndroidRuntime(22948): at androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback.onCreatePanelMenu(AppCompatDelegateImpl.java:3106) E/AndroidRuntime(22948): at androidx.appcompat.app.ToolbarActionBar.populateOptionsMenu(ToolbarActionBar.java:458) E/AndroidRuntime(22948): at androidx.appcompat.app.ToolbarActionBar$1.run(ToolbarActionBar.java:58) E/AndroidRuntime(22948): at android.os.Handler.handleCallback(Handler.java:899) E/AndroidRuntime(22948): at android.os.Handler.dispatchMessage(Handler.java:100) E/AndroidRuntime(22948): at android.os.Looper.loop(Looper.java:238) E/AndroidRuntime(22948): at android.app.ActivityThread.main(ActivityThread.java:7853) E/AndroidRuntime(22948): at java.lang.reflect.Method.invoke(Native Method) E/AndroidRuntime(22948): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) E/AndroidRuntime(22948): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:984) E/AndroidRuntime(22948): Caused by: java.lang.NoSuchMethodException: com.teknasyon.desk360.view.activity.Desk360BaseActivity.goBackButtonClicked [interface android.view.MenuItem] E/AndroidRuntime(22948): at java.lang.Class.getMethod(Class.java:2072) E/AndroidRuntime(22948): at java.lang.Class.getMethod(Class.java:1693) E/AndroidRuntime(22948): at androidx.appcompat.view.SupportMenuInflater$InflatedOnMenuItemClickListener.(SupportMenuInflater.java:251) E/AndroidRuntime(22948): ... 18 more I/Process (22948): Sending signal. PID: 22948 SIG: 9 Lost connection to device.

    opened by widget-404 6
Releases(1.0.0)
Owner
Teknasyon Tech
Open source projects from Teknasyon
Teknasyon Tech
Alter SDK is a cross-platform SDK consisting of a real-time 3D avatar system, facial motion capture, and an Avatar Designer component built from scratch for web3 interoperability and the open metaverse.

Alter SDK is a cross-platform SDK consisting of a real-time 3D avatar system, facial motion capture, and an Avatar Designer component built from scratch for web3 interoperability and the open metaverse.

Alter 45 Nov 29, 2022
RadioTimeKit - The Swift SDK for TuneIn RadioTimeKit is a Swift package to use the TuneIn API.

RadioTimeKit - The Swift SDK for TuneIn RadioTimeKit is a Swift package to use the TuneIn API. The goal for development was to have a Swift SDK to get

Frank Gregor 2 Jun 20, 2022
Sample project with local swift package linked NDI SDK.

NDISwiftPackage Sample project with local swift package linked NDI SDK. Preparation Install NDA SDK on your mac. Software Developer Kit Make package c

Naruki Chigira 4 Dec 20, 2022
Stacksift App SDK

Stacksift SDK Capture and submit crashes to Stacksift. This library ties together Wells and Impact to provide a full crash capturing and submission sy

Stacksift 44 Aug 18, 2022
TelegramStickersImport — Telegram stickers importing SDK for iOS

TelegramStickersImport — Telegram stickers importing SDK for iOS TelegramStickersImport helps your users import third-party programaticaly created sti

null 35 Oct 26, 2022
Official Appwrite SDK for Apple Devices 🍎

Appwrite Apple SDK This SDK is compatible with Appwrite server version 0.11.x. For older versions, please check previous releases. Appwrite is an open

Appwrite 55 Jan 2, 2023
Official Appwrite Swift SDK 🦅🍎

Appwrite Swift SDK This SDK is compatible with Appwrite server version 0.11.x. For older versions, please check previous releases. This is the Swift S

Appwrite 27 Dec 25, 2022
Muxer used on top of Feed iOS SDK for airplay

FeedAirplayMuxer Muxer used on top of Feed iOS SDK for airplay purposes. Demo Project --> https://github.com/feedfm/AirplayDemo Feed Airplay Muxer is

Feed Media 0 May 6, 2022
Basispay IOS SDK Version 2

BasisPay-IOS-KIT BasisPay IOS Payment Gateway kit for developers INTRODUCTION This document describes the steps for integrating Basispay online paymen

null 0 Oct 21, 2021
The Gini Bank SDK provides components for capturing, reviewing and analyzing photos of invoices and remittance slips.

Gini Bank SDK for iOS The Gini Bank SDK provides components for capturing, reviewing and analyzing photos of invoices and remittance slips. By integra

Gini GmbH 0 Dec 16, 2021