Flutter로 SNS 로그인 기능을 구현해봤습니다.
카카오, 구글, 페이스북, 애플 총 4가지를 구현해보았는 데 Flutter 코드는 매우 간단했지만 각 서비스업체의 플랫폼등록과 AppKey 숨김처리 작업이 기능구현의 핵심이였습니다.
안드로이드는 SHA-1 인증서 지문을 활용하고 구글 로그인은 Firebase Auth 활용여부에 따라 프로젝트 설정의 약간 차이가 존재합니다.
Cocoa MVC 패턴을 사용할 때 보통 2가지 문제점을 이야기합니다.
위의 2가지 문제점을 해결한 방법을 예시로 보여주는 MVCTodo프로젝트를 확인해보고 어떤식으로 해결했는 지 자세히 알아봤습니다. ContainerViewController, ListViewController 라는 재사용가능한 ViewController를 활용하여 상태에 따라 자식 ViewController를 전환해가는 방식으로 Massive ViewController의 문제점을 해결하고 Coordinator를 활용하여 캡슐화원칙을 해결했습니다. 추후 Cocoa MVC 패턴을 사용할 때 참고하면 좋을 것 같습니다.
앱스플라이어 인앱이벤트를 추가하는 작업을 진행할 때 몇가지를 알면 도움이 될 것 같습니다.
waitForATTUserAuthorization
메서드를 사용하면 앱 추적 투명성(ATT) 권한을 요청 받기 전까지 start 함수를 지연할 수 있습니다. 이러한 메서드를 제공하는 이유는 인앱이벤트에서 권한허용여부에 따라 IDFA 광고식별자 값을 추가하여 전송할 수 있기 때문입니다. 권한을 허용하지 않았다면 IDFA를 제외한 후 인앱이벤트를 전송합니다.getAppsFlyerUID()
메서드를 제공합니다. 해당 UID가 발급되는 시점은 앱이 설치된 후 SDK를 연결한 시점입니다. 그 외에 각 서비스별 구분자로는 CustomUserID값을 활용할 수 있습니다.UNUserNotificationCenter.current().getNotificationSettings
를 사용하는 것이 맞는 것 같습니다. UIApplication.shared.isRegisteredForRemoteNotifications
는 APNs 등록여부를 확인하기 때문에 다른 곳에서 registerForRemoteNotifications()
를 호출하여 등록하면 잘못된 정보를 알 수 있기 때문입니다.