Issue 1:
I have implemented an iOS MKMapView using the new UiKitView platform view. This appears to work quite well, apart from the gesture recognisers throwing errors.

The Flutter side of the implementation

typedef void DossierMapViewCreatedCallback(DossierMapViewController controller);

/// Shows a Map with the dossiers
class DossierMapView extends StatefulWidget {
const DossierMapView({
Key key,
this.onDossierMapViewCreated,
this.gestureRecognizers,
}) : super(key: key);

final DossierMapViewCreatedCallback onDossierMapViewCreated;

final Set<Factory<OneSequenceGestureRecognizer>> gestureRecognizers;

@override
State<StatefulWidget> createState() => _DossierMapViewState();
}

///
class _DossierMapViewState extends State<DossierMapView> {
final Completer<DossierMapViewController> _controller =
Completer<DossierMapViewController>();

@override
Widget build(BuildContext context) {
switch (defaultTargetPlatform) {
case TargetPlatform.android:
return AndroidView(
viewType: _dossierMapViewType,
onPlatformViewCreated: _onPlatformViewCreated,
);

case TargetPlatform.iOS:
return GestureDetector(
//onVerticalDragStart: (DragStartDetails details) {},
child: UiKitView(
viewType: _dossierMapViewType,
onPlatformViewCreated: _onPlatformViewCreated,
gestureRecognizers: <Factory<OneSequenceGestureRecognizer>>[
new Factory<OneSequenceGestureRecognizer>(
() => new EagerGestureRecognizer(),
),
].toSet(),
),
);

default:
return Text(
'$defaultTargetPlatform is not yet supported by the dossiers_map_view plugin');
}
}

void _onPlatformViewCreated(int id) {
final controller = DossierMapViewController._(id);
_controller.complete(controller);

if (widget.onDossierMapViewCreated != null) {
widget.onDossierMapViewCreated(controller);
}
}
}

class DossierMapViewController {
final MethodChannel _channel;

DossierMapViewController._(int id)
: _channel = MethodChannel("plugins.maxdoro.com/dossiermapview_$id");

Future<void> setDossierList(List<Map<String, dynamic>> list) async {
return _channel.invokeMethod("setDossierList", list);
}
}

The important bit is probably the gesture recogniser passing

Dragging and/or zooming the map view results in these exceptions being thrown

[VERBOSE-2:shell.cc(184)] Dart Error: Unhandled exception:
[ ] 'package:flutter/src/gestures/converter.dart': Failed assertion: line 250 pos 18: 'state.down': is not true.
[ ] #0 _AssertionError._doThrowNew (dart:core/runtime/liberrors_patch.dart:40:39)
[ ] #1 _AssertionError._throwNew (dart:core/runtime/liberrors_patch.dart:36:5)
[ ] #2 PointerEventConverter.expand (package:flutter/src/gestures/converter.dart:250:18)
[ ] #3 _SyncIterator.moveNext (dart:core/runtime/libcore_patch.dart:151:12)
[ ] #4 ListQueue.addAll (dart:collection/queue.dart:715:25)
[ ] #5 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:83:27)
[ ] #6 _invoke1 (dart:ui/hooks.dart:165:13)
[ ] #7 _dispatchPointerDataPacket (dart:ui/hooks.dart:119:5)
[ +302 ms] [VERBOSE-2:shell.cc(184)] Dart Error: Unhandled exception:
[ ] 'package:flutter/src/gestures/converter.dart': Failed assertion: line 143 pos 18: '!state.down': is not true.
[ ] #0 _AssertionError._doThrowNew (dart:core/runtime/liberrors_patch.dart:40:39)
[ ] #1 _AssertionError._throwNew (dart:core/runtime/liberrors_patch.dart:36:5)
[ ] #2 PointerEventConverter.expand (package:flutter/src/gestures/converter.dart:143:18)
[ ] #3 _SyncIterator.moveNext (dart:core/runtime/libcore_patch.dart:151:12)
[ ] #4 ListQueue.addAll (dart:collection/queue.dart:715:25)
[ ] #5 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:83:27)
[ ] #6 _invoke1 (dart:ui/hooks.dart:165:13)
[ ] #7 _dispatchPointerDataPacket (dart:ui/hooks.dart:119:5)

