flutter\packages\flutter_tools\lib\src\web\chrome.dart 파일 열기 3. --disable-web-security 옵션 추가 How to solve flutter web api cors error only with dart code? 로컬 개발 환경에서 chrome 실행 시 보안 설정을 수정하는 것 실제 배포 환경을 말하는 것이 아님 (혼동 주의)
출처로부터 자원 로드를 허용하도록 서버가 허가해주는 HTTP 헤더 기반의 메커니즘 => 출처가 다른 서버간의 리소스 공유를 허용하는 것 https://future-flutter.dev:8080/sessions/detail?page=3#flutter_web Protocol Host Port Path Query String Fragment Origin(출처) ? URL (Uniform Resource Location) 구조에 서 Protocol + Host + Port 교차 출처 리소스 공유 (CORS)
(index.html) Browser Engine Cloud Server Server 1) GET ‘list’ 2) OPTION ‘list’ 3) Response with allowed options 4) If not allowed 4) GET ‘list’ (if allowed) 5) Response with allow options 6) Result https://helloworld.com CORS, Preflight, 인증 처리 관련 삽질
기획자 및 관계자들을 위한 앱의 동작 테스트 수단이 필요 Flutter Web 시도 경험을 바탕으로 PoC 진행 컨슈머 앱을 웹에서 확인 가능한 환경을 제공하여 앱 동작 확인할 수 있는 수단을 제공 [오사카 /교토] 서버/앱 [도쿄] 서버/앱/ QA/기획 [후쿠오카/ 가고시마] QA/CS ABC Consumer 기획/디자인 /개발
getter 형식을 사용하는 것으로 정리 Package Name AS-IS TO-BE Support Custom Lint adjust_sdk Adjust.*** $adjustUtil.*** O newrelic_mobile NewrelicMobile.*** $newrelicUtil.*** O flutter_inapwebview ChromeSafariBrowser() $chromeSafariBrowser O flutter_app_badger FlutterAppBadger.*** $appBadger.*** O firebase_core Firebase.*** FirebaseUtil.*** X firebase_analytics FirebaseAnalytics.instance.*** $firebaseAnalytics.*** O firebase_auth FirebaseAuth.instance.*** $firebaseAuth.*** O firebase_crashlytics FirebaseCrashlytics.instance.*** $firebaseCrashlytics.*** O firebase_messaging FirebaseMessaging.instance.*** $firebaseMessaging.*** O firebase_remote_config FirebaseRemoteConfig.instance.*** $firebaseRemoteConfig.*** O rokt_sdk RoktSdk.*** $roktSdkUtil.*** X
canvaskit 변경됨 SDK 3.22 부터 --wasm 사용 가능 AS-IS TO-BE --web-renderer {value} auto – 모바일 브라우저에서는 html, 데스크탑 브라 우저에서는 canvaskit 으로 동작 html – 경량적, 웹 표준기술을 사용 canvaskit – 고품질 그래픽, 일관된 렌더링 --wasm 브라우저가 wasm 지원할 경우 wasm, 아닐 경우 canvaskit 이 옵션을 설정하지 않을 경우 canvaskit flutter build web –help 로 옵션 지원여부 확인 가능 Intent to deprecate and remove the HTML renderer in Flutter Web
작업 내용을 실제로 확인하기 위해 Flutter Web 내부 배 포 실행 - flutter analyze, flutter test, spell check 등 실행 - 플랫폼 별 빌드 실행 <- Web 빌드 시 배포 수행 - 테스트 실행 결과 및 Web 빌드 결과 확인 URL을 PR Comment 추가 - 매일 업로드된 버킷 목록과 PR 목록을 확인하여 자동으로 클라우드 저장소에 업로드된 웹 빌드물 삭제
발생하는지 확인한다. 로컬 개발 환경에서 우선 확인 패키지 추가 시, 웹 환경 설정을 누락했을 가능성이 높 다. ② 관련 기능이 반드시 필요한지 확인한다. 패키지가 웹을 지원하는지 확인하고, 가급적 지원하도록 대 응하자. (생각보다 많은) 패키지가 웹 환경을 지원한다. 만약 웹을 지원하지 않을 경우, Mock 활용 고려하자. 패키지를 업데이트 했으면, 모바일 환경에서 한번 더 체크 하자. ③ 반대로, 굳이 필요하지 않은지 판단한다. 관련 기능을 웹환경에서 의도적으로 제공하지 않는다. 인터페이스 호출 시 플랫폼별로 다르게 동작하도록 구성 한다. 앱과 웹의 실행 환경은 다르다는 것을 항상 염두한다. ④ 웹에서 제약사항을 잘 공유한다. 기술적으로 지원이 불가능한 경우가 있을 수 있다. 앱과 동작이 완벽히 동일하지 않을 수 있다. 브라우저 쿠키 & 캐시 제거 방법 공유하자.
출처로부터 자원 로드를 허용하도록 서버가 허가해주는 HTTP 헤더 기반의 메커니즘 => 출처가 다른 서버간의 리소스 공유를 허용하는 것 https://future-flutter.dev:8080/sessions/detail?page=3#flutter_web Protocol Host Port Path Query String Fragment Origin(출처) ? URL (Uniform Resource Location) 구조에 서 Protocol + Host + Port 교차 출처 리소스 공유 (CORS)
야기 https://engineering.linecorp.com/ko/blog/demaecan-2nd-recode-kmm-to-flutter 멀쩡한 앱을 Flutter 앱으로 다시 짠 이유 – 일본 1위 배달앱, 두 번째 Recode https://www.uber.com/en-KR/blog/h3/ H3: Uber-s Hexagonal Hierarchical Spatial Index https://medium.com/flutter-community/conditional-imports-across-flutter-and-web-4b88885a886e Conditional imports across Flutter and Web https://developer.mozilla.org/ko/docs/Web/API/Window/localStorage Window.localStorage
https://stackoverflow.com/questions/65630743/how-to-solve-flutter-web-api-cors-error-only- with-dart-code/66879350#66879350 How to solve flutter web api cors error only with dart code? https://pub.dev/packages/flutter_cors flutter_cors https://techblog.lycorp.co.jp/ko/demaecan-3rd-recode-react-native-to-flutter Flutter 전환의 마침표 – 일본 1위 배달 앱, 세 번째 Recode https://www.expertappdevs.com/blog/flutter-web-vs-react-native-web Flutter Web or React Native Web: Who Will Win the Battle?
Flutter InAppWebView 6 > Web Support https://pub.dev/packages/fpjs_pro_plugin#web-platform Fingerprint Pro Flutter > web support https://pub.dev/packages/google_maps_flutter_web#usage google_maps_flutter_web > usage https://developers.google.com/maps/documentation/javascript/error-messages#referer-not-allowed-map-error Google Maps Platform > RefererNotAllowedMapError
the HTML renderer in Flutter Web https://techblog.lycorp.co.jp/ko/improve-development-experience-with-flutter-web Flutter Web을 활용해 제품 개발 환경 개선하기 https://developer.mozilla.org/ko/docs/Web/HTTP/CORS 교차 출처 리소스 공유 (CORS) https://www.popit.kr/cors-preflight-%EC%9D%B8%EC%A6%9D-%EC%B2%98%EB%A6%AC- %EA%B4%80%EB%A0%A8-%EC%82%BD%EC%A7%88/ CORS, Preflight, 인증 처리 관련 삽질 https://velog.io/@ojwman/spring-boot-cors-header-preflight SpringBoot에서 CORS할 때 header, preflight 이슈 해결하기