Flutter 17

[Dart/Flutter] 에러: Your project is configured with Android NDK 26.3.11579264, but the following plugin(s) depend on a different Android NDK version

에러 내용이번에는 Android에서 빌드 또는 실행 중에 아래와 같은 에러가 발생하였다. 찾아보니 설치된 버전과 몇몇 플러그인에서 요구하는 버전이 차이가 나서 발생한 오류인 것 같았다.에러가 발생한 부분을 자세히 보면 아래와 같다.Launching lib/main.dart on SM N976N in debug mode...Your project is configured with Android NDK 26.3.11579264, but the following plugin(s) depend on a different Android NDK version:- flutter_plugin_android_lifecycle requires Android NDK 27.0.12077973- image_picker_andr..

에러 2025.05.23

[Dart/Flutter] 에러: Could not register as server for FlutterDartVMServicePublisher, permission denied. Check your 'Local Network' permissions for this app in the Privacy section of the system Settings.

Flutter 디버깅 모드로 실행하니, 아래의 에러 메시지를 보게 되었다. iOS 설정에서 "Local Network" 퍼미션을 추가한 후 발생한 에러로 보여진다.에러 메시지를 상세히 보면 아래와 같다. [ERROR:flutter/shell/platform/darwin/ios/framework/Source/FlutterDartVMServicePublisher.mm(129)] Could not register as server for FlutterDartVMServicePublisher, permission denied. Check your 'Local Network' permissions for this app in the Privacy section of the system Settings. Flutt..

에러 2025.05.21

[Dart/Flutter] macOS에 네트워크 권한 설정하기

API 서비스를 node.js로 개발중이다. 서버에 연결하여 API 테스트도 해야한다. 그래서 Flutter 프로젝트를 새로 생성했다. 사용중인 OS는 macOS이다. 프로젝트 생성하고 빠르게 Dio 패키지를 설치했다.$ flutter pub add dio lib/main.dart 파일에 main() 함수에 아래와 같이 수정을 했다.void main() async { WidgetsFlutterBinding.ensureInitialized(); final dio = Dio(BaseOptions( baseUrl: 'http://localhost:4000', connectTimeout: defaultConnectTimeout(), receiveTimeout: defaultReceiveTim..

개발기 2025.05.15

[Dart/Flutter] 에러: CocoaPods could not find compatible versions for pod "Firebase/CoreOnly"

Flutter 프로젝트에서 Firebase Cloud Message를 사용하기 위해 Firebase 라이브러리를 사용중이다. Flutter 업그레이드한 후 ios나 macos에서 빌드할 때 오류가 발생하여 ios 또는 macos 디렉토리에서 pod install 명령을 실행했으나 아래와 같은 결과를 확인하였다.$ pod installAnalyzing dependenciesfirebase_core: Using Firebase SDK version '11.10.0' defined in 'firebase_core'firebase_messaging: Using Firebase SDK version '11.10.0' defined in 'firebase_core'[!] CocoaPods could not find..

에러 2025.04.22

[Dart/Flutter] 상태 관리 중 Provider에서 변수를 직접 사용하는 것에 대한 생각!

Flutter를 처음 접하고 처음 접하는 예제는 카운터를 증가/감소하는 예제이다. 기본적으로 간단한 예제로 시작하여 Flutter의 위젯에 대해 공부하다 상태 관리 장으로 넘어가면 처음 그 예제로 회기한다. 아마도 이 예제가 가장 간단한 이유도 있을 것 같다. Flutter 생태계의 상태관리 라이브러리는 Provider, GetX, BLoC, Riverpod 등 다양하다. 짧은 경험상 이들 라이브러리를 접할 때 제일 처음 예제가 모두 카운터 증가/감소하는 예제였던 것 같다. 이 라이브러리들 중 Provider을 가장 오랫동안 사용하였다.  // ...생략...@overrideWidget build(BuildContext context) { final CounterProvider counter = Pro..

개발기 2025.04.04

[Dart/Flutter] import 할 때 경로 지정 방식

Dart/Flutter 코드를 작성하면 다른 import를 사용하여 외부 파일에 있는 코드를 재사용할 수 있다. 이 때 경로를 지정할 때 2가지 유형이 있는 것으로 보인다. 더 있을 수 있지만 2가지가 전부인 것 같다.package:{PACKAGE}[/{PATH..n}]{FILE}.dart./{PATH..0}[/{PATH..n}]/{FILE}.dart첫번째 경로 지정 방식은 아래와 같이 주로 Flutter 또는 라이브러리를 사용할 때 주로 사용한다. 패키지 기준으로 절대 경로를 지정하는 것 같다.import 'package:flutter/material.dart';... 두번째 경로 지정 방식은 내가 만든 패키지 내 또는 상대적인 위치로 경로를 지정하고 싶을 때 주로 사용한다.import './repos..

개발기 2025.03.06

[Dart/Flutter] 테스트 - Counter

Dart 언어로 테스트 코드를 작성해보았다. 간단히 작성할 수 있는 Counter 예제이다. 나름대로 Counter 객체의 스펙을 아래와 같이 작성하였고 테스트 코드를 작성하였다. Counter Specification최소, 최고값을 가지며, 이 값은 변경할 수 있어야 한다. 단, 객체를 생성할 때만 변경할 수 있다.최소의 값은 0이다.최고의 값은 255이다.증가, 감소를 할 수 있어야 한다.증가, 감소할 때 최소, 최고값의 범위를 벗어날 때 세부 사항은 아래와 같다.증가는 최고값을 가져야 한다.감소는 최소값을 가져야 한다.현재 상태의 값을 검증할 수 있어야 한다.Test Driven으로 코드를 작성한 것은 아니다. Counter 객체 코드를 일부 작성하고 테스트 코드를 작성하여 테스트를 진행하며 필요한..

개발기 2025.03.04

[Dart/Flutter] 에러: integration_test compiles against Android SDK 35

Flutter 3.27.4 버전에서 Flutter 3.29.0 버전으로 업그레이드를 했었다. 그러고 flutter build 명령을 실행하였는데 아래와 같은 에러 메시지가 보이며 컴파일이 실패하였다. 원인은 찾아보긴 했는데 image_gallery_saver 플러그인을 빌드하면 하위 호환성에 문제가 생겼던 것 같다.Warning: The plugin integration_test requires Android SDK version 35 or higher.For more information about build configuration, see https://flutter.dev/to/review-gradle-config.Your project is configured to compile against ..

에러 2025.02.27

[Dart/Flutter] 에러: flutter_secure_storage 웹에서 Error: OperationError

Flutter로 모바일 앱 개발을 하면서 flutter_secure_storage를 로그인했을 때 서버에서 받은 토큰을 저장하는 용도로 사용하고 있다. 그런데 웹으로 실행한 후 로그인을 시도하고 새로고침을 하면 Error: OperationErro이 발생하는 것이었다. 안드로이드, iOS, macOS에서 실행할 때는 특이사항이 없었던 것 같다. 맨 처음 이 에러를 접했을 때 당연하게도 "웹 지원X"인 줄 알았다. 그래서 pub.dev에 flutter_secure_storage에서 README 항목을 유심히 살펴보았다. flutter_secure_storage | Flutter packageFlutter Secure Storage provides API to store data in secure sto..

에러 2024.12.20