본문 바로가기

Flutter11

Flutter iOS 파일 다운로드 문제 여태까지 문제가 없다가 갑자기 왜? iOS 애플리케이션에서 파일 다운로드 후 해당 파일이 3rd-party app으로 공유되지 않는 이슈가 리포트됐습니다.이를 수정하기 위해 처음 리포트됐을 때는 확인하다가 큰 문제가 아니라고 생각하고 할일에만 넣어두고 보지 않았죠.그러다 점점 문의가 쌓이고, 도저히 가만 놔둘 수 없겠다. 하는 생각이 들어 수정을 결심했습니다.하지만 아무리 AI에게 물어봐도 해결되지 않고, 구글링을 해도 동일한 케이스의 문서가 없어서 골머리를 앓았습니다.문제점파일 다운로드를 할 때, 추가적인 패키지를 쓰고싶지 않아 dio 패키지의 download 메서드를 사용하여 파일을 직접 Write 했습니다.제 생각에는 이 동작이, 시스템에서 수행하는 다운로드가 아닌 앱에서 자체 write를 하여 i.. 2025. 7. 30.
플러터 웹뷰에서 물리 키보드 방향키가 동작하지 않는다. 메인 컴포넌트가 웹뷰로 구성된 페이지에서 물리 키보드의 방향키가 동작하지 않는다는 문의를 받았습니다. 재현해보니 정말 동작하질 않았습니다. 아이패드같은 태블릿으로 앱을 사용할 때 키보드를 쓰는 사용자는 충분히 불편하겠다 싶어 분석결과, 아래와 같이 조치했습니다. 물론 플러터 엔진의 문제로 보여 임시 조치이며, webview_flutter와 flutter_inappwebview 공통적으로 발생하는 문제입니다. 문제가 발생하는 코드 당연히 일반적인 구현입니다. @override Widget build(BuildContext context) { return Scaffold( child: SafeArea( child: InAppWebView( ... .. . ), ), ); } 조치한 코드 WebView 위젯(.. 2024. 2. 6.
플러터에서 CocoaPods 라이브러리 최신화하기 플러터로 개발을 하다보면 firebase와 같은 패키지가 업데이트가 자주 됩니다. 이럴 땐 CocoaPods 라이브러리를 최신화해줘야합니다. 1. CocoaPods 삭제하기 # ios 디렉토리로 이동 후 Podfile.lock 삭제 cd {projectRootDir}/ios rm -f Podfile.lock # CocoaPods 의존성 삭제하기 pod deintegrate # CocoaPods 캐시 삭제하기 pod cache clean --all 2. CocoaPods 설치하기 pod install 명령어를 입력하면, 아래와 같이 라이브러리가 다시 설치되는 것을 볼 수 있습니다. # CocoaPods 라이브러리 설치 # --repo-update 옵션은 pod install 전에 pod repo updat.. 2023. 12. 13.
Flutter에서 Google Spreadsheet에 데이터를 추가해보자. 🫤 "알림이 2번 와요", "파일 다운로드가 안 돼요" 😡 "OO가 안 돼요" 모바일 앱을 새로 배포하고 나니, 당연하게도 기존 고객들에게서 문의가 쏟아졌다. 문제는 역시나 문의 시 이슈를 파악할 수 있는 정보(Android인지 iOS인지, 앱 버전은 무엇인지 등)를 주지 않았다. 나 같은 경우, QA로 일했던 경력이 있었기 때문에 당연히 버전과 precondition 등을 제공해 줄 알았던 멍청이었던 거다. 이번엔 내가 이 문의하기 기능에 대해 어떻게 해결했는지에 대한 게시글이다. 왜 구글 스프레드시트로 정했을까? 나는 아래와 같은 요구사항이 필요했다. 1. 단순하게 문의를 받는 창구만 필요하다. 2. 이 단순한 구현을 위해 DB / Controller / Service 로직을 구현한다면 리소스 낭비라.. 2023. 10. 19.
다국어 처리를 통해 Flutter 앱 이름을 언어에 맞게 설정해보자. 안녕하세요. 이번 게시글에서는 앱 이름의 다국어 처리를 진행해볼 예정입니다. 우리가 앱을 사용할 때, 한국인이어도 스마트폰의 언어를 영어로 사용할 수도 있고, 스페인어로 사용할 수도 있습니다. 그런데도 앱 이름이 한국어로 통일된다면 이질감이 있겠죠? 이를 개선하기 위해 이번 게시글에서는 플러터 앱 이름을 다국어 처리하는 방법에 대해 알아보겠습니다. 1. Android 1-1. EN android/app/src/main/res의 values/ 디렉토리에 strings.xml을 생성하고, 아래와 같이 선언합니다. 2-2. KO android/app/src/main/res 디렉토리에 values-ko/ 디렉토리를 생성하고, 그 디렉토리에 strings.xml을 생성합니다. 2-3. 앱 이름 선언하기 andro.. 2023. 9. 14.
Flutter Transition에 대해 한눈에 알아보자. 현재 저는 GetX를 이용하여 상태관리를 하고 있는 플러터 애플리케이션을 개발하고 있습니다. GetX의 Route 기능을 사용할 때마다 헷갈리고, 굉장히 고민스러울 때가 있습니다. 바로 이번엔 또 transition 속성을 뭐로 하지? 입니다. 이에 쉽게 어떤 애니메이션인지를 확인할 수 있도록 모든 속성을 정리해보고자 합니다. fade fadeIn cupertino cupertinoDialog circularReveal size downToUp upToDown leftToRight leftToRightWithFade rightToLeft rightToLeftWithFade native noTransition zoom topLevel 2023. 8. 30.