미팅 플랜
미팅 플랜은 SwiftUI 기초, 데이터 모델링의 기본 및 공간 컴퓨팅을 배우는 데 도움이 되는 클럽 활동을 제안합니다.
미팅 플랜은 SwiftUI 기초, 데이터 모델링의 기본 및 공간 컴퓨팅을 배우는 데 도움이 되는 클럽 활동을 제안합니다.
Xcode, Swift 또는 SwiftUI를 사용해 본 적이 없다면 SwiftUI 기초부터 시작해 보세요.
튜토리얼 5개 (개별 과제)
미팅 10회 (그룹 활동)
SwiftUI를 사용하여 앱을 빌드하면서 앱 개발의 기본을 알아보세요. 단계별 튜토리얼을 따라가며 프로토타입 앱, 앱 화면, 완제품 앱을 만들어 보고, 배운 내용을 응용하고 클럽의 도움을 받아 나만의 고유한 앱을 만들어 볼 수 있습니다.
참고: 앱을 미리 보기 위해 iPhone이 필요하지 않습니다. Xcode에 포함된 도구를 사용해 앱이 어떻게 표시되고 작동하는지 Mac에서 바로 확인할 수 있습니다.
Swift로 개발하기 튜토리얼 입문을 읽고 학습을 시작해 보세요.
메시징 앱 프로토타입을 제작하며 Xcode와 SwiftUI에 대해 알아보세요. Swift 구문과 소스 편집기 및 미리보기를 사용하는 방법을 배워봅니다.
준비: 첫 미팅 전에 Hello, SwiftUI 튜토리얼을 완료합니다.
그룹 활동: 클럽 전체 또는 소규모 그룹으로 나뉘어 요약: Xcode 살펴보기 문서의 ‘앱 확장하기(Extend your app)’ 섹션에 있는 연습 과제 중 2개를 완료합니다.
준비: 요약: Xcode 살펴보기 문서의 ‘개념 되새기기(Reflect on the concepts)’ 섹션을 읽습니다.
그룹 활동: 새로운 Xcode 프로젝트 ‘MyselfInSixWords’를 시작합니다. 텍스트
뷰를 사용하여 나를 설명하는 6개의 단어를 표시하고, 각 단어에 패딩과 다양한 배경 색상을 적용합니다.
을 VStack
HStack
으로 대체하여 단어를 가로로 표시해 봅니다. 그런 다음 난이도를 높여서 HStack
과 VStack
뷰를 혼합하여 앱에 다양한 레이아웃을 생성합니다. 뷰의 HStack
을 VStack
안에 삽입하거나 그 반대로 할 수 있나요? 이렇게 하면 어떤 일이 생기나요?
미팅 후반에 돌아가며 짧게 자신의 MyselfInSixWords 프로젝트를 선보입니다.
맞춤화된 뷰를 빌드하여 며칠 간의 일기 예보를 제작하는 방법을 알아봅니다. 뷰에서 속성을 사용하여 각 날짜의 표시를 맞춤화해 보세요.
준비: 속성을 사용해 뷰를 맞춤화하기 튜토리얼을 완료합니다.
그룹 활동: 클럽 전체 또는 소규모 그룹으로 나뉘어 요약: 뷰, 구조 및 속성 문서의 ‘앱 확장하기(Extend your app)’ 섹션에 있는 연습 과제 중 1~2개를 완료합니다.
준비: 요약: 뷰, 구조, 속성 문서의 ‘개념 되새기기(Reflect on the concepts)’ 섹션을 읽습니다.
그룹 활동: 계산 속성을 사용하여 연습해 봅니다. 계산 속성을 추가하여 최고 기온이 섭씨 26.6도를 초과하는 경우(최고 기온 > 26.6℃
) 다양한 색상을 반환하도록 해봅니다. .foregroundStyle
편집자를 사용하여 속성 값에 따라 텍스트 색상을 변경합니다.
돌아가며 짧게 그날의 작업 결과를 발표합니다. 그날의 성과와 프로젝트를 완성하기 위해 필요한 도움이나 시간을 공유해 봅니다.
iOS 앱을 위한 2개의 온보딩 화면을 빌드하여 화면의 원하는 위치에 뷰를 배치하고 그 크기를 검사하는 데 유용한 도구를 알아봅니다. 애셋 카탈로그에서 색상을 정의하고 이를 사용하여 그라디언트 배경을 생성해 보세요.
준비: 인터페이스 디자인하기 튜토리얼을 완료합니다.
그룹 활동: 온보딩 흐름에 세 번째 페이지를 추가합니다. 새 페이지에 원하는 요소를 포함합니다. 시간이 남는다면 앱의 디자인과 색상을 편집해 봅니다.
준비: 요약: 레이아웃 및 스타일 문서의 ‘개념 되새기기(Reflect on the concepts)’ 섹션을 읽습니다.
그룹 활동: 여러 뷰 간에 스와이프를 연습해 봅니다. 새로운 Xcode 프로젝트를 시작하고 .tabViewStyle(.page)
로 짧은 이야기를 만들어 책의 페이지를 스와이프해 넘겨 봅니다. 큰 제목, 저자 이름, 하나 이상의 SF Symbols 기호, 여러 가지 색상을 사용하여 첫 번째 페이지를 책 표지처럼 만듭니다. 이야기를 담는 페이지에 장 제목, 텍스트, 사진을 표시할 창의적인 방법을 생각해 봅니다.
돌아가며 짧게 그날의 책 프로젝트 결과를 발표하고, 계속해서 작업해 나갈 부분에 대한 계획을 공유합니다.
앱에 버튼을 추가하는 방법을 알아보고, Swift 클로저와 클로저 및 버튼의 관계에 대해 살펴보세요. 상태 속성을 사용하여 사용자 인터페이스를 자동으로 업데이트해 보세요.
준비: 상태를 통해 UI 업데이트하기 튜토리얼을 완료합니다.
그룹 활동: 주사위 이미지와 그 아래에 굴리기 버튼을 표시하는 대신, DiceView
를 수정하여 사용자가 주사위 자체를 탭하여 굴릴 수 있게 해봅니다.
준비: 요약: 버튼과 상태 문서의 ‘개념 되새기기(Reflect on the concepts)’ 섹션을 읽습니다.
그룹 활동: 간단한 버튼 앱을 만들어 봅니다. 새로운 Xcode 프로젝트를 시작하고 버튼이 1~2개 포함된 앱을 만듭니다. 심플한 앱 디자인하기 프로젝트를 사용하여 아이디어 구상에 도움을 받을 수 있습니다.
돌아가며 짧게 버튼 앱 디자인 및 프로젝트를 발표합니다. 생각보다 쉬웠거나 어려웠던 부분을 공유해 보세요.
여러 항목을 배열에 저장하고 이를 목록으로 표시하는 동적 인터페이스를 생성해 보세요. 텍스트 필드 및 바인딩을 사용하여 사용자가 텍스트를 입력할 수 있게 해 보세요.
준비: 동적 콘텐츠 생성하기 튜토리얼을 완료합니다.
그룹 활동: 요약: 목록 및 텍스트 필드 문서의 ‘앱 확장하기(Extend your app)’ 섹션에 있는 연습 과제 중 1개를 선택합니다.
준비: 요약: 목록 및 텍스트 필드 문서의 ‘개념 되새기기(Reflect on the concepts)’ 섹션을 읽습니다.
그룹 활동: 주소 레이블 포맷을 지정해 봅니다. AddressLabel이라는 이름의 새로운 Xcode 프로젝트를 시작합니다. @State
속성 및 텍스트 필드를 사용하여 주소의 다양한 요소(예: 도시, 국가)를 수집합니다. 그리고 화면 상단에 완전한 형식을 갖춘 주소 전체를 표시합니다. 양식 및 주소의 서체, 크기, 색상을 맞춤화합니다.
돌아가며 짧게 클럽 종결 후 계획을 공유해 보세요. 앱 개발 학습을 어떻게 이어나갈 예정인가요? 어떤 앱을 만들고 싶으신가요?
튜토리얼 7개 (개별 과제)
미팅 9회 (그룹 활동)
SwiftUI를 사용하여 앱을 빌드하면서 데이터 모델링의 기본을 알아보세요. 단계별 튜토리얼을 따라가며 프로토타입 및 완제품 앱을 만들어 보고, 배운 내용을 응용하고 클럽의 도움을 받아 나만의 고유한 앱을 만들어 볼 수 있습니다.
참고: 앱을 미리 보기 위해 iPhone 또는 iPad가 필요하지 않습니다. Xcode에 포함된 도구를 사용해 앱이 어떻게 표시되고 작동하는지 Mac에서 바로 확인할 수 있습니다.
데이터 모델링 시작하기를 읽고 학습을 시작해 보세요.
맞춤형 유형을 만들어 첫 데이터 모델을 정의해 보고, 유닛 테스트를 통해 모델이 올바르게 작동하는지 검증해 보세요. 그리고 맞춤형 유형을 사용하여 게임의 점수를 추적해 보세요.
준비: 첫 미팅 전에 맞춤형 유형을 사용하여 데이터 모델링하기 튜토리얼을 완료하고 요약: 맞춤형 유형을 사용하여 데이터 모델링하기 문서의 ‘개념 되새기기(Reflect on the concepts)’ 섹션을 읽습니다.
그룹 활동: 클럽 전체 또는 소규모 그룹으로 나뉘어 요약: 맞춤형 유형을 사용하여 데이터 모델링하기 문서의 ‘앱 확장하기(Extend your app)’ 섹션에 있는 연습 과제 중 1개를 완료합니다.
준비: Swift Testing으로 기능 추가하기 튜토리얼을 완료하고 요약: 맞춤형 유형 및 Swift Testing 문서의 ‘개념 되새기기(Reflect on the concepts)’ 섹션을 읽습니다.
그룹 활동: 승리 총점을 추가합니다. 플레이어의 점수가 지정된 총점에 도달하면 게임이 자동으로 끝나도록 앱을 업데이트합니다. 사용자가 설정 뷰에서 이 총점을 설정할 수 있어야 합니다. 플레이어의 총점을 높이고 해당 총점에 도달하면 게임 상태가 전환되는지 확인하는 테스트를 추가합니다.
미팅 후반에 돌아가며 짧게 플레이어가 지정된 점수에 도달할 경우 자동으로 끝나는 설정을 통해 프로젝트를 어떻게 향상했는지 발표해 보세요.
SwiftData를 사용하여 실행 전반에 걸쳐 필요한 데이터를 저장하고 가져와 친구들의 생일을 목록으로 만들어 보세요.
준비: 데이터 저장 튜토리얼을 완료합니다.
그룹 활동: 미팅에서 요약: 모델과 영속성 문서의 ‘앱 확장하기(Extend your app)’ 섹션에 있는 연습 과제를 한 사람당 한 개씩 선택합니다.
준비: 요약: 모델과 영속성 문서의 ‘개념 되새기기(Reflect on the concepts)’ 섹션을 읽습니다.
그룹 활동: Pick-a-Pal을 업그레이드합니다. Pick-a-Pal 문서를 다시 읽고 names: [String]
을 SwiftData 기반의 Pal
모델로 대체합니다.
돌아가며 짧게 Pick-a-Pal 앱에 SwiftData를 추가하면 어떤 이점이 있는지 의견을 나누어 봅니다.
SwiftData로 모델 객체를 관리하여 친구들이 좋아하는 영화를 추적하는 앱을 제작해 보세요. 쿼리를 사용하여 목록에 항목을 표시하고, 세부 뷰를 만들어 해당 항목을 편집하세요. 친구와 영화 사이의 관계를 생성 및 표시하는 방법을 알아보고, 고급 쿼리를 만드는 방법을 살펴보세요.
준비: 샘플 데이터 탐색 튜토리얼을 완료하고 요약: 샘플 데이터 탐색 문서의 ‘개념 되새기기(Reflect on the concepts)’ 섹션을 읽습니다.
그룹 활동: Birthdays 문서를 다시 읽고 SampleData
클래스를 추가하여 .task
에 의존하지 않고 샘플 데이터를 삽입합니다.
준비: 데이터 생성, 업데이트, 삭제 튜토리얼을 완료하고 요약: 데이터 생성, 업데이트, 삭제 문서의 ‘개념 되새기기(Reflect on the concepts)’ 섹션을 읽습니다.
그룹 활동: iOS 앱 프로젝트를 생성하고 프로젝트 옵션 대화상자에서 저장할 SwiftData를 선택합니다. 샘플 코드를 살펴보면 이전의 두 튜토리얼에서 만든 인터페이스와 매우 비슷하다는 것을 확인할 수 있습니다. 작동 방식을 배웠으니 앞으로 이를 시작점으로 활용하여 멋진 앱을 만들어 보세요.
준비: 관계로 작업하기 튜토리얼을 완료하고 요약: 탐색, 편집 및 관계 문서의 ‘개념 되새기기(Reflect on the concepts)’ 섹션을 읽습니다.
그룹 활동: 클럽 전체 또는 소규모 그룹으로 나뉘어 요약: 탐색, 편집 및 관계 문서의 ‘앱 확장하기(Extend your app)’ 섹션에 있는 연습 과제 중 1~2개를 완료합니다.
Observation을 기반으로 알파벳 게임을 제작해 보세요. 여러 독립된 뷰가 있는 복잡한 데이터 모델을 공유할 수 있습니다.
준비: 로직을 사용하여 게임 완성하기 튜토리얼을 완료합니다.
그룹 활동: 클럽 전체 또는 소규모 그룹으로 나뉘어 요약: Observation 및 공유 가능한 데이터 모델 문서의 ‘앱 확장하기(Extend your app)’ 섹션에 있는 연습 과제 중 1~2개를 완료합니다.
그룹 활동: 고난도 모드를 적용해 봅니다. 더 도전적인 게임을 위해 고난도 모드를 추가해 봅니다. 올바르지 않은 배열을 제출했을 때 재시도의 기회를 얻는 게 아니라 포인트를 잃게 된다면 어떨까요? 한 단계 더 나아가 단어를 숨겨서 플레이어가 아이콘만 보고 알파벳순으로 정렬하게 할 수도 있습니다.
클럽 종결 후 계획을 돌아가며 짧게 공유해 보세요. 앱 개발 학습을 어떻게 이어나갈 예정인가요? 어떤 앱을 만들고 싶으신가요?
튜토리얼 3개 (개별 과제)
미팅 6회 (그룹 활동)
SwiftUI를 사용하여 앱을 빌드하면서 공간 컴퓨팅의 기본을 알아보세요. 단계별 튜토리얼을 따라가며 프로토타입 및 완제품 앱을 만들어 보고, 배운 내용을 응용하고 클럽의 도움을 받아 나만의 고유한 앱을 만들어 볼 수 있습니다.
참고: Apple Vision Pro 기기는 필요하지 않습니다. Xcode에 포함된 도구를 사용해 앱이 어떻게 표시되고 작동하는지 Mac에서 바로 확인할 수 있습니다.
공간 컴퓨팅 시작하기를 읽고 학습을 시작해 보세요.
SwiftUI를 사용하여 윈도우가 있는 첫 번째 visionOS 앱을 만들어 보세요.
준비: 첫 미팅 전에 앱에 심도 더하기 튜토리얼을 완료합니다.
그룹 활동: 클럽 전체 또는 소규모 그룹으로 나뉘어 요약: visionOS의 윈도우 문서의 ‘앱 확장하기(Extend your app)’ 섹션에 있는 연습 과제 중 2개를 완료합니다.
준비: 요약: visionOS의 윈도우 문서의 ‘개념 되새기기(Reflect on the concepts)’ 섹션을 읽습니다.
그룹 활동: 단어 격자를 만들어 봅니다. 새로운 Xcode 프로젝트 ‘CloserWordGrid’를 만듭니다. Grid
와 GridRow
를 사용하여 나를 설명하는 단어 격자를 만들고, 각 단어에 백 패딩을 적용해 봅니다. 난이도를 높여서, 백 패딩을 추가로 포함할 단어 하나를 임의로 선택하고 매번 어떤 단어가 앞쪽에 가장 가까운지 추측해 봅니다.
미팅 후반에 돌아가며 짧게 자신의 CloserWordGrid 프로젝트를 선보입니다. 새로운 visionOS 플랫폼의 어떤 부분에 영감을 받았는지, 그리고 다음 앱에서 새로운 기회를 어떻게 활용할 수 있을지 공유해 보세요.
SwiftUI를 사용하여 visionOS에서 멀티 윈도우를 생성해 보세요. 오너먼트를 사용하여 윈도우 콘텐츠를 혼잡하게 하거나 가리지 않으면서 자주 사용되는 제어 기능에 접근할 수 있게 만들 수 있습니다.
준비: 오너먼트에 공통 제어 기능 표시하기 튜토리얼을 완료합니다.
그룹 활동: 클럽 전체 또는 소규모 그룹으로 나뉘어 요약: 오너먼트 및 멀티 윈도우 문서의 ‘앱 확장하기(Extend your app)’ 섹션에 있는 연습 과제 중 1~2개를 완료합니다.
준비: 요약: 오너먼트 및 멀티 윈도우 문서의 ‘개념 되새기기(Reflect on the concepts)’ 섹션을 읽습니다.
그룹 활동: 레이블에 빠르게 접근하는 기능을 추가해 봅니다. 생성한 레이블은 닫히거나 다른 레이블 뒤에 가려질 수 있습니다. SwiftUI List
를 생성하여 집중할 레이블을 선택할 수 있습니다. 목록에서 레이블이 선택되면 openWindow
를 사용하여 레이블을 앞으로 가져오고, 필요한 경우 다시 엽니다.
돌아가며 짧게 작업한 내용을 발표합니다. 그날의 성과와 프로젝트를 완성하기 위해 필요한 도움이나 시간을 공유해 봅니다.
Reality Composer Pro 및 SwiftUI를 사용하여 공유 공간에서 3D 콘텐츠를 원하는 각도로 표시해 보세요.
준비: 공유 공간에 3D 모델 생성하기 튜토리얼을 완료합니다.
그룹 활동: 클럽 전체 또는 소규모 그룹으로 나뉘어 요약: visionOS의 볼륨 문서의 ‘앱 확장하기(Extend your app)’ 섹션에 있는 연습 과제 중 1~2개를 완료합니다.
준비: 요약: visionOS의 볼륨 문서의 ‘개념 되새기기(Reflect on the concepts)’ 섹션을 읽습니다.
그룹 활동: Hello World에 대해 자세히 알아봅니다. Hello World 앱을 다운로드하고 코드를 살펴봅니다. WorldApp 파일을 열어 익숙한 내용을 확인해 봅니다. WindowGroup
장면이 몇 개 사용되고 있는지 세어 보고, 볼류메트릭 윈도우 스타일이 사용된 위치를 확인합니다. 코드 주석을 자세히 읽고 최대한 이해해 보세요. 준비가 되면 프로젝트에 작은 변경을 적용해 봅니다.
돌아가며 짧게 클럽 종결 후 계획을 공유해 보세요. 앱 개발 학습을 어떻게 이어나갈 예정인가요? 어떤 앱을 만들고 싶으신가요?