CartoDB / mobile-sdk

CARTO Mobile SDK core project
https://carto.com/docs/carto-engine/mobile-sdk/
BSD 3-Clause "New" or "Revised" License
185 stars 67 forks source link

Flutter Integration #383

Open lasyakoechlin opened 4 years ago

lasyakoechlin commented 4 years ago

Hi,

I was wondering if you had any thoughts on Flutter integration. I was that there was a react-native build at one point, but Flutter supports direct integration with C/C++, as shown below, so I was wondering if that would make it even easier?

https://flutter.dev/docs/development/platform-integration/c-interop https://flutter.dev/docs/development/platform-integration/platform-channels

Any thoughts/suggestions/concerns/recommendations would be much appreciated.

Thanks!

mtehver commented 4 years ago

Hi. Flutter has come up a few times, but I can not say there has been a real interest. We provide Xamarin for cross-platform development and that is probably the best documented, most stable and most mature (especially considering dev-tools) cross-platform framework available. Adding another platform would require serious interest from out commercial customers, which is frankly not there.

At technical level having a C/C++ level interop is a necessary requirement but not sufficient. We do all wrapping via custom SWIG build that currently has no support for Flutter. Adding another platform would require a lot of work.

felixjunghans commented 4 years ago

I successfully use the Carto Mobile SDK in one of my apps. For this purpose I have natively integrated the iOS SDK and the Android SDK and then displayed it via UIKitView or AndroidView and communicate with MChannels between Flutter and the native code.

lasyakoechlin commented 3 years ago

I successfully use the Carto Mobile SDK in one of my apps. For this purpose I have natively integrated the iOS SDK and the Android SDK and then displayed it via UIKitView or AndroidView and communicate with MChannels between Flutter and the native code.

Awesome, how did it behave? Did it feel very similar to the native experience? What version of Carto did you use?

How long did it take to build the wrapper?

felixjunghans commented 3 years ago

Sorry for the late reply. I am using the latest version of Carto (4.3.3).

On newer devices (especially iOS devices) I can't notice any performance difference. Only on older Android smartphones (mainly Android 6) I notice a poor performance especially with Vector maps. I'm not sure how much of this is due to Flutter.

All in all, it works very stable and reliable. In the future I will try to provide a package that makes working with Flutter and the Carto SDK easier.

mrcnserkan commented 3 years ago

I'm excitedly waiting for you to provide a package. How can we do it? Can you give brief information about it?

tajchert commented 3 years ago

I'm very interested in supporting vector tiles from OSM on Flutter. Currently, we use flutter_plugin - with png files however vector tile will be very very wanted. To be honest I would also prefer to have native Dart implementation comparing to channels to native plugins, so one implementation can work on iOS/Android/Desktop and maybe web. This will simplify a lot of things in development, however, I understand the need of implementing a lot from the scratch.

lasyakoechlin commented 3 years ago

@felixjunghans would it be possible for me to get in touch? Your Flutter-Carto wrapper could be very helpful for me. I was in the process of implementing a similar interface; however, I am relatively new to Flutter so it's likely that my implementation would be sub-optimal.

Did you provide a complete wrapper? Or just various core functionalities?

Thanks!

gemarkalmacen commented 1 year ago

@felixjunghans I am interested in that plugin and waiting for the plugin to be released soon. :)

aardrop commented 5 months ago

Xamarin has been deprecated since last week, right? Is there any update on this or other cross-platform topics?

farfromrefug commented 5 months ago

@aardrop i personally use and develop Nativescript which is another cross platform framework. I also maintain a plugin for carto. Let Me know If you want to hear more