전체 글
[Flutter] Xcode "no such module Flutter" Error
1. /librm -rf pubspec.lockflutter pub cache cleanflutter cleanflutter pub get2. /iosrm -rf Podfile.lockrm -rf Pods rm -rf ~/Library/Developer/Xcode/DerivedData/*pod deintegratepod installpod cache clean --allpod install --repo-update --clean-install만약 애플 실리콘이 아닌, 인텔 맥북에서 제대로 작동이 안 될 경우 아래와 같이 arch 를 붙여 arch -x86_64 pod deintegrate, arch -x86_64 pod install을 입력.rm -rf Podfile.lockrm -rf Pods rm -..
[Flutter] Flutter의 동작원리 및 Isolate와 쓰레드
Flutter를 사용하여 애플리케이션을 개발하는 과정에서 UI가 버벅거리거나 성능이 저하되는 현상을 경험한 개발자들이 많을 것이다. 이는 주로 메인 스레드에서 무거운 작업을 처리할 때 발생하는 문제다. 이 문서에서는 Flutter의 내부 아키텍처와 Isolate 시스템의 작동 방식, 그리고 이를 활용한 최적화 방법에 대해 기술적 관점에서 심층적으로 살펴본다.1. Flutter 아키텍처 개요Flutter는 단일 코드베이스로 다양한 플랫폼에서 동작하는 UI 프레임워크다. Flutter 애플리케이션은 다음과 같은 계층 구조로 구성된다.Flutter Application│├── Framework Layer (Dart)│ ├── Material/Cupertino (디자인 시스템)│ ├── Widgets (..
[Flutter] 백그라운드에서의 BLE 데이터 동기화: Android Native 통합
모바일 애플리케이션에서 백그라운드 작업 처리, 특히 블루투스 저전력(BLE) 장치와의 지속적인 통신은 기술적으로 복잡한 문제입니다. 이러한 도전은 Flutter와 같은 크로스 플랫폼 프레임워크를 사용할 때 더욱 증폭됩니다. 본 글에서는 Flutter 애플리케이션이 백그라운드 상태에서도 BLE 디바이스와 안정적으로 통신하기 위한 아키텍처를 설계하고 구현한 과정을 상세히 다룹니다.1. 문제 정의와 기술적 도전1.1 프로젝트 배경스마트 웨어러블 디바이스와 연동되는 건강 관리 애플리케이션에서는 사용자가 앱을 적극적으로 사용하지 않거나 디바이스 화면이 꺼진 상태에서도 지속적인 데이터 수집이 필요합니다. 이 애플리케이션은 다음과 같은 기능이 요구되었습니다:실시간 데이터 수집: 걸음 수, 심박수, 수면 패턴 등의 사..
[Flutter] CocoaPods could not find compatible versions for pod "Firebase/Auth"- CocoaPods 의존성 및 버전 관련 에러 해결하기
문제 상황CocoaPods를 통한 iOS 의존성 설치 중 다음과 같은 에러가 발생했습니다:[!] : In snapshot (Podfile.lock): Firebase/Auth (= 11.0.0) In Podfile: firebase_auth depends on Firebase/Auth (= 11.6.0)발생 원인 분석Firebase 패키지 버전 간의 불일치CocoaPods 스펙 저장소의 만료Podfile.lock과 실제 의존성 요구사항의 충돌에러 유형별 해결 방법1. 버전 불일치 에러Could not find compatible versions for pod "Firebase/Auth"해결 방법:pubspec.yaml의 Firebase 패키지 버전 동기화:dependencies: fireb..
[Flutter] Error (Xcode): Undefined symbol - iOS 빌드 시 링커 에러 해결
문제 상황Flutter iOS 빌드 중 다음과 같은 링커 에러가 발생했습니다:Error (Xcode): Undefined symbol: _GULIsLoggableLevelError (Xcode): Undefined symbol: _GULOSLogBasicError (Xcode): Undefined symbol: _GULOSLogErrorError (Xcode): Undefined symbol: _GULOSLogInfoError (Xcode): Undefined symbol: _GULOSLogWarningError (Xcode): Undefined symbol: _GULSetLoggerLevelError (Xcode): Undefined symbol: *OBJC*CLASS_$_GULAppDelegateSw..
[Flutter] Android build.gradle minifyEnabled/shrinkResources - 안드로이드 빌드 최적화와 flutter_local_notifications 패키지 release 모드 에러 해결
들어가며Flutter 앱을 릴리즈할 때 안드로이드 빌드 최적화는 필수적입니다. 하지만 최적화 과정에서 예상치 못한 런타임 에러를 마주치기도 합니다. 이번 글에서는 안드로이드 빌드 최적화 설정을 자세히 살펴보고, 실제 발생한 에러 케이스와 해결 과정을 공유하고자 합니다.안드로이드 빌드 최적화 설정minifyEnabled의 동작 원리minifyEnabled는 R8 컴파일러(이전의 ProGuard)를 사용하여 다음과 같은 최적화를 수행합니다:코드 축소(Code Shrinking)사용되지 않는 클래스, 필드, 메서드 제거라이브러리에서 사용하지 않는 부분 제거데드 코드 제거난독화(Obfuscation)클래스, 메서드, 필드명을 의미 없는 짧은 이름으로 변경리버스 엔지니어링 방지앱 크기 축소 효과최적화(Optimi..
[Flutter] Isolate에 대한 이해와 활용 사례 / PlatformException(PermissionHandler.PermissionManager, Unable to detect current Android Activity., null, null)
본 문서는 Flutter의 Isolate 개념에 대해 기술적 배경과 함께, 실제 애플리케이션 개발 중 발생할 수 있는 문제와 해결 방법을 중심으로 다룹니다. 특히, 권한 요청(permission_handler) 또는 Notification 초기화 과정에서 발생하는 "Unable to detect current Android Activity" 예외 상황을 예시로 삼아, 이를 해결하기 위한 방법을 제시합니다.1. Isolate의 개념1.1. 정의Dart 언어의 가장 큰 특징 중 하나는 Isolate라는 단위로 프로세스를 분할한다는 점입니다. 전통적인 스레드(thread)와 달리, 하나의 Isolate는 고유한 메모리 힙(Heap)을 가지고 완전히 독립적으로 동작합니다. 따라서 여러 Isolate 간에 객체를..
[Flutter] Google Dialogflow ES vs CX 챗봇 구현 비교 가이드
Flutter 앱에서 Dialogflow를 사용하여 챗봇을 구현하면서 겪었던 경험을 바탕으로, Dialogflow ES(Essentials)와 CX의 차이점 및 각각의 구현 방법에 대해 상세히 알아봤습니다..목차Dialogflow ES와 CX의 주요 차이점Flutter에서의 구현 방법 비교실제 구현 중 발생한 문제와 해결 방법어떤 버전을 선택해야 할까?1. Dialogflow ES와 CX의 주요 차이점1.1 복잡성과 사용 목적Dialogflow ES간단한 챗봇 구현에 적합기본적인 대화 흐름 관리작은 규모의 프로젝트에 이상적Dialogflow CX복잡한 대화 시나리오 처리 가능시각적 흐름 관리대규모 엔터프라이즈 프로젝트에 적합1.2 주요 기능 비교기능Dialogflow ESDialogflow CX대화 흐름..
안드로이드 재난문자 차단 안 됨 해결 방법 (공기계)
공기계 사용시 재난문자 기능을 꺼도 계속 올 경우비행기 모드 설정 후 > 와이파이 사용하여 임시방편으로 해결가능
<Why A.I. Isn’t Going to Make Art> By Ted Chiang
Why A.I. Isn’t Going to Make ArtBy Ted ChiangAugust 31, 2024In 1953, Roald Dahl published “The Great Automatic Grammatizator,” a short story about an electrical engineer who secretly desires to be a writer. One day, after completing construction of the world’s fastest calculating machine, the engineer realizes that “English grammar is governed by rules that are almost mathematical in their stric..