반응형

flutter 37

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

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

Flutter 자동화 테스트 함수 정리

기본 테스트 함수setUp 각 테스트 시작 전에 실행할 코드 setUp(() { 초기화 코드 });test 하나의 단위 테스트를 작성할 때 사용 test('2 + 3은 5여야 해', () { expect(2 + 3, 5); });group 여러 테스트를 논리적으로 묶을 때 사용 group('수학 계산', () { test(...); test(...); });등등 검증 함수expect(actual, matcher) 결과(actual)가 기대(matcher)와 일치하는지 확인 expect(2 + 3, equals(5));ex) // 특정 위젯 있는지 체크final heroFinder = find.byKey(const Key('work_out_level'));expect(heroFinder, findsOneW..

flutter 2025.04.28

flutte 에서의 명명 규칙

변수 명명 (camelCase) final userName = 'ha_jun';var isLoggedIn = false;int itemCount = 0; 소문자로 시작하고 단어 경계마다 대문자 (camelCase)불리언 변수는 is, has, can, should 같은 접두어 사용user_name, IsLogin, temp1 는 Dart에서는 권장되지 않음 메서드 명명 (camelCase)void fetchUserData() {}bool validateForm() {}void onLoginPressed() {} 동사로 시작 + 동작이 잘 드러나야 함onXxx, handleXxx 같은 UI 이벤트 핸들러 표현도 일반적Fetch_Data(), Submitbtn() 는 안됨 클래스 명명 (PascalCas..

flutter 2025.04.17

[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Invalid argument(s): Failed to load dynamic library 'libtensorflowlite_c.so': dlopen failed: library "libtensorflowlite_c.so" not found

libtensorflowlite_c.so 해당 파일을 못찾아서 나는 오류  Windows 사용자를 위한 자동 다운로드 스크립트 1단계. 메모장 열고 이 코드 붙여넣기@echo offsetlocal enableextensionscd %~dp0set TF_VERSION=2.5set URL=https://github.com/am15h/tflite_flutter_plugin/releases/download/set TAG=tf_%TF_VERSION%set ANDROID_DIR=android\app\src\main\jniLibs\set ANDROID_LIB=libtensorflowlite_c.soset ARM=libtensorflowlite_c_arm.soset ARM_64=libtensorflowlite_c_ar..

flutter 2025.04.04

Flutter와 Discode web-hook 설정

오늘은 디스 코드 웹훅 설정을 알아볼게요!엄청 간단하니 따라하기 쉬울꺼에요먼저설정 아이콘을 선택 연동으로 넘어와 웹후크 만들기원하는 이름으로 설정후 선택하면웹후크 URL이 생성됩니다생성된 url을 이용해서 Dart에서 api를 연동합니다.보낼때 field 설정은 아래 링크를 참고해 주세요 "embeds": [ { "title": "📌 웹훅 테스트", "description": "이것은 테스트 메시지입니다.", "color": 5814783, // 파란색 (#58ACFA) "fields": [ { "name": "이름", "value": "홍길동", "inline": true }, ..

flutter 2025.03.24
반응형