반응형

Flutter 34

go_route 사용해보기

Flutter 프로젝트를 하다 보면 Navigator.push()를 계속 쓰는 게 점점 귀찮아지죠.“이 페이지가 어디서 왔는지”, “뒤로가기 스택은 어떻게 관리하지?” 같은 문제도 자주 생깁니다. 그래서 오늘은 go_router 패키지를 사용하는 방법을 정리해봤어요. 가볍게 Riverpod과 함께 라우팅 패턴을 이용해볼게요 항목 Navigator 방식 GoRouter 방식코드 구조화면마다 직접 push/pop선언형 라우팅 (Route 정의로 관리)딥링크/URL수동 처리 필요기본 지원인증 가드직접 조건문 작성redirect 기능 제공상태관리 연동불편함Riverpod, Provider 등과 ..

flutter 2025.10.20

Flutter에서 사용자별 SQLite 관리하기 (with sqflite)

여러 사용자가 로그인할 수 있는 앱에서, 각 사용자마다 독립된 SQLite 데이터베이스를 갖게 하려면 어떻게 해야 할까? 우산 작성이의 경우는 UID 기준으로 DB를 분리했습니다.왜냐하면 그럴일은 잘 없겠지만 한디바이스에 여러계정으로 로그인시 사용자별로 구분 지지 않는다면 로컬 DB가 하나로 합쳐져 다른 계정의 정보를 불러올수 있기때문에 UID를 통해 물리적으로 분리 하려고 합니다. 이번 글에서는 sqflite를 이용해1. 사용자별 DB 생성2. 검색 속도 향상용 인덱스 구성3. 서버 동기화(upsert)를 구성하려고 합니다. 셋팅dependencies: sqflite: ^2.4.2 path: ^1.9.0 crypto: ^3.0.3SQLite와 파일 경로 조합(path),그리고 사용자별 DB 파..

flutter 2025.10.14

키패드를 unfocus 했는데 다시 나타나는 문제 해결 방법

사진과 같이 unfocus 틀 통해 키패드가 활성화 됐을때 밖같영역 선택시 unfocus 되도록 추가함 하지만 다른페이지 접근후Navigator.pop(context); 할 경우 키패드가 다시 나타나는 현상 발견 문제 정리1. Navigator.pop(context)로 위에 덮여 있던 화면이 사라지면, 아래에 있던 화면이 다시 보이는 상태2. Flutter는 아래 화면의 포커스 트리(Focus Tree)를 그대로 복원하려는 경향이 있음. 즉, 이전에 TextFormField가 포커스를 가지고 있었다면, 팝 이후에도 그 포커스가 살아나면서 키보드가 다시 뜨는 현상이 생김3. GestureDetector로 바깥을 탭했을 때 unfocus() 하는 건 “탭 이벤트”에 대한 처리일 뿐, 라우트(pop)로 인한 ..

flutter 2025.09.23

비정상 종료를 처리하려면 이 누락된 dSYM 파일이 필요합니다.

FireBase Crashlytics 화면에서 아래와 같은 문제가 발생했다. 보통 이 메시지는 “Crashlytics가 크래시가 난 바이너리의 UUID(고유 식별자)와 매칭되는 dSYM을 못 찾았다”는 뜻 dSYM이 생성되도록 Xcode 설정 확인Target ▸ Build SettingsDebug Information Format: DWARF with dSYM File (Debug/Release 모두)Strip Debug Symbols During Copy: No (권장)Flutter라면 flutter build ios --release 후, Xcode Archive(Product ▸ Archive)까지. 아카이브를 해야 올바른 dSYM이 나옴아래와 같이 설정 firebase 접근 업로드 성공 시 ..

firebase 2025.09.08

Line 로그인 구현 - Flutter

