← Study Hub

SwiftUI 14일 마스터

하루 한 주제 × 14일(챕터당 30분 이내, 큰 주제는 1부·2부) + 부록 2. UIKit 개발자가 선언형 사고부터 상태·identity·레이아웃·내비게이션·동시성·SwiftData·애니메이션, 그리고 이미지·툴바·현지화·접근성까지 Apple 1차 자료로 끝까지 가는 코스.
진행률
0 / 0 완료
UIKit으로 몇 년 일한 사람이 SwiftUI에서 막히는 곳은 문법이 아니다. VStack과 Text는 30분이면 쓴다. 막히는 건 "뷰를 붙잡고 시킨다"는 사고방식이다. 그게 남아 있으면 몇 달 뒤에도 "상태가 왜 초기화되지", "frame이 왜 안 먹지", "왜 이렇게 느리지"에서 멈춘다. 이 코스는 하루 한 주제, 14일 동안 그 사고방식을 바꾸고, 그 위에 실무 화면을 끝까지 만드는 도구를 쌓는다. 출시에 필요한 부품은 부록 2편에 따로 모았다.

하루를 이렇게 쓴다

하루에 한 주제를 끝낸다. 한 챕터는 30분 안에 읽히게 썼고, 내용이 큰 주제(Day 3·4·5·7·8·9·10·11·12·13·14)는 압축하지 않고 1부·2부 두 챕터로 나눴다. 두 부를 이어서 읽어도 되고, 아침·저녁으로 나눠 읽어도 된다. 아래는 챕터 하나(30분)의 구성이다.

0분 30분 🎯 📖 읽기 · 약 22분 섹션 2~5개 · 섹션마다 도해·코드·UIKit 대조 ✅ 복습 5분 개념·예측·지난날 여유 🛠 미니 과제 +10분 (선택) 🎯 목표 1분 → 끝나면 할 수 있어야 하는 것부터 확인한다.
챕터 하나 기준. 읽기가 본체다. 복습 5분은 건너뛰지 않는다 — 코드 예측 1문항과 지난 Day 1문항이 기억을 굳힌다.
🔮 코드 예측 문항
매일 "이 코드에서 무엇이 출력되나 / 상태가 유지되나"를 먼저 답하고 펼친다. 개념을 알아보는 것과 코드로 예측하는 것은 다른 능력이다.
🔁 지난 Day 복습
복습 박스 마지막 문항은 앞 내용을 다시 묻는다 — 1부(와 단일 챕터)는 지난 Day, 2부는 같은 Day의 1부. 잊어버릴 즈음 한 번 더 꺼내 보는 간격 반복이다.
🛠 미니 과제
Xcode Preview 하나로 끝나는 독립 과제. 그날의 마지막 챕터(단일 챕터 또는 2부)에 있다. 전날 과제가 없어도 된다. 정답 코드는 접혀 있다.
✔︎ 섹션 체크
섹션 제목 옆 체크박스로 진행률이 챕터별로 저장된다. 1부만 읽고 멈춰도 다음에 이어진다.

14일 지도

1단계 · 머릿속 모델 교체 Day 1–5 Day 1선언형 사고 Day 2뷰 조립 Day 3상태 ① @State Day 4identity·lifetime Day 5상태 ② Observable 2단계 · 실무 연결 + 레이아웃 Day 6–8 Day 6UIKit과 함께 살기 Day 7레이아웃 ① 3단계 협상 Day 8레이아웃 ② 도구 상자 3단계 · 화면 만들기 Day 9–11 Day 9리스트·스크롤 + 성능 Day 10내비게이션 Day 11입력·폼·포커스 4단계 · 앱 완성 Day 12–14 Day 12동시성 Day 13데이터·앱 구조 Day 14애니메이션 + 총정리
1단계가 본체다. 2~4단계의 모든 "왜 이렇게 동작하지?"는 1단계의 세 가지(뷰는 값, 진실은 한 곳, identity가 수명을 정한다)로 설명된다.
단계끝나면 할 수 있는 것
1 · 머릿속 모델 (Day 1–5)화면을 "상태의 함수"로 설계하고, 상태를 어디에 둘지 결정 트리로 고르고, 상태가 사라지는 버그를 identity로 설명한다.
2 · 실무 연결 (Day 6–8)회사 UIKit 앱에 SwiftUI 화면·셀을 끼워 넣고, 레이아웃이 의도대로 안 잡히는 이유를 제안/결정으로 진단한다.
3 · 화면 만들기 (Day 9–11)긴 목록을 성능 문제 없이 그리고, 데이터 기반 내비게이션과 딥링크를 짜고, 폼 입력·포커스·검증을 처리한다.
4 · 앱 완성 (Day 12–14).task로 로딩·취소를 다루고, SwiftData로 저장하고, 테스트 가능한 모델을 만들고, 애니메이션을 원하는 대로 제어한다.

Day 목록

Day 1 · 선언형으로 머리 바꾸기 약 30분
명령형→선언형 전환, body는 반복 호출되는 설명서, 모디파이어는 감싸기
Day 2 · 뷰 조립 약 30분
서브뷰 쪼개기 기준, @ViewBuilder 컨테이너, ViewModifier, ButtonStyle
Day 3 · 상태 ① 진실은 한 곳 1부·2부 · 약 44분
Day 5 · 상태 ② Observation 1부·2부 · 약 46분
Day 6 · UIKit과 함께 살기 약 30분
호스팅 컨트롤러·셀 구성·Representable로 UIKit 앱에 SwiftUI 점진 도입
Day 7 · 레이아웃 ① 3단계 협상 1부·2부 · 약 43분
Day 8 · 레이아웃 ② 도구 상자 1부·2부 · 약 44분
Day 9 · 리스트·스크롤 + 성능 1부·2부 · 약 48분
Day 10 · 내비게이션 1부·2부 · 약 38분
Day 11 · 입력·폼·포커스 1부·2부 · 약 42분
Day 13 · 데이터·앱 구조 1부·2부 · 약 41분
Day 14 · 애니메이션·Transaction·제스처 + 총정리 1부·2부 · 약 48분

부록 — 필요할 때 펴 보는 실무 부품

14일이 원리라면 부록은 부품이다. 화면을 실제로 출시하려면 매일 부딪히는 것들 — 원격 이미지, 툴바·메뉴, 현지화, 다크 모드, 접근성 심화, AppDelegate 연결 — 을 모았다. 순서 없이 필요한 것부터 읽어도 된다. 부록도 한 편에 30분이다.

이 코스를 읽는 법

🔑 시간이 부족하면

Day 1·3·4·5만 먼저 읽는다(Day 4는 2부 1절 lifetime까지가 뼈대다). 나머지는 이 네 개 위에 얹히는 도구다. 반대로 나머지만 읽으면 "외운 API"만 남는다.

다른 강의와의 관계

주제여기서 다루는 정도더 깊게
async/await · actor · SendableSwiftUI에서 쓰는 만큼 (Day 12)Swift Concurrency
Swift 언어 · 값/참조 타입전제로 두고 넘어감Swift & Foundation 로드맵
테스트 전략 전반@Observable 모델 테스트까지 (Day 13)소프트웨어 테스트
TCA · 모듈화 · 면접다루지 않음iOS 기술면접 — 모던 스택 5종
📝 다루지 않는 것

visionOS·macOS·watchOS 전용 내용, Canvas·Metal 셰이더 같은 그리기 세부, iPad 전용 NavigationSplitView 심화, WidgetKit. iPhone 앱 실무에 먼저 필요한 것에 14일을 쓰기 위해 뺐다.

출처 · 참고자료