-
Notifications
You must be signed in to change notification settings - Fork 15
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
Migration from platform views 🚧 #136
base: main
Are you sure you want to change the base?
Migration from platform views 🚧 #136
Conversation
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
@jumaallan I'll be awaiting your feedback |
PR Code Suggestions ✨Explore these optional code suggestions:
|
I just tested this and the show attribution is working on my device, you are right about the screen content being pushed down. Hiding the top bar should resolve this right? The top bar being there or not doesn't make much of a difference, most users of the current platform views simply follow the smileID docs and place a topbar with smile ID as the title :) |
Yeah, go ahead and remove it then - I suspected the attribution was being pushed down the screen |
I'll update the PR before the end of today to get your feedback, @jumaallan. Thanks for the quick responses! 😊 |
While you are at it - can you add a dart linter and maybe add it to github actions too? we don't lint dart and we would love to add that too |
- add format/lint to build script
…sult - added deprecation notice for SmileIDSmartSelfieEnrollment widget
@jumaallan I've attended to the issues you raised. Awaiting your feedback |
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.
Excellent work, left feedback also maybe add TODOs for which other items will be changed to reflect this change
iOS however we need to find a way to make this work without asking for a change to use the UINavigationController
android/src/main/kotlin/com/smileidentity/flutter/SmileIDPlugin.kt
Outdated
Show resolved
Hide resolved
android/src/main/kotlin/com/smileidentity/flutter/SmileIDPlugin.kt
Outdated
Show resolved
Hide resolved
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.
Tested the flow on iOS and Android and those seem to work fine. Left some small comments, which would be great if they could be addressed.
@@ -474,7 +474,7 @@ | |||
CODE_SIGN_IDENTITY = "Apple Development"; | |||
CODE_SIGN_STYLE = Automatic; | |||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; | |||
DEVELOPMENT_TEAM = 99P7YGX9Q6; | |||
DEVELOPMENT_TEAM = 5SB38K2R24; |
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.
We shouldn't be changing the development team?
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.
I had to use my company's development account. This will be reverted before merging. I'll keep this comment open so I don't forget to revert it once it's complete.
- added smile_id_smart_selfie_enrollment_enhanced method - added smile_id_smart_selfie_authentication_enhanced_method
Added 3 more smile id products; smart selfie authentication, enhanced enrollment and enhanced authentication. @JNdhlovu I moved calls to the products' APIs to its implementation class which should resolve your earlier concern, do take a look. I'll be expecting your valuable feedback. Also @robin-ankele @jumaallan |
@JNdhlovu I've refactored some of the setup, now client applications do not need to wrap their apps in a UINavigationController🚀 |
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.
Hey @CoderNamedHendrick well done on the refactor, kindly find feedback
- Orientation changes
- Navigation (cancelling) as well if we'll be using an exposed activity/view controller we need to have a way of going back if needed
- on android back pressing I am not getting any exception or result
Otherwise this is great work
android/src/main/kotlin/com/smileidentity/flutter/SmileIDProductsPluginApi.kt
Outdated
Show resolved
Hide resolved
android/src/main/kotlin/com/smileidentity/flutter/SmileIDProductsPluginApi.kt
Outdated
Show resolved
Hide resolved
android/src/main/kotlin/com/smileidentity/flutter/SmileIDProductsPluginApi.kt
Outdated
Show resolved
Hide resolved
|
||
public class SmileIDProductsPluginApi: SmileIDProductsApi { | ||
|
||
var navigationController: UINavigationController? = nil |
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.
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.
Concerning iOS, locking orientation is enforced on an app level and my attempts at locking the orientation of a single view weren't successful. The other attempts which influence the app-wide orientation state are stated here but need to evaluate if we need to do so.
I also observed in the earlier implementation the orientation wasn't fixed so do we leave setting the orientation to portrait on the developer as is currently done? @jumaallan @JNdhlovu
Tested and Jobs run fine on iOS. |
@CoderNamedHendrick some iOS notes
|
Yeah @jumaallan I noticed this dark mode behaviour and forcing it to light mode is the way to go, thanks for the tip. I'll also lock the orientation in my next update. |
- lock orientation on android - set preferred colorScheme to light mode on iOS
@JNdhlovu @tobitech @robin-ankele There are more changes on this PR, so please take a look at this again |
@jumaallan I have some changes I'm currently working on that I'm yet to push. As soon as I finish within the week, it can be reviewed. |
- added document verification enhanced product - added biometric kyc product
Story: #135
Summary
An attempt to migrate from embedding platform views and instead call the native navigation APIs. This update removes the need to use callbacks that return JSON strings in embedded platform views and simply sends type-safe responses to the Flutter application.
Known Issues
There are no issues on Android.
On iOS, this change requires a new setup step, where the user needs to wrap the FlutterViewController with a UINavigationController in the app delegate. This is necessary to have page-to-page-like (the alternative is modal-like in the absence of the controller) navigation. Any ideas on how to work around this would be appreciated. This issue on iOS has been resolved see here
Test Instructions
Run the sample app on both iOS and Android and test the selfie enrollment(the only flow currently migrated and awaiting feedback on implementation)
Screenshot
If applicable (e.g. UI changes), add screenshots to help explain your work.
iOS and Android previews showing migrated smartSelfieEnrollment flows.