I implemented SNS login functionality in Flutter.
I implemented four login options: Kakao, Google, Facebook, and Apple. While the Flutter code itself was quite simple, the key challenges were registering each service platform and securely handling the App Key.
For Android, SHA-1 certificate fingerprints are used, and there are slight differences in project settings depending on whether Firebase Auth is used for Google login.
When using the Cocoa MVC pattern, two main issues are often mentioned:
I analyzed the MVCTodo project, which shows solutions to these two issues. The project resolves the “Massive ViewController” problem by using reusable ContainerViewController
and ListViewController
components that switch child ViewControllers based on state. The project also addresses the encapsulation issue by using a Coordinator pattern.
This could serve as a useful reference when working with the Cocoa MVC pattern in the future.
Here are some helpful tips for adding AppsFlyer in-app events:
start
function until ATT permission request:When integrating the SDK on iOS, you can use the waitForATTUserAuthorization
method to delay the start function until the app tracking transparency (ATT) permission request is handled. This is because, in in-app events, the IDFA value can only be included if the permission is granted. If permission is denied, the IDFA value is excluded from the event.getAppsFlyerUID()
method to get the AppsFlyer unique device ID. This UID is generated when the app is installed and the SDK is connected. You can also use a CustomUserID
value for service-specific identification.UNUserNotificationCenter.current().getNotificationSettings
. The UIApplication.shared.isRegisteredForRemoteNotifications
method only checks if the app is registered for remote notifications through APNs. If registerForRemoteNotifications()
is called from another location, it may provide incorrect information.applicationWillTerminate
not being called:If applicationWillTerminate
in AppDelegate
is not called, add the following key to the Info.plist
file and set it to true
:Application can be killed immediately when user is shutting down or logging out