I show two, but there are a lot more

Tap on the link 'package:flutter/src/gestuires/converter.dart:, we see the assert testing state.down.

case ui.PointerChange.up:
case ui.PointerChange.cancel:
assert(_pointers.containsKey(datum.device));
final _PointerState state = _pointers[datum.device];
assert(state.down);
if (position != state.lastPosition) {
// Not all sources of pointer packets respect the invariant that
// they move the pointer to the up location before sending the up
// event. For example, in the iOS simulator, of you drag outside the
// window, you'll get a stream of pointers that violates that
// invariant. We restore the invariant here for our clients.

flutter doctor -v says:

sanders-mbp:waarnemingenapp sandervanderwal$ flutter doctor -v
[✓] Flutter (Channel master, v0.11.4-pre.6, on Mac OS X 10.14.1 18B75, locale en-NL)
• Flutter version 0.11.4-pre.6 at /Users/sandervanderwal/Developer/flutter
• Framework revision df57dc9da9 (10 hours ago), 2018-11-11 22:36:47 -0800
• Engine revision 5646e86a6f
• Dart version 2.1.0 (build 2.1.0-dev.9.3 9c07fb64c4)

[✓] Android toolchain - develop for Android devices (Android SDK 28.0.2)
• Android SDK at /Users/sandervanderwal/Library/Android/sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-28, build-tools 28.0.2
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)
• All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 10.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 10.1, Build version 10B61
• ios-deploy 1.9.2
• CocoaPods version 1.5.3

[✓] Android Studio (version 3.2)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 30.0.1
• Dart plugin version 181.5656
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)

[✓] Connected device (1 available)
• Turminder Xuss • ca4f8a0ddd55132ab42c253d7496b90a38b6b53c • ios • iOS 12.1

• No issues found!

Issue 2:
Getting this error after double tapping a UiKitView on ios.

Everything is fine when using AndroidView on android.

Dart Error: Unhandled exception:
'package:flutter/src/gestures/converter.dart': Failed assertion: line 143 pos 18: '!state.down': is not true.
#0 _AssertionError._doThrowNew (dart:core/runtime/liberrors_patch.dart:40:39)
#1 _AssertionError._throwNew (dart:core/runtime/liberrors_patch.dart:36:5)
#2 PointerEventConverter.expand (package:flutter/src/gestures/converter.dart:143:18)
#3 _SyncIterator.moveNext (dart:core/runtime/libcore_patch.dart:151:12)
#4 ListQueue.addAll (dart:collection/queue.dart:715:25)
#5 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:83:27)
#6 _invoke1 (dart:ui/hooks.dart:165:13)
#7 _dispatchPointerDataPacket (dart:ui/hooks.dart:119:5)

Steps to Reproduce

Example app

Launch example

Double tap on map(Try a few times. Not every double tap reproduces this error)

Logs

flutter analyze

Analyzing example...
No issues found! (ran in 13.1s)

flutter doctor -v

[✓] Flutter (Channel master, v0.11.1-pre.134, on Mac OS X 10.12.6 16G1510, locale en-RU)
• Flutter version 0.11.1-pre.134 at /Users/ybarkovskij/Work/flutter
• Framework revision 43407e4e01 (13 hours ago), 2018-11-09 16:04:33 -0500
• Engine revision 316f6365a6
• Dart version 2.1.0 (build 2.1.0-dev.9.3 9c07fb64c4)

[✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
• Android SDK at /Users/ybarkovskij/Library/Android/sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-28, build-tools 27.0.3
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
• All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 9.2)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 9.2, Build version 9C40b
• ios-deploy 1.9.2
• CocoaPods version 1.5.3

[✓] Android Studio (version 3.1)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 27.1.1
• Dart plugin version 173.4700
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

[✓] VS Code (version 1.28.2)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 2.19.0

[✓] Connected device (1 available)
• iPhone 5s • B276608C-A108-426E-BAF7-DE6244D7C4D0 • ios • iOS 11.2 (simulator)

• No issues found!