728x90
0. 이전 -> 추가 될 기능
- 화면 1개(목록만) -> 3개 탭 (목록/오늘/캘린더)
- 탭 간 데이터 연동
- 모든 기능이 한 곳에 -> 역할별로 분리
1. TabView
- 앱 하단에 탭 바 생성
- 각 탭에 다른 화면 표시
- 탭 하면 화면 전환
- 카카오톡, 인스타처럼
TabView {
EventListView(
events: $events)
.tabItem {
Label("목록",
systemImage:
"list.bullet")
}
TodayView(
events: $events)
.tabItem {
Label("오늘",
systemImage:
"sun.max")
}
...
}
- .tabItem 탭 아이콘과 텍스트 설정
- systemImage Apple SF Symbols 아이콘 사용
- TabView 안에 뷰 추가하면 탭이 늘어남
2. 오늘 탭 & 데이터 공유
- 오늘 날짜 일정만 표시
- 일정 없으면 안내 메시지
- 오늘 탭에서도 + 가능
- 한 탭에서 추가-> 다른 탭에도 반영
// ContenView에서
@State var events: [Event] = []
// 각 탭에 전달
EventListView(events: $events)
TodayView(events: $events)
// TodayView 내부
struct TodayView: View {
@Binding var events: [Event]
var todayEvents: [Event] {
events.filter {
Calendar.current.isDateInToday($0.date)
}
}
}
- @Binding으로 같은 events 배열 공유
- 한 탭에서 추가/삭제 -> 다른 탭에도 즉시 반영
- 캡린더 탭은 우선 빈 화면
3. 프롬프트 작성
일정관리 앱을 이어서 개발할게.
추가할 기능:
[탭 뷰 구조]
1. 하단에 3개의 탭이 있다: 목록, 오늘, 캘린더
2. 각 탭을 선택하면 다른 화면이 나타난다
3. 탭 아이콘과 텍스트가 표시된다
[목록 탭]
4. 기존의 전체 일정 목록 (검색, 필터, 그룹화 포함)
5. 아이콘: list.bullet
[오늘 탭]
6. 오늘 날짜의 일정만 표시
7. "오늘" 헤더와 날짜 표시
8. 일정이 없으면 "오늘 일정이 없습니다" 메시지
9. 오늘 일정 개수 표시
10. 아이콘: calendar.circle.fill
[캘린더 탭]
11. 간단한 월 캘린더 표시
12. 일정이 있는 날짜에 점(dot) 표시
13. 날짜를 탭하면 해당 날짜 일정 표시
14. 아이콘: calendar
현재 코드:
[여기에 Day 8의 전체 코드 붙여넣기]
전체 코드를 하나의 파일로 다시 작성해줘.
각 탭을 별도 View로 분리해줘.



반응형
'AI 해보기 > 딸깍! 일정관리 앱 만들어보기' 카테고리의 다른 글
| 8. 검색과 그룹별 (0) | 2026.03.20 |
|---|---|
| 7. 기간 필터와 정렬 (0) | 2026.03.20 |
| 6. 필터 추가해보기 (카테고리 필터링) (1) | 2026.03.20 |
| 5. 카테고리와 알림 (0) | 2026.03.20 |
| 4. 삭제와 수정 추가 (CRUD 완성해보기) (0) | 2026.03.20 |
댓글