미팅 플랜
미팅 플랜은 아이디어를 앱으로 실현하는 데 도움이 되는 클럽 활동을 제안합니다. 아래의 리소스는 간단한 앱을 디자인하고 빌드하는 것부터 지능형 기능으로 앱을 향상하는 것까지 앱 개발 사이클 전체를 익히고 적용하는 데 도움이 됩니다.
미팅 플랜은 아이디어를 앱으로 실현하는 데 도움이 되는 클럽 활동을 제안합니다. 아래의 리소스는 간단한 앱을 디자인하고 빌드하는 것부터 지능형 기능으로 앱을 향상하는 것까지 앱 개발 사이클 전체를 익히고 적용하는 데 도움이 됩니다.
Xcode, Swift 또는 SwiftUI를 처음 사용하는 경우, SwiftUI 튜토리얼로 시작하세요.
튜토리얼 및 문서 6개 (개별 과제)
미팅 10회 (그룹 활동)
앱을 계획, 프로토타이핑, 디자인하세요. 클럽의 도움을 받아, 튜토리얼과 문서에서 안내하는 대로 나만의 고유한 앱을 만들어 볼 수 있습니다.
앱 디자인 시작하기를 읽고 학습을 시작해 보세요.
이 자료를 클럽의 필요에 맞게 조정해서 활용하세요. 개별 앱 디자인 관련 작업을 하거나, 클럽에서 공동 앱 디자인 관련 작업을 할 수 있습니다. 함께 앱 아이디어를 떠올려 보거나, 사용자가 친구 및 가족과 지속적으로 소통할 수 있는 앱이라는 아이디어로 시작해 보세요.
질문하고, 사용자 의견을 경청하며, 기능 목록을 정의하세요.
준비: 미팅 전에 앱 디자인 사이클 살펴보기를 읽고 질문하기 튜토리얼을 완료합니다.
그룹 활동: 2~3명으로 구성된 그룹으로 진행합니다. 서로 돌아가며 앱 아이디어에 대한 개방형 질문을 합니다. 이러한 질문은 튜토리얼을 완료할 때 사용했던 질문과 동일할 수도 있고, 다를 수도 있습니다. 응답 내용을 메모합니다.
미팅 후반에 돌아가며 짧게 앱 아이디어에 대한 이야기를 나누면서 배운 점을 이야기합니다.
준비: 미팅 전에 기능 정리하기 튜토리얼을 완료합니다.
그룹 활동: 2~3명으로 구성된 그룹으로 진행합니다. 서로 돌아가며 자신의 스케치나 화면 목록을 보여 줍니다. 각 화면에서 어떤 기능을 기대하는지 물어보고, 의도를 명확히 해야 할 부분을 주의 깊게 살펴봅니다.
미팅 후반에 돌아가며 짧게 각 그룹에서 배운 내용을 공유합니다.
준비: 요약: 발견 문서의 ‘디자인 원칙 되새기기(Reflect on the design principles)’ 섹션을 읽습니다.
그룹 활동: 소규모 그룹으로 진행합니다. 서로 돌아가며 자신이 좋아하거나 흥미롭다고 생각하는 앱 중 하나를 보여 줍니다. 앱에서 발견한 디자인 솔루션에 대해 이야기합니다. 예를 들어, 앱의 목적을 식별할 수 있나요? 한 가지 기능에 초점을 맞추고 있는 것 같나요, 아니면 기능이 지나치게 많은 것 같나요? 앱을 사용할 때 설렘이나 기쁨과 같은 특정 정서가 느껴지나요? 만약 그렇다면, 어떤 디자인 요소가 이러한 정서적 효과에 기여한다고 생각하나요?
미팅 후반에 돌아가며 짧게 각 그룹에서 배운 점이나 흥미롭다고 생각한 점을 공유합니다.
개발이 완료된 iOS 앱처럼 보이고 느껴지며 테스트할 준비가 된 인터랙티브 프로토타입을 만들어 보세요.
준비: 미팅 전에 인터랙티브 프로토타입 빌드하기 튜토리얼을 완료합니다.
그룹 활동: 2명씩 짝을 지어 진행합니다. 자신의 프로토타입을 파트너와 공유합니다. 앱의 핵심 기능 중 하나를 설명하고, 파트너가 프로토타입을 사용해 직접 해당 기능을 완료해 보도록 합니다. 파트너가 망설이거나 다음에 어떻게 해야 할지 몰라 하는 것 같은 부분을 파악합니다.
미팅 후반에 돌아가며 짧게 배운 내용에 대해 의견을 나누어 봅니다.
준비: 요약: 프로토타입 문서의 ‘고품질 리소스 사용하기(Use high-fidelity resources)’ 섹션을 읽습니다.
그룹 활동: 2명씩 짝을 지어 진행합니다. 파트너에게 자신의 프로토타입을 보여 줍니다. 그런 다음, SF Symbols를 함께 살펴봅니다. 앱 디자인에 명확성을 더하기 위해 각자 어떤 기호를 사용할 수 있을지 이야기합니다. 시간 여유가 있는 경우, SF Symbols에서 기호를 편집하거나 애니메이션을 적용할 수 있는 옵션을 확인합니다.
미팅 후반에 돌아가며 짧게 발견한 점을 공유합니다.
사용자가 프로토타입과 상호작용하는 방식을 관찰하여 앱 디자인의 명확성과 사용성을 향상하세요.
준비: 미팅 전에 앱 테스트하기 문서를 완료합니다.
그룹 활동: 3명으로 구성된 그룹으로 진행합니다. 서로 돌아가며 테스트를 반복합니다. 한 명은 테스터 역할을 하고, 다른 한 명은 기록하거나 메모하는 역할을 담당합니다.
미팅 후반에 돌아가며 짧게 테스트 세션에서 새롭게 알게 된 점을 공유합니다.
준비: 미팅 전에 앱 검증하기 문서를 완료합니다.
그룹 활동: 소규모 그룹으로 진행합니다. 서로 돌아가며 테스트에서 수집한 피드백을 보여 준 다음, 결론을 공유합니다. 각자 내린 결론이 테스트에서 발견한 문제의 근본 원인을 어떻게 해결하는지 함께 논의합니다. 파트너가 앱 디자인을 향상할 수 있는 방법과 관련한 추가적인 아이디어가 있으면 공유합니다.
미팅 후반에 돌아가며 짧게 각 그룹에서 배운 내용을 공유합니다.
준비: 요약: 테스트 및 검증 문서의 ‘테스트를 정의하여 인사이트 확보하기(Define your test to capture insights)’ 섹션을 읽습니다.
그룹 활동: 소규모 그룹으로 나뉘어 휴먼 인터페이스 가이드라인의 레이아웃 관련 정보를 살펴봅니다. 이 가이드라인을 자신의 앱 디자인에 어떻게 적용할 수 있을지 이야기합니다.
미팅 후반에 돌아가며 짧게 테스트 및 검증 과정을 통해 자신의 앱 디자인이 어떻게 달라졌는지 공유합니다.
테스트 및 검증에서 얻은 인사이트를 활용하여 앱 디자인을 다시 살펴보고 강화하세요.
준비: 미팅 전에 디자인 반복 실행하기 문서를 완료합니다.
그룹 활동: 2명씩 짝을 짓거나 소규모 그룹으로 나뉘어 각자 앱 디자인에 사용할 색상 팔레트를 만듭니다. 앱의 특성에 적합한 주 색상으로 시작한 다음, 이를 보완하는 강조 색상을 추가합니다. 마지막으로, 앱의 텍스트 색상으로 사용할 수 있도록 충분히 대비되는 중립적인 기본 색상을 추가하는 것을 고려합니다.
미팅 후반에 돌아가며 짧게 예시를 공유하고 색상이 어떻게 앱 경험을 표현하거나 이에 영향을 미치는지 논의합니다.
준비: 요약: 반복 문서의 ‘앞으로 진행하고 되돌아보기(Moving forward and looking back)’ 섹션을 읽습니다.
그룹 활동: 소규모 그룹으로 진행합니다. 서로 돌아가며 자신의 앱 디자인을 보여 줍니다. 디자인을 빌드할 준비가 되었다고 생각하나요? 만약 아니라면, 디자인을 코딩할 준비가 되도록 디자인 사이클의 다양한 단계를 반복하여 어떻게 디자인을 반복 실행할 수 있을까요?
미팅 후반에 돌아가며 짧게 앱 디자인에 대한 새로운 관점으로 인해 앱을 사용하고 빌드하는 방식이 어떻게 달라질 수 있을지 논의합니다.
튜토리얼 5개 (개별 과제)
미팅 10회 (그룹 활동)
SwiftUI를 사용하여 앱을 빌드하면서 앱 개발의 기본을 알아보세요. 단계별 튜토리얼을 따라가며 프로토타입 앱, 앱 화면, 완제품 앱을 만들어 보고, 배운 내용을 응용하고 클럽의 도움을 받아 나만의 고유한 앱을 만들어 볼 수 있습니다.
Xcode는 앱의 모습과 동작 방식을 Mac에서 바로 확인할 수 있는 도구를 포함하고 있어 테스트용 기기가 추가로 필요하지 않습니다.
SwiftUI 시작하기를 읽고 학습을 시작해 보세요.
메시징 앱 프로토타입을 제작하며 Xcode와 SwiftUI에 대해 알아보세요. Swift 구문과 소스 편집기 및 미리보기를 사용하는 방법을 배워봅니다.
준비: 첫 미팅 전에 Hello, SwiftUI 튜토리얼을 완료합니다.
그룹 활동: 클럽 전체 또는 소규모 그룹으로 나뉘어 요약: Xcode 살펴보기 문서의 ‘앱 확장하기(Extend your app)’ 섹션에 있는 연습 과제 중 2개를 완료합니다.
준비: 요약: Xcode 살펴보기 문서의 ‘개념 되새기기(Reflect on the concepts)’ 섹션을 읽습니다.
그룹 활동: 새로운 Xcode 프로젝트 ‘MyselfInSixWords’를 시작합니다. Text 뷰를 사용하여 나를 설명하는 6개의 단어를 표시하고, 각 단어에 패딩과 다양한 배경 색상을 적용합니다. 을 VStackHStack으로 대체하여 단어를 가로로 표시해 봅니다. 그런 다음 난이도를 높여서 HStack과 VStack 뷰를 혼합하여 앱에 다양한 레이아웃을 생성합니다. 뷰의 HStack을 VStack 안에 삽입하거나 그 반대로 할 수 있나요? 이렇게 하면 어떤 일이 생기나요?
미팅 후반에 돌아가며 짧게 자신의 MyselfInSixWords 프로젝트를 선보입니다.
맞춤화된 뷰를 빌드하여 며칠 간의 일기 예보를 제작하는 방법을 알아봅니다. 뷰에서 속성을 사용하여 각 날짜의 표시를 맞춤화해 보세요.
준비: 속성을 사용해 뷰를 맞춤화하기 튜토리얼을 완료합니다.
그룹 활동: 클럽 전체 또는 소규모 그룹으로 나뉘어 요약: 뷰, 구조 및 속성 문서의 ‘앱 확장하기(Extend your app)’ 섹션에 있는 연습 과제 중 1~2개를 완료합니다.
준비: 요약: 뷰, 구조, 속성 문서의 ‘개념 되새기기(Reflect on the concepts)’ 섹션을 읽습니다.
그룹 활동: 계산 속성을 사용하여 연습해 봅니다. 계산 속성을 추가하여 최고 기온이 화씨 80도를 초과하는 경우(high > 80) 다양한 색상을 반환하도록 해봅니다. .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를 사용하여 앱을 빌드하면서 데이터 모델링의 기본을 알아보세요. 단계별 튜토리얼을 따라가며 프로토타입 및 완제품 앱을 만들어 보고, 배운 내용을 응용하고 클럽의 도움을 받아 나만의 고유한 앱을 만들어 볼 수 있습니다.
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개를 완료합니다.
그룹 활동: 고난도 모드를 적용해 봅니다. 더 도전적인 게임을 위해 고난도 모드를 추가해 봅니다. 올바르지 않은 배열을 제출했을 때 재시도의 기회를 얻는 게 아니라 포인트를 잃게 된다면 어떨까요? 한 단계 더 나아가 단어를 숨겨서 플레이어가 아이콘만 보고 알파벳순으로 정렬하게 할 수도 있습니다.
미팅 후반에 돌아가며 배운 내용에 대해 의견을 나누어 봅니다.
튜토리얼 5개 (개별 과제)
미팅 8회 (그룹 활동)
단계별 튜토리얼을 따라가며 완제품인 습관 추적 앱을 만드세요. 배운 내용을 응용하고 클럽의 도움을 받아 나만의 고유한 앱을 만들어 볼 수 있습니다.
Xcode는 앱의 모습과 동작 방식을 Mac에서 바로 확인할 수 있는 도구를 포함하고 있어 테스트용 기기가 추가로 필요하지 않습니다.
앱 개발 시작하기를 읽고 학습을 시작해 보세요.
텍스트 및 사진 데이터를 캡처할 화면을 빌드하세요. SwiftData를 사용하여 항목을 저장하고 이를 표시할 맞춤화된 뷰를 빌드하세요.
준비: 미팅 전에 Swift 기본 사항 검토하기를 읽고 데이터 수집, 모델링 및 저장하기 튜토리얼을 완료합니다.
그룹 활동: 소규모 그룹으로 나뉘어 한 항목에 여러 이미지를 추가할 수 있는 방법을 제공합니다.
미팅 후반에 돌아가며 짧게 각 그룹에서 솔루션을 보여 줍니다. 그런 다음, 여러 이미지 사용 시 필요한 디자인 고려 사항과 이러한 고려 사항이 Moment 데이터 모델에 미치는 영향에 대해 의견을 나누어 봅니다.
준비: 미팅 전에 맞춤화된 레이아웃 뷰 사용하기 튜토리얼을 완료합니다.
그룹 활동: 소규모 그룹으로 나뉘어 HexagonLayout에 대한 추가 케이스를 만든 다음, 새로운 레이아웃 크기에 맞게 조정하는 방법을 결정합니다.
미팅 후반에 돌아가며 짧게 각 그룹에서 생각해 낸 내용을 공유합니다.
준비: 요약: 뷰 및 데이터 저장 문서의 ‘개념 되새기기(Reflect on the concepts)’ 섹션을 읽습니다.
그룹 활동: 소규모 그룹으로 나뉘어 다양한 도형으로 실험해 봅니다. 육각형 SF Symbol을 다른 기호로 대체합니다. 이 기호가 디자인에 어떤 영향을 미치나요? 이 기호가 Hexagon, HexagonMomentView 및 HexagonLayout에 어떤 영향을 미치나요?
미팅 후반에 돌아가며 짧게 각 그룹에서 배운 점을 공유합니다.
Swift와 데이터 모델링에 대한 지식을 활용하여 사용자 경험 기능으로 더 매력적인 앱을 만들어 보세요.
준비: 미팅 전에 배지용 알고리즘 생성하기 튜토리얼을 완료합니다.
그룹 활동: 개인별로 또는 소규모 그룹으로 나뉘어 요약: 사용자 경험 기능 문서의 ‘앱 확장하기(Extend your app)’ 섹션에 포함된 제안 사항 중 하나 또는 두 가지 모두를 완료합니다.
미팅 후반에 돌아가며 짧게 작업한 내용을 공유합니다.
준비: 요약: 사용자 경험 기능 문서의 ‘개념 되새기기(Reflect on the concepts)’ 섹션을 읽습니다.
그룹 활동: 소규모 그룹으로 나뉘어 배지 수를 표시하기 전에 HexagonAccessoryView를 업데이트하여 최대 두 개의 액세서리를 표시할 수 있도록 합니다.
미팅 후반에 돌아가며 이 활동에서 어떤 부분이 어려웠는지 의견을 나누어 봅니다.
앱에 손쉬운 사용 기능을 추가한 다음, 디버깅 기술을 향상하여 앱 테스트를 준비하세요.
준비: 미팅 전에 포용적 기능 추가하기 튜토리얼을 완료합니다.
그룹 활동: 소규모 그룹으로 나뉘어 다양한 기기에서 앱을 테스트합니다. 캔버스에서 미리보기 기기를 변경하고 다양한 화면 크기로 앱을 테스트합니다.
미팅 후반에 돌아가며 테스트한 기기에서 레이아웃이 제대로 표시되는지 의견을 나누어 봅니다. 앱을 어떻게 변경해야 할까요?
준비: 미팅 전에 버그 조사 및 수정하기 튜토리얼을 완료합니다.
그룹 활동: 소규모 그룹으로 나뉘어 unlockBadges에 대한 유닛 테스트를 작성해 배지 잠금 해제 시 버그가 없는지 확인합니다.
미팅 후반에 돌아가며 배운 내용에 대해 의견을 나누어 봅니다.
준비: 요약: 앱 향상 문서의 ‘개념 되새기기(Reflect on the concepts)’ 섹션을 읽습니다.
그룹 활동: 소규모 그룹으로 나뉘어 Localizing Landmarks 샘플 프로젝트를 따라 Grateful Moments 데모 앱을 현지화할 준비를 합니다.
미팅 후반에 돌아가며 배운 내용에 대해 의견을 나누어 봅니다.
튜토리얼 6개 (개별 과제)
미팅 12회 (그룹 활동)
머신 러닝의 기본 사항을 살펴보고 Apple 도구와 프레임워크를 사용하여 앱에 지능형 기능을 추가하는 방법을 알아보세요. 단계별 튜토리얼을 따라가며 SwiftUI로 완제품 앱을 만들어 보세요. 배운 내용을 응용하고 클럽의 도움을 받아 나만의 고유한 앱을 만들어 볼 수 있습니다.
Xcode는 앱의 모습과 동작 방식을 Mac에서 바로 확인할 수 있는 도구를 포함하고 있어 테스트용 기기가 추가로 필요하지 않습니다.
머신 러닝 및 AI 시작하기를 읽고 학습을 시작해 보세요.
Natural Language 프레임워크와 감성 분석을 사용한 머신 러닝을 살펴보세요. 하이킹에 대한 의견을 수집하고, 응답을 분석하고, 결과를 시각적으로 표시하는 앱을 만들어 보세요.
준비: 미팅 전에 텍스트의 감성 분석하기 튜토리얼을 완료합니다.
그룹 활동: 소규모 그룹으로 나뉘어 Scorer의 기능을 확장합니다. Natural Language 프레임워크를 사용하여 해당 응답이 작성된 언어도 반환하도록 합니다. Response를 업데이트하여 이 새로운 정보를 저장하고, ResponseView를 사용하여 해당 정보를 표시합니다.
미팅 후반에 돌아가며 짧게 각 그룹에서 어떻게 이 정보를 배치하고 쉽게 읽을 수 있도록 만들었는지 공유해 봅니다.
준비: 요약: 자연어 문서의 ‘개념 되새기기(Reflect on the concepts)’ 섹션을 읽습니다.
그룹 활동: 소규모 그룹으로 나뉘어 감성 열거형의 케이스를 3개 대신 5개로 업데이트합니다. 케이스에 레이블을 지정하는 방법, 케이스 간에 감성 점수 범위를 나누는 방법, 케이스를 UI에 표시하는 방법을 결정합니다. (아이콘에는 SF Symbols를 사용할 수 있습니다.)
다음으로, 앱의 샘플 세트에 응답을 추가하고 예상대로 점수가 부여되는지 확인합니다. 각 열거형 케이스에 대해 새로운 응답을 생성할 수 있는지 확인해 봅니다.
미팅 후반에 돌아가며 짧게 자신이 사용하는 앱 중 감성 분석을 통합할 수 있는 앱에 대해 의견을 나누어 봅니다. 사용하는 앱 중 감성 분석을 추가하면 더 나을 수 있는 다른 앱이 있나요?
이미지 속 텍스트를 식별하고 다른 언어로 번역하기 위해 머신 러닝 Vision 프레임워크 및 Translation 프레임워크를 사용하는 앱을 만들어 보세요.
준비: 미팅 전에 이미지에서 텍스트 추출하기 튜토리얼을 완료합니다.
그룹 활동: 소규모 그룹으로 나뉘어 간판에서 텍스트가 있는 부분만 포함되도록 잘라낸 간판 이미지의 복사본을 만드는 것으로 시작합니다. 잘라낸 이미지를 앱에 추가한 다음, 사용자가 속도 또는 정확도 중 하나를 우선시하여 선호하는 인식 수준을 선택할 수 있도록 앱을 변경합니다. 속도를 우선시할 때 잘라낸 이미지와 원본 이미지가 어떻게 인식되는지 실험해 봅니다.
다음으로, 인식된 텍스트의 확실성 값에 따라 바운딩 직사각형의 색상을 변경합니다. 다시 한번, 원본 이미지와 잘라낸 이미지 간의 결과를 비교해 봅니다.
미팅 후반에 돌아가며 짧게 입력 이미지에 대해 배운 내용에 대해 의견을 나누어 봅니다.
준비: 요약: 이미지 속 텍스트 인식 문서의 ‘개념 되새기기(Reflect on the concepts)’ 섹션을 읽습니다.
그룹 활동: 소규모 그룹으로 나뉘어 Vision 프레임워크에서 여러 옵션을 제시할 때 여러 후보 중에서 선택할 수 있는 방법을 제공합니다. 옵션을 선택할 수 있는 새로운 제어 기능을 추가하거나 키보드를 사용하여 잘못된 결과를 수정하는 것을 고려해 보세요.
미팅 후반에 돌아가며 짧게 각 그룹에서 솔루션을 보여 줍니다. 그런 다음, 어떻게 Vision 프레임워크를 사용해 유용할 만한 앱을 만들 수 있을지 의견을 나누어 봅니다.
Xcode에서 Create ML 도구를 사용하여 머신 러닝 모델을 학습시키세요. 제공된 데이터를 사용하여 거리와 고도 등의 특성에 따라 등산로의 난이도를 예측하는 모델을 학습시킵니다.
준비: 미팅 전에 Core ML 모델 학습시키기 튜토리얼을 완료합니다.
그룹 활동: 클럽 전체 또는 소규모 그룹으로 나뉘어 선형 회귀 알고리즘 매개변수를 조정합니다. 모델 결과를 향상할 수 있나요? 학습에 소요되는 시간을 줄이면서 동일한 품질의 모델을 얻을 수 있나요?
미팅 후반에 돌아가며 짧게 변경 사항을 공유하고 정확도 또는 속도를 얼마나 향상할 수 있었는지 알려 주세요.
준비: 요약: Create ML을 사용한 모델 학습 문서의 ‘개념 되새기기(Reflect on the concepts)’ 섹션을 읽습니다. 데이터를 사용하여 위험 값을 계산하는 수학 공식을 결정합니다. 해당 공식이 앱과 대략적으로 동일한 위험 값을 예측한다면 모델 학습이 올바르게 이루어지고 있다는 것을 알 수 있습니다. 힌트: TrailData1k.csv를 미리 보면 개별 필드를 분리하는 데 도움이 될 수 있습니다.
그룹 활동: 소규모 그룹으로 나뉘어 등산로 데이터를 사용해 위험 이외의 값(예: 고도, 거리, 위험한 야생 동물 서식)을 예측하는 모델을 학습시킵니다.
그런 다음 Create ML 모델을 사용하여 어떤 다른 종류의 앱을 빌드할 수 있을지 의견을 나누어 봅니다.
하이킹에 대한 세부 정보를 수집하고 예상되는 난이도를 표시하는 앱으로 머신 러닝 모델을 가져옵니다.
준비: 미팅 전에 Core ML로 모델 가져오기 튜토리얼을 완료합니다.
그룹 활동: 클럽 전체 또는 소규모 그룹으로 나뉘어 앱에서 위험 설정을 변경합니다. 튜토리얼의 위험 카테고리에서는 앱 사용자가 하이킹 매니아라고 가정합니다. 아마추어 하이커에 맞게 위험을 조정한 다음, 정확한 위험을 표시하는 UI를 생성합니다. 단지 숫자 위험 값을 텍스트로 표시하는 것에 대한 대안들을 살펴봅니다. 다른 등산로와 비교하여 위험을 표시할 수 있는 방법을 찾을 수 있나요?
미팅 후반에 돌아가며 짧게 입력으로 사용할 수 있는 다른 매개변수에 대해 의견을 나누어 봅니다. 어떻게 하면 결과의 정확도를 향상하거나 앱을 사용하는 다른 사용자를 지원할 수 있을까요?
준비: 요약: Core ML을 사용한 맞춤형 모델 문서의 ‘개념 되새기기(Reflect on the concepts)’ 섹션을 읽습니다.
그룹 활동: 소규모 그룹으로 나뉘어 제출 버튼을 예측되는 위험에 대한 실시간 업데이트로 대체합니다. 힌트: 입력 상태가 변경될 때 .onChange를 사용합니다.
미팅 후반에 돌아가며 짧게 변경한 내용을 공유합니다.
사용자가 Image Playground 프레임워크를 사용해 이미지를 생성하고 수정할 수 있는 앱을 만들어 보세요.
준비: 미팅 전에 이미지 생성 기능 활용하기 튜토리얼을 완료합니다.
그룹 활동: 소규모 그룹으로 나뉘어 ImageGenerator를 업데이트해 사용자가 초기 이미지 개념을 제공하여 생성된 이미지에 영향을 미칠 수 있도록 합니다. 또한 사용자가 초기 이미지를 업로드할 수 있도록 UI를 조정해야 합니다.
미팅 후반에 돌아가며 짧게 각 그룹에서 솔루션을 보여 줍니다.
준비: 요약: Image Playground를 사용한 이미지 생성 문서의 ‘개념 되새기기(Reflect on the concepts)’ 섹션을 읽습니다.
그룹 활동: 소규모 그룹으로 나뉘어 사용자가 ImageCreator의 limit 매개변수를 사용하여 여러 변형을 생성할 수 있도록 합니다. 생성된 모든 이미지를 표시하도록 인터페이스를 수정합니다.
미팅 후반에 돌아가며 짧게 각 그룹에서 배운 점을 공유합니다.
스트리밍 응답 및 가이드 생성 기능을 사용하여 퀴즈 앱을 만들어 보세요.
준비: 미팅 전에 구조화된 콘텐츠 생성하기 튜토리얼을 완료합니다.
그룹 활동: 개인별로 또는 소규모 그룹으로 나뉘어 요약: Foundation Models를 활용한 지능형 기능 문서의 ‘앱 확장하기(Extend your app)’ 섹션에 포함된 제안 사항 중 하나 또는 두 가지 모두를 완료합니다.
미팅 후반에 돌아가며 짧게 작업한 내용을 공유합니다.
준비: 요약: Foundation Models를 활용한 지능형 기능 문서의 ‘개념 되새기기(Reflect on the concepts)’ 섹션을 읽습니다.
그룹 활동: 퀴즈에 score 속성을 추가합니다. 사용자가 질문에 답변할 때 점수를 추적하고 표시합니다.
미팅 후반에 돌아가며 배운 내용에 대해 의견을 나누어 봅니다.
튜토리얼 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 장면이 몇 개 사용되고 있는지 세어 보고, 볼류메트릭 윈도우 스타일이 사용된 위치를 확인합니다. 코드 주석을 자세히 읽고 최대한 이해해 보세요. 준비가 되면 프로젝트에 작은 변경을 적용해 봅니다.
돌아가며 한 명씩 짧게 다음에 무엇을 할 계획인지 공유합니다. 앱 개발 학습을 어떻게 이어나갈 예정인가요? 어떤 앱을 만들고 싶으신가요?