New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[google_maps_flutter] Add marker clustering support - iOS implementation #6186
base: main
Are you sure you want to change the base?
[google_maps_flutter] Add marker clustering support - iOS implementation #6186
Conversation
cc42eb1
to
0f29034
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The code looks quite clean. But I feel I don't know enough about clusters to stamp it just yet. Could you also invite the reviewers from your previous PR?
packages/google_maps_flutter/google_maps_flutter_ios/ios/Classes/FLTClusterManagersController.h
Outdated
Show resolved
Hide resolved
packages/google_maps_flutter/google_maps_flutter_ios/ios/Classes/FLTClusterManagersController.h
Outdated
Show resolved
Hide resolved
packages/google_maps_flutter/google_maps_flutter_ios/ios/Classes/FLTClusterManagersController.m
Outdated
Show resolved
Hide resolved
packages/google_maps_flutter/google_maps_flutter_ios/ios/Classes/FLTClusterManagersController.m
Outdated
Show resolved
Hide resolved
packages/google_maps_flutter/google_maps_flutter_ios/ios/Classes/FLTClusterManagersController.m
Outdated
Show resolved
Hide resolved
packages/google_maps_flutter/google_maps_flutter_ios/ios/Classes/GoogleMapController.m
Show resolved
Hide resolved
packages/google_maps_flutter/google_maps_flutter_ios/ios/Classes/GoogleMapMarkerController.m
Outdated
Show resolved
Hide resolved
00b59e4
to
1669b76
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you add some unit tests on native side?
packages/google_maps_flutter/google_maps_flutter_ios/ios/google_maps_flutter_ios.podspec
Show resolved
Hide resolved
b0e9ada
to
b4eaeba
Compare
Added some native unit tests |
b4eaeba
to
2c326e8
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for adding those tests. The overall code looks clean.
@cbracken feel free to give it another pass (if you see fit) since you are the new owner. Otherwise I think it's good to land.
...er/google_maps_flutter_ios/example/ios12/ios/RunnerTests/FLTClusterManagersControllerTests.m
Outdated
Show resolved
Hide resolved
...er/google_maps_flutter_ios/example/ios14/ios/RunnerTests/FLTClusterManagersControllerTests.m
Outdated
Show resolved
Hide resolved
packages/google_maps_flutter/google_maps_flutter_ios/ios/Classes/FLTClusterManagersController.h
Outdated
Show resolved
Hide resolved
packages/google_maps_flutter/google_maps_flutter_ios/ios/Classes/FLTClusterManagersController.m
Show resolved
Hide resolved
packages/google_maps_flutter/google_maps_flutter_ios/ios/Classes/FLTClusterManagersController.m
Show resolved
Hide resolved
packages/google_maps_flutter/google_maps_flutter_ios/ios/Classes/GoogleMarkerUserData.h
Outdated
Show resolved
Hide resolved
packages/google_maps_flutter/google_maps_flutter_ios/ios/Classes/GoogleMarkerUtilities.h
Outdated
Show resolved
Hide resolved
packages/google_maps_flutter/google_maps_flutter_ios/ios/Classes/GoogleMarkerUtilities.h
Outdated
Show resolved
Hide resolved
@@ -22,8 +22,15 @@ Downloaded by pub (not CocoaPods). | |||
# has been confirmed to be compatible via an example in examples/. See discussion | |||
# in https://github.com/flutter/flutter/issues/86820 for why this is so broad. | |||
s.dependency 'GoogleMaps', '< 9.0' | |||
# Once the plugin requires iOS version 13+, this should be updated. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This day has come :) We now require iOS 14+.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updating Google-Maps-iOS-Utils library seems to cause problems.
Output after updating the version:
[!] CocoaPods could not find compatible versions for pod "GoogleMaps":
In Podfile:
google_maps_flutter_ios (from `.symlinks/plugins/google_maps_flutter_ios/ios`) was resolved to 0.0.1, which depends on
Google-Maps-iOS-Utils (= 4.2.2) was resolved to 4.2.2, which depends on
GoogleMaps (~> 7.3)
google_maps_flutter_ios (from `.symlinks/plugins/google_maps_flutter_ios/ios`) was resolved to 0.0.1, which depends on
GoogleMaps (< 9.0, >= 8.4)
Version 4.1.0 does not work anymore either:
Throwing "User-Defined Issue (Xcode): Unsupported Swift architecture" issue on build phase
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds like this is blocked on googlemaps/google-maps-ios-utils#456 then.
I would image that will be fixed soon, because Google Maps 7.3 isn't compliant with the upcoming App Store privacy requirements, so the current version of Google-Maps-iOS-Utils will become essentially unshippable once enforcement of those requirements starts.
packages/google_maps_flutter/google_maps_flutter_ios/lib/src/google_maps_flutter_ios.dart
Outdated
Show resolved
Hide resolved
a3d8522
to
e382d51
Compare
e382d51
to
9cc025d
Compare
@jokerttu is this ready for re-review? |
@jmagman not yet, this is waiting new release of Google-Maps-iOS-Utils library to have support latest Google Maps SDK versions. See discussion here: #6186 (comment) |
FYI I have raised the blocking issue internally with the Google Maps team. |
This PR introduces support for marker clustering for iOS platform
An example usabe is available in the example application at ./packages/google_maps_flutter/google_maps_flutter_ios/example/ios12 on the page
Manage clustering
This is prequel PR for: #4319
and sequel PR for: #6158
Containing only changes to
google_maps_flutter_ios
package.Follow up PR will hold the app-facing plugin implementation.
Linked issue: flutter/flutter#26863
Pre-launch Checklist
dart format
.)[shared_preferences]
pubspec.yaml
with an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes.CHANGELOG.md
to add a description of the change, following repository CHANGELOG style.///
).If you need help, consider asking for advice on the #hackers-new channel on Discord.