ionic-team / capacitor

Build cross-platform Native Progressive Web Apps for iOS, Android, and the Web ⚡️
https://capacitorjs.com
MIT License
11.93k stars 996 forks source link

Compatibility with native SDK packages #538

Closed ghost closed 6 years ago

ghost commented 6 years ago

Hi Capacitor team,

Is it possible for you guys to make us use SDK packages with their native language or typescript wrapper on Capacitor?

Here are a few SDK packages which can be used on Java and Swfit apps. This small list is a tip of an iceberg. There are a lot more if you guys search.

SendBird chat SDK for iOS and Android. (React Native is included but no Cordova) https://sendbird.com/

AudioKit sound kit SDK for iOS http://audiokit.io

Mapbox SDK for android and iOS https://www.mapbox.com/maps/

JW Player SDK for android and iOS https://developer.jwplayer.com/android-sdk/

VMware AirWatch SDK for android https://code.vmware.com/web/sdk/16.4.1/airwatch-android

MapQuest android SDK https://developer.mapquest.com/documentation/android-sdk/

Samsung Pro Audio SDK https://developer.samsung.com/galaxy/professional-audio

Google VR SDK for android https://developers.google.com/vr/develop/android/download

Smaato SDK https://www.smaato.com/resources/sdks/

Wikitude augmented reality SDK http://www.wikitude.com/external/doc/documentation/latest/android/

PubNub chat SDK https://www.pubnub.com/products/chatengine/

Pepper SDK https://android.aldebaran.com/sdk/doc/pepper-sdk/index.html

Adobe Creative SDK for android https://www.adobe.io/apis/creativecloud/creativesdk/docs/androidsdk.html

AppsFlyer SDK https://support.appsflyer.com/hc/en-us/articles/207032126-AppsFlyer-SDK-Integration-Android

PayPal android SDK https://developer.paypal.com/docs/integration/mobile/android-integration-guide/

Unfortunately, these SDK packages will not work on Cordova easily. If Capacitor will support native UI shell and native APIs, then why not native SDK integration features? Apparently these SDKs are more powerful than user-made plugins.

I think there should be a section of Capacitor which can read Java and Swift to deal with native SDK packages. Otherwise, we will miss so much. Especially, VR SDKs are must-have for modern developers.

Some of these SDK packages are free, some are not.

Here's my two cents.

Thanks,

mlynch commented 6 years ago

Thanks, closing per our feature request process, will monitor conversation and reactions.

We want to make it easy to use other SDKs, but you should be able to just use them in your app by writing some native code to expose them to your app. We will think about ways to make that even easier.

ghost commented 6 years ago

Awesome. Please offer SDK packages like plugins. If the SDKs come with native typescript wrappers, it will make the job a lot easier.. and I think people will love that too. The future of development is in SDKs. Google maps native wrapper is a good example.

another free map SDK: https://mapfit.com/developers/android

ghost commented 6 years ago

Hi Max,

By the way, I really like this idea: https://capacitor.ionicframework.com/docs/android/custom-code

Is it possible for you guys to let us register a java or swift function and call it up on WebView? For instance, let's say there's a music playback feature from a pro audio SDK that can beat cordova audio. Can we register it in native code and just call it on WebView angular?

@NativePlugin()
public class CustomNativePlugin extends SDK {

  @PluginMethod()
  public void registerFunction('functionPlay') {
    originalSDKplayMusic()
  }

@PluginMethod()
  public void registerFunction('functionStop') {
    originalSDKstopMusic()
  }
}

in this example, we should be able to call up the brand new functionPlay() and functionStop() on Angular 6 or Stencil. so users will be able to trigger native SDK playback from webview using Angular.

If we can work with SDK packages this way, it will open doors to a lot of new possibilities. As you can see from the list, there are a lot more we can do with SDKs.. and I think they can be more powerful when they're combined with web technologies like Angular and React.

Thanks,

ionitron-bot[bot] commented 1 year ago

Thanks for the issue! This issue is being locked to prevent comments that are not relevant to the original issue. If this is still an issue with the latest version of Capacitor, please create a new issue and ensure the template is fully filled out.