Skip to content

[API Design] Change init method to setClientId and Move Auth error callback to NaverMap widget's Listener #316

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

Open
Tracked by #301
note11g opened this issue May 29, 2025 · 0 comments

Comments

@note11g
Copy link
Owner

note11g commented May 29, 2025

Abstraction

현재 FlutterNaverMap().init을 사용할 때,

  1. Future를 반환값으로 노출하고 있고
  2. 인자로 clientIdonAuthFailed callback을 받고 있어,

해당 함수가 실행되는 시점에 인증이 이루어지는 것으로 오해할 수 있음.
하지만 실제로 인증은 지도 API 사용 횟수와 연관 되어 있으므로, 지도 API 사용 횟수가 차감되는 시점인 매 지도를 켜는 시점에 이루어짐. (NaverMap SDK 내부적으로 이는 효율적으로 캐싱되어 처리되는 것으로 보이기에 성공하였을 경우 매번 실행되지는 않음).
인증 실패 콜백 역시 인증에 실패할 경우 실행되기에, 이를 개발자가 이해하고 쓰기에 부족할 수 있음.

해당 시점에 인증에 대한 작업하는 것은 clientId를 세팅하는 것 뿐이며 이는 (일정부분) 동기적으로 이루어지고,
인증 이외의 작업인 androidSdkVersion을 가져오는 것만이 비동기 작업이 됨. (androidSdkVersion을 가져오는 것은 과거 버전별 이슈를 해결하기 위해 _PlatformViewCreator.createPlatformView에서 해당 값을 참조하여 displayMode를 초기화해주어야 했기 때문임. 지금은 사용되지 않으므로 삭제해도 무방함. #152)

따라서, 총 2가지를 수행해야할 것으로 보임.

  1. init의 메서드 대신 사용할 setClientId 메서드를 새로이 추가한다.
    이때, 반환값은 void이면 가장 좋지만, 네이티브에 값이 설정되었음을 보장해야 하므로 Future<void>로 반환한다.
    또한, 현재는 불가능한 값 재설정을 수행가능하도록 변경한다. (remove reinit guard)
  2. onAuthFailedonMapReady처럼 NaverMap 위젯에 추가한다.

추가로 고민해야 하는 부분은 지도가 여러개 떠있을 때(혹은 stack에 떠 있을 때), 모든 onAuthFailed callback에 broadcast되지 않도록 해야하는 부분입니다.

Additional Description

이 제안은 #308 검토 당시 onCustomStyleLoaded/onCustomStyleLoadFailedNaverMap 위젯에 이벤트 리스너로 추가할 지를 고려하는 과정에서 시작되었습니다.

This was referenced May 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant