본문 바로가기

Language & Framework/Dart & Flutter6

[Flutter/Xcode] 여러 타겟 동시에 version 관리 - Generated.xcconfig Flutter 프로젝트에서 ios 빌드하면서 AppStore에 배포할 때 자꾸 아래와 같은 경고 이메일이 날라왔다. ITMS-90473: CFBundleVersion Mismatch - The CFBundleVersion value '1' of extension 'Runner.app/PlugIns/ImageNotification.appex' does not match the CFBundleVersion value '181' of its containing iOS application 'Runner.app'.ITMS-90473: CFBundleShortVersionString Mismatch - The CFBundleShortVersionString value '1.0' of extension 'Runne.. 2024. 4. 18.
[Flutter] Flutter App Badger 플러그인의 안드로이드 호환성 이번 글에서는 Flutter 프로젝트에서 앱 뱃지 기능 구현을 위해 많이 사용되는 플러그인,flutter_app_badger 의 안드로이드 호환성에 대해 이야기해보고자 한다.  flutter_app_badger | Flutter packagePlugin to update the app badge on the launcher (both for Android, iOS and macOS)pub.dev 필자의 프로젝트에서 위 플러그인을 사용하면서 안드로이드 에뮬로 실행하니제대로 작동이 안되는 경우도 있었고 작동하는 방식이 iOS와 다른 경우도 있었다.그래서 이 플러그인이 안드로이드 앱 뱃지 기능을 어떻게 구현했는지 자세히 알아보았는데그 과정에서 알게 된 내용들을 공유하고자 한다.  1.  pub.dev 문서먼저.. 2024. 3. 26.
[Flutter] ChangeNotifier 잘 쓰는 꿀팁! Flutter 개발에서 상태 관리를 위해서 ChangeNotifier을 유연하고 강력하게 사용하는 것이 중요하다. 많은 Flutter 프로젝트의 아키텍쳐로 사용되는 MVVM 아키텍쳐에서는 Model / ModelView / VIew Layer 중 ModelView 계층을 ChangeNotifier 믹스인한 클래스로 표현할 만큼 Flutter 프로젝트에서 핵심적인 부분을 차지한다. 이렇게 자주 사용되는 ChangeNotifier을 잘 써먹을 수 있도록 기복적이지만 유용한 꿀팁들을 정리해본다! 1. 상태 캡슐화 상태관리를 위해 외부에서 ChangeNotifier 믹스인한 클래스의 내부 상태 접근하는 경우가 빈번하게 발생한다. 이를 위해 접근 및 수정할 수 있는 getter와 setter를 작성하고 내부 .. 2024. 1. 20.
[Flutter] STOMP, WebSocket으로 실시간 통신하기 1. 개념 WebSocket 이란? 웹 애플리케이션에서 실시간 양방향 통신을 가능하게 하는 통신 프로토콜. 일반적으로 통신에 사용하는 HTTP 프로토콜은 요청해야 응답이 오는 방식으로 작동한다. 하지만 채팅, 실시간 업데이트와 같이 요청이 없어도 서버에서 지속적으로 응답을 주어야 하는 경우에는 HTTP 프로토콜을 사용하는 것에 불편함을 느끼게 된다. 이를 위해 고안된 것이 WebSocket 이다. WebSocket 통신 프로세스 1) 클라이언트의 요청 클라이언트는 서버에 HTTP 요청을 보내고, 이 요청에는 WebSocket 연결을 원한다는 것을 나타내는 특별한 헤더가 포함된다. 2) 서버의 응답 서버가 WebSocket 연결을 지원하고 받아들일 준비가 되면, 클라이언트의 요청에 대해 101 Switch.. 2024. 1. 15.
[Flutter] --dart-define 옵션 사용법 --dart-define 옵션이란? 이 설정을 통해 사용자 정의 변수를 정의하고 런타임 시 동적으로 사용할 수 있도록 하는 옵션. 런타임의 환경에 따라 서버 엔드포인트를 변경하거나 로깅 레벨을 조정하거나 배포 환경을 설정하는 등의 목적으로 사용할 수 있다. 사용법 실행(빌드) 명령 뒤에 --dart-define=변수명=값 추가 flutter run --dart-define=변수명=값 ex) api 서버 엔드포인트를 설정할 경우 flutter run --dart-define=API_URL=https://dev.api.com ex) debug / production 빌드 환경을 구분하여 id 입력 flutter run --dart-define=FIREBASE_PROJECT_ID=your_debug_proj.. 2023. 12. 10.
[Flutter] Text 길이에 따라 폰트 크기 조절하는 4 가지 방법 1. MediaQuery.of(context).sizedouble screenWidth = MediaQuery.of(context).size.width; double textSize = screenWidth < 390 ? 16.0 : 14.0; 화면 사이즈에 따라 폰트 사이즈가 변하는 방식이다. 조금 투박하다. 모든 상황을 커버할 수는 없지만 넉넉하게 폰트 사이즈를 작게 잡는다면 가장 손쉽게 해결할 수 있는 방법이다. 2. FittedBox내가 선호하는 방식이다. Flutter에서 제공하는 위젯 중 하나로 FittedBox 위젯에 주어지는 제약에 맞춰서 FittedBox 내부의 contents의 크기를 조정해준다. 내가 주로 사용하는 방식은 아래와 같다.FittedBox( fit: BoxFit.scale.. 2023. 11. 23.