kakao / kakao_flutter_sdk

Flutter SDK for Kakao Open API
Apache License 2.0
192 stars 71 forks source link

[Bug] Platform.localeName의 Web 플랫폼 미지원 문제 #197

Closed suojae closed 1 day ago

suojae commented 1 day ago

이슈 설명 (Issue description)

LocalizationOptions에서 로케일을 가져오기 위해 Platform.localeName을 사용하려 했습니다. 하지만 Platform.localeNamedart:io에 의존하고 있어서 Web 플랫폼에서는 동작하지 않는 문제를 확인할 수 있었습니다.

https://github.dev/kakao/kakao_flutter_sdk/tree/develop/packages/kakao_flutter_sdk_talk/lib/src/model 현재 Platform.localeName은 Web 플랫폼 지원이 안되고 있습니다.

앱 ID (App ID)

1115481

플랫폼 (Platform)

Web

디바이스 (Device)

Web

Version

1.9.6

Flutter SDK

3.22.0

재현 방법 (Steps to reproduce)

  1. Flutter 프로젝트를 Web 플랫폼에서 실행합니다.
  2. LocalizationOptions.getLocalizationOptions() 메서드를 호출합니다.
  3. Web 환경에서는 Platform.localeName이 동작하지 않아 에러가 발생합니다.

코드 샘플 (Code Sample)

No response

Logs

-

Flutter Doctor

[✓] Flutter (Channel stable, 3.24.5, on macOS 14.5 23F79 darwin-arm64, locale en-KR)
    • Flutter version 3.24.5 on channel stable at /Users/jayoengchoi/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision dec2ee5c1f (2 weeks ago), 2024-11-13 11:13:06 -0800
    • Engine revision a18df97ca5
    • Dart version 3.5.4
    • DevTools version 2.37.3

[✓] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
    • Android SDK at /Users/jayoengchoi/Library/Android/sdk
    • Platform android-35, build-tools 35.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.4)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15F31d
    • CocoaPods version 1.15.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2024.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)

[✓] Connected device (3 available)
    • macOS (desktop)                 • macos                 • darwin-arm64   • macOS 14.5 23F79 darwin-arm64
    • Mac Designed for iPad (desktop) • mac-designed-for-ipad • darwin         • macOS 14.5 23F79 darwin-arm64
    • Chrome (web)                    • chrome                • web-javascript • Google Chrome 131.0.6778.86
    ! Error: Browsing on the local area network for Jonghyuck’s iPhone. Ensure the device is unlocked and attached with a cable or associated with the same local area network
      as this Mac.
      The device must be opted into Developer Mode to connect wirelessly. (code -27)

[✓] Network resources
    • All expected network resources are available.
mbkim95 commented 1 day ago

안녕하세요! 우선 kakao_flutter_sdk에 관심을 가져주셔서 감사합니다.

이슈 제보주신 내용에서 이해가지 않는 부분이 있어서 질문드려요. SDK 코드를 확인해보시면 LocalizationOptions 클래스는 PickerWebView 내부에서만 사용되고 있고, PickerWebView 클래스는 Android / iOS 네이티브 플랫폼에서만 사용되고 있습니다. 따라서 Web 플랫폼인 경우에는 LocalizationOptions를 사용하지 않기 때문에 Platform.localeName이 Web 플랫폼을 지원하지 않아도 해당 기능은 각 플랫폼에서 정상적으로 동작하고 있습니다.

LocalizationOptions에서 로케일을 가져오기 위해 Platform.localeName을 사용하려 했습니다.

라고 적어주셨는데 LocalizationOptions 클래스는 SDK 내부에서만 사용하기 위한 목적으로 추가된 클래스이기 때문에 적어주신 내용이 잘 이해가 가지 않아요. 에러가 발생하는 코드 혹은 재현 동선 등을 상세하게 설명해주시면 조금 더 이해하기 좋을 것 같습니다.

suojae commented 1 day ago

안녕하세요, 친절한 답변 감사합니다

실제로 SDK를 사용하는 과정에서 LocalizationOptions로 인해 에러가 발생한 것은 아니고 SDK 코드를 읽어보던 중 Platform.localeName이 Web 플랫폼을 지원하지 않는 점을 발견하여 확인해보고자 테스트코드로 에러를 임의적으로 확인했습니다.

SDK 구조를 제대로 파악하지 못했던 것 같습니다 번거롭게해서 죄송해요🥹

mbkim95 commented 1 day ago

젼혀 번거롭지 않았습니다!

확인해셨던 코드는 내부적인 이슈로 인해 Android / iOS 플랫폼과 Web 플랫폼 코드의 동작 방식이 다르게 구현되었는데요. 저 역시도 일반적으로는 PR 작업해주셨던 코드처럼 플랫폼 구분 없이 동작하는 코드가 여러 측면에서 더 좋다고 생각하기 때문에 충분히 이슈로 느껴질 수 있겠다고 생각했습니다ㅎㅎ

kakao_flutter_sdk에 관심가져주셔서 다시 한번 감사드리고 앞으로도 많은 관심 부탁드리겠습니다~