다른 언어에서는 원시 타입이지만 다트는 int, bool, double, String도 참조 타입이다.왜냐하면 다트는 모든 값이 클래스(객체)로 이루어져 있기 때문이다. Dart 구동 원리불변 객체값이 변하지 않는 객체(int, bool, String 등)var a = 10;print(a.hashCode); // 10 a = 20;print(a.hashCode); // 20기존의 원시 타입은 저렇게 하면 해당 메모리의 값 자체가 20으로 변경 되지만,다트는 새로운 메모리에 20을 저장하고 a도 새로운 메모리의 주소를 가르킨다(참조) hashCode를 이용하면 알 수 있다.hashCode는 객체를 식별하는 정수를 반환(실제 메모리 주소는 아님)한다. int 타입은 값 자체가 hashCode가 된다.has..
포스팅 이유처음 Riverpod을 공부할 때 Notifier Class로 배웠었다.그러나 실무에서는 분명 이전 버전의 상태관리 클래스를 사용한 곳이 있을 것이다.회사에서 서비스를 운영, 유지보수를 위해 이전 버전인 StateNotifier, ChangeNotifier를 사용할 줄 알아야 할 것이다.그래서 예전부터 따로 사용법을 간단히 정리해 보려고 했는데 지금 잠깐 정리해 보려고 한다. 동기 Notifier 종류StateNotifierChangeNotifierNotifier StateNotifier 사용법Modelclass User { final String name; final int age; User({required this.name, required this.age}); User copyW..
포스팅 이유프로젝트를 개발 중에 가끔 팀원의 원격브랜치가 다른 환경에서도 잘 되는지 테스트를 해야 할 때가 있다.팀원이 PR을 올리고 Merge를 해야 할까?방법을 알아보자. Detached HEAD(분리된 HEAD) 상태로 원격 브랜치 체크아웃현재 내가 작업하고 있는 로컬 환경에서 팀원의 원격 브랜치의 최신 커밋으로 이동하는 명령어가 있다.# origin은 원격 별칭git checkout origin/브랜치명# origin은 원격 별칭git switch --detach origin/브랜치명위 두 방식은 로컬 브랜치 생성 없이 해당 커밋(원격 브랜치의 최신 커밋)으로 이동한다.이 상태에서 새로운 커밋을 만들면 임시 상태(분리된 HEAD)로 남아, 브랜치로 관리되지 않기에 작업을 더 하려면 별도의 브랜치..
2025.07.01 - [TIL(Today I Learned)] - [TIL-040] Flutter Rebuild와 GlobalKey [TIL-040] Flutter Rebuild와 GlobalKeyhttps://apps.apple.com/kr/app/%EB%AA%BD%EB%B9%84/id6747565007 몽비 꿈속에서 만난 신비로운 이야기들, 이제 혼자만 간직하지 마세요. ‘몽비’는 단순한 꿈 해몽 앱이 아닙니다. 매일 밤 꾼 꿈을 기록하면,skyhyunjinlee.tistory.com이전에 개발한 추가 기능 에러를 해결하다가 통계 페이지에서 새로운 에러를 발견했다.치명적인 에러는 아니기에 Sentry도 추적을 하지 않고, 앱이 멈추는 것도 아니지만 '몽비'의 완성도를 위해 해결해 보려 한다. 문..
https://apps.apple.com/kr/app/%EB%AA%BD%EB%B9%84/id6747565007 몽비 꿈속에서 만난 신비로운 이야기들, 이제 혼자만 간직하지 마세요. ‘몽비’는 단순한 꿈 해몽 앱이 아닙니다. 매일 밤 꾼 꿈을 기록하면, 몽비가 AI 분석을 통해 감정 상태와 심리적 의미를 정apps.apple.com 현재 앱스토어에 '몽비'라는 앱을 출시했다.그래서 UT를 진행해 보니 기록 페이지에서 `ExpansionTile`위젯이 펼쳐질 때 자동으로 스크롤이 되어 포커스가 되게 해 달라는 의견이 생겨(27명 중 1명) 추가 개발을 실시하던 중에 생긴 오류이다.문제 발생 기존에 스크롤을 하여 보라색 배경이 앱바 부분에 닿으면 전체 배경이 보라색으로 변하는 기능이 있다. 이 상태로 추가..
프로젝트를 진행하다 보면 너비와 간격이 반복되는 형태의 디자인이 많을 수밖에 없다.너비와 간격이 일정해야 UIUX적으로 더 좋으니까. 근데 간격과 너비를 일일이 하드코딩을 한다면 반응형에 대응할 수가 없다. 그래서 나는 `Expanded`위젯의 `flex`속성을 이용을 해보려 했다. flex 속성`flex`속성은 `Column`이나 `Row`의 자식 위젯일 때만 사용할 수 있는 `Expanded`위젯의 속성이다.`Expanded`위젯은 부모 위젯의 메인 방향의 남은 크기를 `Expanded`위젯끼리 나눠서 가지는 위젯이다. 비율 계산라벨의 너비와 벽돌의 너비를 벽돌을 기준으로 비례식을 이용해 비율을 계산해보자.40dp : 100% = 33dp : xx = 0.825x = 82.5% 문제 발생계산된 비율인..