https://pub.dev/packages/flutter_line_sdk flutter_line_sdk | Flutter packageA Flutter plugin for using the LINE SDKs with Dart in Flutter apps.pub.dev오늘은 pub.dev에 있는 LINESDK 를 이용한 라인 로그인을 구현하겠습니다. main 에서 아래와 같이 넣어준다 초기화 목적// Line key 값await LineSDK.instance.setup("123456").then((_) { print("LineSDK Prepared");}); 기본적인 로그인 함수를 만들어준다. 이후https://developers.line.biz/en/ https://developers.line.b..

flutter 2025.08.12

Foreground 를 통한 안드로이드 시스템이 앱을 백그라운드로 밀거나 강제 종료하는 걸 막는 방법

말그대로 Foreground 알림을 통한 앱이 강제 종료하는 걸 막는 방법 이렇게 하는 이유 기존에는 wakelock_plus 패키지를 통해 앱이 종료되지 않고 계속 실행되게 처리했음 하지만 os중 샤오미의 경우 샤오미는 MIUI 기반으로 작동하는데, MIUI는 앱 절전 및 백그라운드 관리가 굉장히 공격적인 편따라서 다음과 같은 조건에서 앱이 강제로 종료되거나 기능이 제한 샤오미 미패드 6에서 앱이 종료되거나 제한되는 경우 조건 동작일정 시간 터치가 없고, 화면이 켜진 채 유지될 경우화면 꺼짐 방지 무시하거나 앱 프로세스 종료 시도앱이 백그..

kotlin 2025.07.01

flutter 에서 kotlin 연결 후 YOLO 모델을 사용해 안경(glasses) 착용 여부 감지

사용자가 카메라를 실행해서 코틀린에서 flutter 로 안경 및 선글라스를 착용했는지 여부는 YOLO를 이용해 실시간으로 감지 하는 기능을 만들어 봤습니다. 순서 flutter 이벤트 호출 ImageProxy → Bitmap 변환YOLO 모델로 Bitmap 분석결과 중 "glasses" 클래스가 있는지 확인Flutter로 결과 전송 (EventSink)receiveBroadcastStream로 결과 값 실시간 수신자원 정리 (imageProxy.close()) 작성이의 경우 flutter 에서 초기에 이벤트를 호출 합니다.// 안드로이드 안경 감지 yolo static const EventChannel _androidGlassesEventChannel = EventChannel("native_glas..

kotlin 2025.06.19

flutter - kotlin MediaProject를 이용한 실시간 내 디바이스 화면 web에 공유 (2부)

네 안녕하세요 죽지도 않고 돌아온 저 입니다 *^.^* 저번 작업에 이어서 웹에서 처리해여 할 작업들을 정리 하겠습니다. 저같은 경우는 node기반으로 웹을 작업했는데요. 다른분은들 편한걸로 사용하시면 될것 같아요 먼저 node 를 설치해 줍니다.https://nodejs.org/ko Node.js — 어디서든 JavaScript를 실행하세요Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.nodejs.org 설치 완료시 노드 설치가 종료되면원하는 경로에 웹을 실행할 관련 js 파일들과 html 파일을 만들어줍니다.저의 경우 프로젝트를 새로 파서 만들어줬어요 폴더 안에js 파일을 만들어줍니다.저의 경우 이렇게두가지 만들어 ..

kotlin 2025.06.09

flutter - kotlin MediaProject를 이용한 실시간 내 디바이스 화면 web에 공유 (1부)

코틀린을 이용해서 실시간으로 웹에 내 디바이스 화면을 송출 하는 방법을 정리 하려고 합니다.처음 하는 작업이라 이상한 점도 있고 어려움은 있었지만 우여곡절끝에 작업은 마무리 했습니다. 우선 MediaProject을 이용해서 사용해볼텐데요 자세한 내용은https://developer.android.com/media/grow/media-projection?hl=ko 미디어 프로젝션 | Android media | Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 미디어 프로젝션 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Android 5 (API 수준 21)에 도입된 android.medeveloper.an..

kotlin 2025.06.09
반응형