Flutter 싱글톤 대신 의존성 주입 사용하기

프로그램이나 앱이 한번 가동되면 종료될 때까지 한 개의 인스턴스만을 가져야 하는 경우가 있습니다. 예를 들면 소켓, I/O 처리, 옵션 설정 등이 있을 겁니다. 지금까지 싱글톤 패턴을 이용해 어디서든 instance를 가져와 사용했었는데, 아주 큰 단점이 하나 있습니다. 사용하는 순간 종속되어 단위 테스트와 다른 프로젝트에 재활용할 수 없다는 것이죠. 😨 그래서 최대한 싱글톤 사용을 지양하고자 다른 방법을 찾게 되었습니다. 바로 의존성 주입(DI)죠. 🔍 의존성 주입 (DI, Dependency Injection) 💡 Quotation 의존성 주입은 프로그램 디자인이 결합도를 느슨하게 되도록 하고 의존관계 역전 원칙과 단일 책임 원칙을 따르도록 클라이언트의 생성에 대한 의존성을 클라이언트의 행위로부터 분리하는 것이다....

2025년 10월 16일 · 4 min · 705 words · JongBin

Flutter 블루투스 연결 감지하기

앱을 만들고 있는데 필요한 기능이 이미 페어링된 기기가 연결됐는지 감지하는 기능인데 플러터만으로는 구현이 불가능해서 찾아보게 되었습니다. 어떻게? 앱이 백그라운드 상태일 때도 블루투스 감지 앱에서 주기적으로 체크하는 것이 아닌 콜백이나 이벤트로 처리 결정적으로 플러터에서 지원하지 않음 네이티브 코드 작성(BroadcastReceiver 및 EventChannel) EventChannel 💡 Quotation 네이티브(Android, iOS)와 플러터 간에 지속적인 이벤트 스트림을 주고받을 때 사용하는 통신 방법 ⚠️ iOS 는 작성해 보지 않음 네이티브 코드 작성 /PROJECT_DIR/android/src/kotlin/com/example/PROJECT_NAME/MainActivity.kt 안드로이드 네이티브 코드 시작점이 있는 파일인데 이곳에 서비스, 블루투스 연결 감지를 위한 코드를 작성하고 이벤트 채널을 이용하여 플러터 앱으로 전달을 하면 됩니다....

2025년 09월 20일 · 5 min · 870 words · JongBin

Flutter 환경 구성하기

💡 Quotation 플러터(Flutter)는 구글이 출시한 오픈 소스 크로스 플랫폼 GUI 애플리케이션 프레임워크이다. 안드로이드, iOS, 윈도우즈, 리눅스 및 웹용 애플리케이션과 구글 퓨시아용 앱의 주된 소스코드로 사용된다. 옛날에는 안드로이드 앱을 만들려면 Java 코드로, IOS 앱을 만들려면 Object-C 또는 Swift 를 사용해서 만든 것 같았는데 찾아보니 하나의 코드로 모바일 심지어 웹 까지 만들 수 있는 프레임워크가 있다니 감탄하며 사용해 보려고 합니다. 플러터가 출시된지는 현재 기준으로 8년이 넘었네요.. 빠르게 개발 환경을 구성해 보도록 합시다....

2025년 09월 17일 · 2 min · 222 words · JongBin