3 ms·
Flutter might be a cool project, but what's the status of integrating native controls? Mobile apps are not only CRUD clients and do lots of stuff that needs ti
by FlyingSnake 8y ago
Flutter might be a cool project, but what's the status of integrating native controls?
Mobile apps are not only CRUD clients and do lots of stuff that needs tight OS integration. The last time I checked, flutter couldn't do Maps, GeoLocations, AR (ArKit/ARCore), Encryption, audio/video, file storage etc activities that are outside the normal purview of a CRUD TableView App.
Since flutter team seems to be active here, could anyone from the team shed light on these aspects?
- danbalthasar 8y agoFirst party maps support has recently landed, as well as WebView. Geolocation plugins have been available for quite sometime now, as have encryption and file storage.
- eseidelGoogle 8y ago(Disclosure: I'm the Eng. Mgr for the Flutter project at Google.) In general Flutter takes the position that Flutter should not limit your choices and your apps should be able to do anything the phone can do. Flutter apps are just iOS or Android apps, you can always open up the ios or android sub-folders and write as much Obj-C/Swift or Java/Kotlin code as you like. Flutter's core engine/framework are all about providing portable UI, and leave everything else up to "plugins" (the opposite of say the Web were everything is baked into the core platform). Lots of plugins exist today, but there are always more to write: https://pub.dartlang.org/flutter https://pub.dartlang.org/flutter https://flutter.io/developing-packages/ https://flutter.io/developing-packages/ https://flutter.io/using-packages/ https://flutter.io/using-packages/ Responses to your specific asks: Showing arbitrary native views inline with other Flutter content is actively in progress: https://github.com/flutter/flutter/issues/19030 https://github.com/flutter/flutter/issues/19030 (already possible to show views to the side of/on-top-of a FlutterView of course). Full inline Google Maps is similarly in progress: https://github.com/flutter/flutter/issues/73 https://github.com/flutter/flutter/issues/73 There are several community authored plugins for geolocation e.g. https://pub.dartlang.org/packages/geolocator https://pub.dartlang.org/packages/geolocator. AR is not something I've seen any work on yet, but it's always possible to throw up a full-screen ARKit/ARCore view using ObjC/Java your otherwise-Flutter-built app. Flutter includes BoringSSL as part of it's runtime, some encryption APIs are exposed, there is probably more for us to do here. There is also pure-Dart crypto, e.g. https://pub.dartlang.org/packages/crypto https://pub.dartlang.org/packages/crypto and of course always possible to write your own wrappers around iOS/Android APIs (which someone may already have done too). Audio/Video plugins exist today, e.g. https://pub.dartlang.org/packages/video_player https://pub.dartlang.org/packages/video_player Some storage plugins exist (e.g. https://pub.dartlang.org/packages/sqflite https://pub.dartlang.org/packages/sqflite), definitely more to write here. Always more to do. If there is something specific you believe my team should help provide, please let us know: flutter.io/support. Hope that helps!
- FlyingSnake 8y agoThanks for response, I have high hopes from Flutter, however having spend years in cross-platform mobile development, I just want to avoid the most common pitfalls. I hope this comment doesn't come out as snarky, I just wanted to give an honest opinion. Not having first-class Maps is a deal breaker for many apps, and having only Google Maps support is not what most developers want. I would like to port my current app, but without proper maps support Flutter feels like a cousin of Ionic. What's the FFI story of Flutter? Could you please point me to the direction of using ARkit view using ObjC/Java FFI? From what I've seen we've to wire an OpenGL View to achieve AR capabilities, but I might be wrong. While the crypto package is a good start, I was more interested in having access to the Trusted Execution Environment (TEE) on iOS/Android. Do you have any work being done in that area? Lots of apps (e.g. Fintech) have security audits and these things could be a deal breaker. A cursory look the Audio plugins show that it's a wrapper around AVFoundation etc. and they are capable of playing audio/video, I would love to see an official plugin with 1-to-1 feature parity with iOS/Android AV API. Flutter is a great project, but it seems to be plagued by the same issues that React Native, and Xamarin has.