| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 자바스크립트
- printf
- println
- UI/UX
- nodejs
- riverpod
- JQ
- develop
- abap
- 단축키
- ListView
- JS
- react
- Clean Architecture
- 앱심사
- npm
- Flutter
- 자바 출력 방식
- firebase
- unity
- java 콘솔 출력 차이
- LLM
- 자바 포맷 출력
- java 출력
- 엡
- scss
- java
- DART
- 배포
- lifecycle
- Today
- Total
목록2025/09 (17)
guricode
증상게시글 리스트가 로드되지 않거나 계속 로딩.콘솔에 Bad state: Cannot use "ref" after the widget was disposed. 발생.WidgetsBinding.instance.addPostFrameCallback로 loadInitial 호출 시에도 간헐적으로 동일.원인build() 안에서 provider를 새로 생성 → initState()에서 로드한 provider와 다른 인스턴스를 watch 하게 되어 초기 로드가 해당 인스턴스에 적용되지 않음.위치(location)가 나중에 들어오는 비동기 흐름을 고려하지 않음 → provider를 만들 시점이 불명확.프레임 콜백/스케줄러 타이밍에 ref 접근 → 위젯 dispose 이후 실행되면 ref 사용 불가 오류.해결provi..
댓글 꾹 누른 위치에 팝업 띄우는 법 요약onLongPressStart의 details.globalPosition으로 터치 좌표 확보 onLongPressStart: (details)의 details은onLongPressStart한 정보를 담고 있다. onLongPressStart: (details) { print(details.globalPosition); // 화면 전체 기준 좌표 (Offset) print(details.localPosition); // 해당 위젯 기준 좌표 (Offset) print(details.kind); // 입력 종류 (터치, 마우스 등) PointerDeviceKind } 일단 기능은 넣지 않았지만 메뉴가 나오게끔 작업을 미리 해뒀다 아이콘..
게시글 상세페이지에 들어가면 작성자와 게시글을 볼수있고 밑에 댓글리스트들이 나오는 구성을 만들어야했다 게시글 영역까지는 평범하게 구성해주고 댓글들을 Listview로 나타냈는데 문제는 Listview로 구성된 댓글 리스트들만 스크롤이 되어 이상한 화면이 되어버린다. 나는 댓글들을 List로 뿌려주고 body 영역 전체를 스크롤 하여 댓글까지 보게 하고 싶었다. 간단하게 위젯을 반복 생성하여 만들순 있겠지만 50개가 넘어가면 오버플로우가 일어날 가능성이있어 다른 방법을 찾아야했고 NestedScrollView를 사용하여 화면을 완성했다 NestedScrollView는 스크롤이 따로되는 위젯들을 묶어서 제어하고싶을때 사용한다. 다른예시들을 보니 나처럼 TabBarview를 사용할때 자주사용되는것 같다. 내가..
bottomsheet에 댓글입력창을 달려고하는데 hassize문제가 생긴다 분명 텍스트 폼 필드에 Expanded로 감쌋는데도 오류가 생겻다bottomSheet: Padding( // 키보드 올라오면 같이 올림 padding: EdgeInsets.only( bottom: MediaQuery.of(context).viewInsets.bottom, ), child: Material( elevation: 8, color: Colors.white, child: SafeArea( top: false, child: Padding( paddi..
자취의 정석 커뮤니티 페이지를 구현중이다. 디자인 나오는대로 만들고있는데 상단에 DefaultTabController를 이용하면 좌우로도 스와이프가 가능한 TabBar를 구현할수 있었다. DefaultTabController는 TabBar와 TabBarView를 연결해주는 컨트롤러를 자동으로 만들어 주는 위젯이다.지금까지는 TabController를 써본적이 없지만 이걸 직접쓰지 않아도 DefaultTabController를 사용하면 된다. 사용방법final tabs = ['홈', '검색', '마이페이지'];DefaultTabController( length: tabs.length, // 탭 개수와 꼭 맞춰야 함 child: Scaffold( appBar: AppBar( title: c..
구분 시점/영역 특징 예시컴파일 시점코드가 실행되기 전, 빌드 과정const 값 확정. 상수 풀에 저장. 실행 전부터 값이 고정됨const pi = 3.14;런타임 시점프로그램 실행 중사용자 입력, 네트워크 응답, 시간 등 실행 중에만 결정final now = DateTime.now();스택(Stack)메모리 실행 영역함수 호출 시 지역 변수·매개변수 저장. 함수 종료 시 자동 해제dart void f() { int x = 10; }힙(Heap)메모리 실행 영역동적으로 생성된 객체 저장. 참조가 남아 있으면 유지. GC가 회수var list = [1, 2, 3];var user = User(name: 'Kim');Static 영역메모리 실행 영역static 변수, static const 값. 클래스 단위..
자취의 정석 핵심 아이콘인 집먼지를 움직이기 위해 여러가지 방법을 찾아봤다 그중에 용량도 이미지파일보다 적고, 크기도 자유롭게 조절할수 있는 로티를 사용하기로 했다https://lottiefiles.com/kr/what-is-lottie Lottie 애니메이션은 무엇일까요? - 로티파일즈Lottie는 JSON 기반의 애니메이션 포맷으로, 어느 기기와 플랫폼에서든 사용할 수 있습니다. LottieFiles을 통해 Lottie 애니메이션을 생성하고 편집하고 테스트할 수 있으며, 다른 사람과 협업하고 전lottiefiles.com 이미지 용량때문에 에니메이션 구현을 어떻게 최적화 해야하나 고민이있지만 이런 좋은 라이브러리가 있어서 간단하게 해결할 수 있었다. 방법은 flutter pub add lottie로..
마지막 프로젝트로 자취의 정석이라는 앱을 만들기로했다. 내가 만들고 싶은 앱을 기준으로 개발하고 싶어서 리더로 참여하게 됐다. 어쩐지 4개월동안 팀장,리더만 계속하는듯한 느낌이 든다. 이것도 나름 경험이겠거니 하고 긍정적으로 받아들이고 있다. 원래는 다른 아이디어들이 괜찮아 보여서 팀원으로 참여하려했지만 운이좋은건지(?) 내가 생각한 앱을 구현할 수 있겠다 싶어서 팀을 꾸리고 진행하게 됐다. 자취의 정석이라는 컨셉은 두번의 수정이있었다. 첫번째로, 원래는 냉장고 관리 기능을 따로 빼서 냉장고의 정석그리고 유산소 운동 전용 앱인 유산소의 정석마지막으로 자취하는 사람들을 중, 자취방 관리가 잘 안되는 사람들을 위해 매일 미션을 주고 경험치를 제공하는 자취의 정석이다. 이 세가지의 아이디어를 제시했을때 이용자..
https://medium.com/@ai-den/flutter-hero%EB%A1%9C-%EA%B5%AC%ED%98%84%ED%95%98%EB%8A%94-%EC%9E%90%EC%97%B0%EC%8A%A4%EB%9F%AC%EC%9A%B4-%EB%84%A4%EB%B9%84%EA%B2%8C%EC%9D%B4%EC%85%98-a37a76f9cbe8 [Flutter] Hero로 구현하는 자연스러운 네비게이션플러터의 여러 장점이 있겠지만, 가장 큰 장점은 프레임드랍이 없는 자연스러운 애니메이션을 손쉽게 구현할 수 있다는 점입니다. 플러터의 다른 장점들은 리액트나 리액트네이티브 등의 다른medium.comHero에 장점에 대해 잘 작성 된 글이있어 요약해봤다Flutter로 구현하는 자연스러운 네비게이션 - Hero 애..
구글에 배포하기 위해 몇가지 추가가 필요했다 일단 회원가입할떄 이용약관과 개인정보 처리방침에 동의를 받아야한다. 그런데 이미 이메일 회원가입과 구글 로그인/회원가입이 다 짜여져있어서 분기처리를 해야한다. 그래도 이용약관 페이지를 만들어야하기때문에 유저에게 보이는 signup_agreement.dart파일을 만들어줬다// signup_agreement.dartimport 'package:flutter/material.dart';import 'package:flutter_princess/presentation/policy/policy_web_view.dart';const termsUrl = 'https://fate-friend-339.notion.site/Goal-Mate-268e795aec4c806f..