하루 한줄, Flutter로 만드는 나만의 감성 노트앱 개발기
하루 한줄, Flutter로 만드는 나만의 감성 노트앱 개발기
시작하며: 왜 Flutter로 노트앱을 만들었나?
"매일 한 줄이라도 기록하자."
지나간 하루를 돌아보고, 한 줄의 감정을 남기고 싶었다. 노트를 쓰자니 부담되고, SNS에 올리긴 싫었다. 그래서 직접 만들었다. 이름하여 ‘하루 한줄’.
Flutter는 빠르게 UI를 구성할 수 있고, iOS/Android 동시 배포가 가능해 사이드 프로젝트에 최적이었다.
이 글은 내가 하루 한줄 노트앱을 만들면서 겪은 기술적 고민, 선택의 과정, 그리고 배운 점들을 공유하기 위한 기록이다.
앱 기능 기획: 단순함 속에 감성을 담다
핵심 기능 정의
- 하루에 딱 한 줄만 작성 가능
- 캘린더 기반으로 기록 조회
- 간단한 글귀/명언 노출로 감성 추가
- 로컬 저장 → 추후 Firebase 연동 고려
UX/UI 설계 원칙
- 최대한 심플하고 직관적인 구조
- 타이핑 공간에 감성을 유도하는 문구
- 배경 색은 하루의 기분을 반영 (선택적 기능)
기술 스택과 구조
- Flutter 3.19
- Provider 기반 상태관리
- Hive를 활용한 로컬 DB
- TableCalendar 패키지로 캘린더 구현
- GetIt으로 DI 구성
예시 디렉토리 구조
lib/
┣ models/
┣ providers/
┣ screens/
┣ widgets/
┗ main.dart
개발하면서 부딪힌 문제들
1. 캘린더 커스터마이징
기본 TableCalendar는 기능은 좋지만 디자인이 너무 투박했다.
직접 위젯을 조합해서 스타일링을 바꾸고, 특정 날짜에 기록이 있을 경우 점 표시를 커스텀하는 데 시간을 쏟았다.
2. 하루 1줄 제한 로직
단순히 DateTime.now()
만 쓰면 날짜 비교 시 시간차 문제가 생긴다.
→ 날짜만 비교할 수 있게 DateTime(year, month, day)
로 기준을 통일했다.
bool isSameDay(DateTime a, DateTime b) {
return a.year == b.year && a.month == b.month && a.day == b.day;
}
배운 점 & 다음 계획
- UI/UX는 코드보다 더 중요하다.
감성 앱은 ‘느낌’이 전부다. 기능보다 분위기가 핵심이다. - 상태관리, 처음부터 구조 잡는 게 편하다.
Provider에서 시작했지만, 규모가 커질수록 GetX나 Riverpod도 고려 중. - Firebase 연동 → 추후 유저 인증과 백업을 위해 적용 예정
- 명언 API 연동 → 하루 글귀 자동 노출 기능도 실험 중
마치며: 사이드 프로젝트는 곧 나의 기록이다
‘하루 한줄’을 개발하면서 느꼈다.
사이드 프로젝트는 그냥 기능 구현이 아니라, 나를 표현하는 또 다른 방법이라는 걸.
Flutter로 만드는 나만의 노트앱.
코드도 쌓이고, 기록도 쌓인다. 그리고 그 속엔 내 하루도, 내 성장이 담긴다.
댓글
댓글 쓰기