| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- printf
- DART
- java 콘솔 출력 차이
- Flutter
- firebase
- JS
- npm
- println
- lifecycle
- JQ
- abap
- react
- java 출력
- riverpod
- LLM
- ListView
- Clean Architecture
- 자바스크립트
- 단축키
- scss
- java
- 배포
- 앱심사
- develop
- 엡
- 자바 출력 방식
- 자바 포맷 출력
- unity
- UI/UX
- nodejs
- Today
- Total
목록2025/08 (24)
guricode
lib/main.dartimport 'package:flutter/material.dart'; // Flutter 기본 위젯 패키지import 'package:flutter_riverpod/flutter_riverpod.dart'; // Riverpod의 ProviderScope 사용import 'package:mvvm_prac/todo_page.dart'; // TodoPage 화면void main() { // 앱 시작점. ProviderScope로 트리를 감싸 리버팟 상태관리 활성화 runApp(const ProviderScope(child: MyApp()));}class MyApp extends StatelessWidget ..
GoRouter실습코드https://github.com/FEgguri/flutter_gorouter1. 특징선언형 라우팅: URL 경로 기반으로 라우트 스택 관리Path Parameter: /post/:id → /post/1 같은 형태로 사용Query Parameter: /search?text=abc 형태 지원웹 새로고침 시에도 파라미터 유지2. 기본 설정final router = GoRouter( routes: [ GoRoute( path: '/', builder: (context, state) => const HomePage(), routes: [ GoRoute( path: 'post', builder: (context, ..
Flutter에서 테마를 꾸밀 때, 기본적으로 제공하는 ThemeData만으로는 내가 원하는 모든 색상이나 스타일을 정의하기 어려운 경우가 많다. 그래서 Flutter는 ThemeExtension이라는 기능을 제공해서 직접 테마 속성을 확장할 수 있도록 해준다.1. ThemeExtension 이란?왜 필요한가?ThemeData의 기본 속성만으로는 앱 전체에 걸쳐 쓰는 색상(main, sub 등)을 정의하기에 부족하다. 그래서 ThemeData.extensions 라는 확장 필드를 통해 직접 색상이나 스타일을 테마에 추가할 수 있다.ThemeData( extensions: >[ AppThemeExtension( main: Colors.red, mainLight: ..., // 사용..
Firebase란?Firebase는 구글이 제공하는 BaaS (Backend as a Service) 플랫폼으로, 별도의 서버 구축 없이 인증, 데이터베이스, 스토리지, 메시징 등 다양한 기능을 제공한다.Flutter에서는 다양한 Firebase 서비스를 패키지를 통해 사용할 수 있다. Firebase를 Flutter에서 사용하기 위한 설정1. Firebase 프로젝트 생성Firebase 콘솔에 접속하여 새 프로젝트를 만든다.Android/iOS 앱을 추가하고 패키지명을 지정한다.google-services.json (Android) / GoogleService-Info.plist (iOS) 파일을 프로젝트에 추가한다.2. 필수 패키지 설치flutter pub add firebase_core※ 사용하려는..
증상 갤러리에서 이미지를 선택만 했는데, 바로 Firebase Storage에 업로드되고 Firestore에도 URL이 저장됨.의도는 ‘시작하기’ 버튼을 눌렀을 때만 업로드/저장. 원인 이미지 선택 핸들러(_pickAndUpload)에서 업로드 메서드를 바로 호출함.그래서 다른 요소(이름,지역설정)을 설정 안했는데도 파이어스토어에 이미지가 업로드돼어버림// 문제 코드final picked = await picker.pickImage(...);if (picked == null) return;await ref.read(userViewModelProvider.notifier) .uploadAndSaveProfileImage(File(picked.path)); // ← 즉시 업로드 해결 전략..
Flutter 앱에서 위치 권한과 GPS 데이터를 다룰 때, iOS 시뮬레이터에서도 실제 위치를 테스트할 수 있다. 이 글에서는 시뮬레이터의 위치 설정 방법과 정확한 테스트 순서를 정리한다. 1. 왜 위치 설정이 필요할까? Flutter에서 geolocator 패키지를 통해 위치 정보를 가져오는 기능을 구현했다면, 시뮬레이터에서는 실제 GPS가 없기 때문에 기본값으로 위치 정보 없음(None) 상태로 시작한다.이 상태로는 앱이 위치 정보를 받아오지 못하기 때문에, 테스트를 위해 가짜 위치(mock location) 을 지정해줘야 한다. 2. iOS 시뮬레이터 위치 설정 방법 (1) 시뮬레이터 실행 먼저 iOS 시뮬레이터가 실행된 상태여야 한다. Flutter 프로젝트에서 다음 명령어로 실행할 수 있..
문제 상황 Flutter 프로젝트 실행 또는 flutter pub get 실행 시 다음과 같은 오류가 발생했다:The current Dart SDK version is 3.5.0.Because todo_mvvm_riverpod requires SDK version >=3.6.0 pubspec.yaml에는 Dart 3.6 이상이 명시되어 있었음.flutter --version은 3.32.8 (Dart 3.8.1 포함)로 출력되었음.하지만 flutter pub get 명령 실행 시 여전히 Dart 3.5.0 기준으로 동작함. 원인 분석 시스템 Flutter와 FVM으로 설치한 Flutter가 혼재되어 있었음.프로젝트 디렉토리에 FVM 버전 지정이 없어서 flutter 명령이 시스템 기본 Flutter (..
문제 상황WelcomePage 화면에서 사용자 프로필 이미지 업로드 UI를 구현하려 했음.CircleAvatar 위젯을 사용해 원형 이미지와 회색 배경을 적용하고, 향후 이미지 업로드 기능까지 확장하려 했음.그러나 아래와 같은 제약이 발생함:CircleAvatar는 radius만 지원하고 width / height를 따로 지정할 수 없음정사각형 이상 비율의 유연한 레이아웃에서 이미지가 제대로 배치되지 않음위젯 크기 확장이 직관적이지 않아, 다양한 해상도/화면에서 UI 깨짐 현상 발생 가능 고민한 방법CircleAvatar의 radius 값을 조절해보며 대응 시도SizedBox, FittedBox 등 래핑하여 대응 시도원형 배경 유지하면서도 직관적으로 크기 제어 가능한 위젯 탐색 선택한 해결 방법Conta..
협업을 하다 보면 "브랜치 이름을 바꿔야 할 때"가 생기고, "Git Flow 전략"을 따라야 혼선이 줄어듭니다. 이 글은 실제 프로젝트 흐름에 맞춰 브랜치 이름을 바꾸는 법과 Git Flow 브랜치 전략을 완벽하게 정리한 실전 가이드입니다.1️⃣ 브랜치 이름을 바꿔야 하는 이유브랜치 이름에 오타가 났다.브랜치 목적이 바뀌었다.팀 컨벤션을 따르지 않았다.이유가 어찌 되었든, 이미 원격에 푸시한 브랜치의 이름을 바꾸는 과정은 로컬 + 원격 모두 신경 써야 합니다.2️⃣ 브랜치 이름 변경 방법 (로컬 + 원격)예시 상황:기존 이름: feature/welcome_page_Ui새 이름: feature/welcome-page-ui▶︎ 순서 요약# 1. 현재 브랜치 이름 확인git branch# 2. 로컬 브랜치 ..
개발하다 보면 혹은 파일 정리 중 자주 겪는 상황이 있다.“이 파일은 다른 프로세스에서 사용 중입니다.”삭제도 안 되고, 이름도 못 바꾸고, 아무것도 안 되는 짜증나는 상태.오늘은 이 문제를 LockHunter라는 도구로 아주 간단하게 해결하는 방법을 정리한다. 1. LockHunter란?LockHunter는 윈도우에서 특정 파일이나 폴더를 점유하고 있는 프로세스를 추적하고 강제로 해제할 수 있게 해주는 무료 툴이다.다음 기능을 제공한다:파일/폴더를 점유 중인 프로세스 확인해당 프로세스를 종료하거나 잠금 해제잠금된 파일 삭제 예약명령줄 인터페이스도 지원2. 설치 방법1) 공식 사이트 접속https://lockhunter.com/→ "Download" 버튼 클릭→ 설치 파일 실행 후 기본 설정대로 설치 ..