tvOS 앱 기획하기
Apple TV 소프트웨어 개발이 처음이신가요? 잠시 시간을 내어 개발에 사용할 기술과 도구를 살펴보세요. Apple에서는 개발을 시작하는 데 필요한 도구를 제공합니다. tvOS를 사용하여 원하는 성능은 물론 필요한 기술과 기능을 구현해 보세요.
Apple TV 소프트웨어 개발이 처음이신가요? 잠시 시간을 내어 개발에 사용할 기술과 도구를 살펴보세요. Apple에서는 개발을 시작하는 데 필요한 도구를 제공합니다. tvOS를 사용하여 원하는 성능은 물론 필요한 기술과 기능을 구현해 보세요.
Apple TV를 통해 사용자가 소파에 앉아 편히 즐길 수 있는 콘텐츠를 제공해 보세요. 최신 엔터테인먼트, 스포츠 또는 뉴스 콘텐츠를 스트리밍하고, 신나는 게임 또는 교육 경험을 제공하고, 피트니스 앱에서 개인 트레이닝 세션을 제공할 수 있습니다. 4K 비디오, Dolby Vision, Dolby Atmos 및 HDR10 등 고품질 포맷으로 콘텐츠를 제공할 수 있습니다. 앱의 인터페이스를 Apple TV 리모컨으로 손쉽게 탐색할 수 있게 디자인해 보세요.
tvOS는 콘텐츠 전달을 위한 다양한 경로를 제공하며, 처음 선택한 경로는 나중에 해야 할 결정에 영향을 줍니다.
표준 뷰에서 UI 조합하기
릴리즈 간에 콘텐츠가 크게 변경되지 않는 경우 tvOS의 버튼, 텍스트 레이블 및 기타 표준 보기 및 제어기로 UI를 빌드할 수 있습니다. 제어 기능의 디자인을 맞춤화하거나 완전히 새로운 뷰를 생성하여 독창적인 방식으로 콘텐츠를 표현해 보세요. UI는 Apple TV에 로컬로 저장되며, 로컬 또는 네트워크 데이터로 UI를 채우게 됩니다.
앱 개발 경로를 선택한 다음에는 필요한 기능에 대해 생각해 보세요. 몇 가지 핵심 기술을 제외하고, 특정 기능 지원을 위해 대부분의 기술을 필요에 따라 도입할 수 있습니다. Apple은 미디어 관리 및 재생, 데이터 생성 및 보안, 외부 하드웨어 연결, Siri와 같은 시스템 서비스와의 통합 등을 위한 기술을 제공합니다.
소프트웨어 개발은 Apple의 통합 개발 환경인 Xcode에서 시작됩니다. Xcode는 프로젝트 관리자, 코드 편집기, UI용 비주얼 편집기, 디버깅 도구, 다양한 기기를 위한 시뮬레이터, 성능 측정 도구 등을 포함하여 소프트웨어 개발에 필요한 종합 도구 세트를 제공합니다. 아울러 Xcode에는 소프트웨어 개발을 위한 시스템 코드 모듈 종합 세트인 프레임워크도 포함되어 있습니다.
Xcode에는 iOS, iPadOS, macOS, tvOS 및 watchOS용 SDK가 포함되어 있습니다.
Xcode에서 신규 프로젝트를 생성하려면 File(파일) > New(신규) > Project(프로젝트)를 선택한 후 표시되는 메시지를 따릅니다. Xcode는 초기 앱 유형에 맞는 옵션을 제공합니다. 옵션을 선택하면 Xcode가 제공하는 기본 코드를 포함한 프로젝트의 초기 구성이 결정됩니다. 앱 유형은 또한 앱의 UI를 만드는 방식을 정의합니다. 예를 들어 Game(게임) 옵션을 선택하면 다양한 그래픽 기술 중 하나를 사용하여 앱의 콘텐츠를 그릴 수 있습니다. Xcode 문서에서 자세한 사용 방법을 확인하세요.
프로젝트를 설정하면서 어떤 프로그래밍 언어를 사용할 것인지 생각해 보세요. Swift는 구문이 간결하면서도 안전하게 설계되었으며 코드의 표현력을 향상하는 최신 기능을 제공하므로 개발자들이 선호하는 옵션입니다. Swift 코드를 사용하면 빠르게 실행되는 소프트웨어를 제작할 수 있으며, Objective-C와도 상호 운용이 가능하므로 같은 프로젝트에 두 가지 언어의 소스 파일을 포함시킬 수 있습니다.
Swift 프로그래밍 언어 설명서
Swift 프로그래밍 언어 설명서는 Swift 프로그래밍 언어에 대한 전체적인 개요를 제공하는 설명서로, Swift를 시작하는 개발자를 위한 탁월한 입문서입니다.
개발 초기에 선택할 또 다른 사항은 핵심 인프라에 사용할 앱 빌더 기술을 선택하는 것입니다. 앱 빌더 기술은 인터페이스를 조합하고, 이벤트를 처리하고, 시스템과 상호작용하는 데 사용하는 기본 코드를 제공합니다. 각 앱 빌더 기술은 최소 하나 이상의 개발 경로를 지원하며 일부는 여러 경로를 지원합니다.
다음 앱 빌더 기술 중 하나를 선택하세요.
SwiftUI
SwiftUI는 플랫폼에 구애받지 않는 최신 접근 방식을 제공하므로 UI 및 앱 인프라 빌드에 선호되는 앱 빌더 기술입니다. SwiftUI를 사용하면 인터페이스를 프로그래밍 방식으로 지정할 수 있으며, 이러한 인터페이스를 Xcode 편집기 내부 등 시스템에서 동적으로 표시 및 업데이트할 수 있습니다. SwiftUI 사용 방법에 관한 자세한 내용은 SwiftUI 소개 튜토리얼에서 확인하시기 바랍니다.
TVUIKit 및 UIKit
TVUIKit 및 UIKit은 앱의 UI 및 인프라를 빌드하기 위한 대상체 라이브러리를 제공합니다. 스토리보드를 사용하거나 코드에서 프로그래밍하여 화면에 표시되는 뷰와 다양한 뷰 세트 간의 탐색을 조합해 보세요. TVUIKit은 tvOS 전용 뷰를 제공하며, UIKit은 버튼과 레이블 및 앱의 기타 인프라와 같은 일반적인 뷰를 제공합니다. 전체 화면 레이아웃을 사용하여 몰입감 넘치는 경험 만들기에서 자세한 내용을 참고하시기 바랍니다.
SwiftUI는 앱의 핵심 인프라 및 UI 빌드에 선호되는 기술입니다. 모든 앱은 SwiftUI 또는 UIKit을 일부 사용하지만, SwiftUI의 최신 접근 방식으로 유지관리가 더 용이한 코드를 작성할 수 있습니다. 또한 SwiftUI를 사용한다 하더라도 UIKit 코드를 사용할 수 있으며 동일한 뷰 계층에 있는 SwiftUI 뷰와 UIKit 뷰를 손쉽게 혼합할 수도 있습니다.
SwiftUI 및 UIKit은 Apple의 데이터 관리 기술과 매끄럽게 통합되어 인터페이스 제작을 지원합니다. Swift 표준 라이브러리 및 Foundation 프레임워크는 어레이 및 딕셔너리, 문자열, 숫자, 날짜 및 기타 일반적인 데이터 값과 같이 앱 빌드에 필요한 기본 유형을 제공합니다. 개발자가 정의한 맞춤형 유형에는 Swift의 Codable 지원을 적용하여 디스크에서 해당 유형이 지속되도록 할 수 있습니다. 앱에서 대량의 구조적 데이터를 관리하는 경우 Core Data 또는 CloudKit을 사용한 데이터 관리 및 유지를 고려해 보세요.
사용자는 매력적인 경험을 할 수 있는 앱에 이끌립니다. 멋진 디자인, 이해하기 쉬운 레이아웃 그리고 적절한 콘텐츠를 강조하는 UI를 만들어 보세요.
휴먼 인터페이스 가이드라인
Apple의 휴먼 인터페이스 가이드라인은 앱 인터페이스 디자인, 콘텐츠 탐색, Apple TV 상호작용 관리 등에 관한 귀중한 정보를 담고 있습니다. tvOS 생태계를 살펴볼 때 먼저 이 가이드라인을 읽고, 해당하는 Apple 디자인 리소스를 사용하여 앱 디자인을 시작하시기 바랍니다.
tvOS 앱에 필수적인 특정 기능과 기술이 있습니다. 초기 UI를 계획할 때는 다음 기능을 고려하세요.
다크 모드
이 시스템 설정을 사용하면 Apple TV의 라이트 또는 다크 인터페이스 중 하나를 선택할 수 있습니다. 다크 및 라이트 인터페이스 스타일은 기본 색상 팔레트 및 이미지 애셋이 서로 다르며, 애셋 카탈로그를 통해 이를 관리할 수 있습니다. 기타 UI 부분의 경우 시스템 API를 사용하여 라이트 및 다크 콘텐츠로의 변경 조건을 설정할 수 있습니다. 인터페이스에 다크 모드 지원하기에서 자세한 내용을 확인하시기 바랍니다.
자동 레이아웃
서로 다른 TV 크기, 영상비 및 해상도를 지원하기 위해 페이지의 위치를 수동으로 조정하는 대신 시스템에서 현재 안전 영역에 비례하여 조정하도록 하는 방법을 알아보세요. SwiftUI에는 자동 레이아웃이 UI 디자인 방식의 일부로 도입되어 있습니다. UIKit 뷰에 자동 레이아웃을 도입하려면 인터페이스에 Auto Layout 제약 조건을 추가하도록 합니다.
확장 가능한 이미지
앱이 변경 사항에 맞추어 잘 조정될 수 있도록 SF Symbols를 통합해 보세요. SF Symbols 앱은 화면 스타일과 크기 변화에 맞춰 자연스럽게 조정되는 구성 가능하고 방대한 벡터 기반 이미지 모음을 제공합니다. 또한 San Francisco 시스템 서체와 잘 어울리기 때문에 Apple 플랫폼 전반에 걸쳐 일관된 스타일을 제공합니다. UI에서 기호 이미지 구성 및 표시하기를 참고하시기 바랍니다.
초점 기반 탐색에 유의하여 인터페이스를 디자인하세요. 앱과의 상호작용은 대부분 Apple TV 리모컨을 통해 이루어집니다. 사용자는 리모컨의 방향 버튼을 사용하여 UI의 한 부분에서 다른 부분으로 초점을 옮깁니다. 그런 다음 선택 버튼을 사용하여 초점을 맞춘 항목에서 작업을 수행하거나 Menu 버튼을 눌러 이전 화면으로 돌아갑니다. 탐색 기능은 최대한 간단하게 만들고, 텍스트 입력 및 기타 복잡한 상호작용은 최소화하도록 합니다.
락업(Lockups)은 탐색을 간소화할 수 있는 방법 중 하나로, UI에서 유사한 항목 간의 일관성을 향상시켜 줍니다. 락업은 여러 관련된 뷰를 모아 선택 가능한 단일 요소로 그룹화한 것입니다. 예를 들어, 영화 락업에는 영화의 제목, 설명, 캐스팅 목록 및 포스터 이미지가 포함될 수 있습니다. 사용자가 영화를 선택하면 tvOS는 개별 항목 대신 전체 락업에 초점을 맞춥니다. 락업에서 자세한 내용을 참고하시기 바랍니다.
Apple TV는 서비스 특성상 미디어 중심 앱을 위한 최적의 플랫폼입니다. Apple의 오디오 및 비디오 기술을 사용하면 다양한 미디어 포맷을 사용할 수 있으며, 이를 고품질로 재생하는 데 필요한 도구를 사용할 수 있습니다.
미디어 재생 및 관리하기
AVKit은 앱의 오디오 및 비디오 콘텐츠를 재생하고 관리하는 데 필요한 모든 것을 제공합니다. 비디오 이동 제어기가 내장되어 있으며 AirPlay, PiP(화면 속 화면), 인터스티셜 콘텐츠 등을 지원하는 표준 시스템 인터페이스를 사용하여 비디오를 표시하세요. 콘텐츠를 더 정밀하게 제어하려면 AVFoundation을 사용하시기 바랍니다.
실시간 또는 녹음/녹화된 콘텐츠 스트리밍하기
HTTP Live Streaming을 사용하여 스트리밍된 콘텐츠를 만들고 서버에 배포하는 방법에 대해 알아보세요. AVFoundation을 사용하면 스트리밍이 완료된 콘텐츠를 앱에서 재생할 수 있습니다.
모든 사용자에게 탁월한 경험을 제공하기 위해 다음의 내용을 준수하세요.
사용자의 개인정보 보호하기
개인정보는 매우 중요합니다. 사용자에게 당사자의 데이터가 어떻게 사용되고 있는지 지속적으로 알려주세요. 데이터를 수집하는 경우, 개인정보 처리방침을 제공하고 수집한 정보를 어떻게 사용하는지 설명해 주세요. 개인 데이터를 기반으로 작동하는 Apple 기술을 사용하는 경우, 첫 사용 시 관련 사용 설명이 시스템에 표시되도록 합니다. 사용자의 개인정보 보호하기에서 자세한 내용을 참고하시기 바랍니다.
수집 및 저장하는 데이터 보호하기
데이터를 수집하는 경우 악의적인 공격으로부터 데이터를 보호해야 합니다. 암호, 금융 데이터 또는 개인 색별 가능 정보와 같은 매우 민감한 정보를 사용자의 암호화된 키체인에 보관하세요. 온디스크 암호화 또는 다른 Apple 보안 기술을 사용하여 기타 개인정보를 저장하세요. Apple CryptoKit을 사용하여 로컬에 저장하거나 앱 외부로 전송하는 데이터를 암호화하세요.
손쉬운 사용 지원 감사하기
Apple의 기술은 손쉬운 사용을 지원합니다. 하지만 화면 읽기 프로그램 및 기타 손쉬운 사용 기능이 원활히 작동하려면 개발자가 제공하는 정보가 중요합니다. SwiftUI 및 UIKit은 UI의 각 부분을 설명할 수 있지만 각 부분이 작동하는 방식에 대해서는 개발자만이 설명할 수 있습니다. 손쉬운 사용 레이블 및 기타 설명을 검토하여 유용한 정보를 제공하고 있는지 확인하고, 시선 기반 탐색이 간단하고 직관적인지 확인하세요. 손쉬운 사용에서 자세한 내용을 참고하시기 바랍니다.
앱 국제화 및 현지화
다른 지역 및 언어에 맞게 앱을 현지화하고 세계 시장에 진출해 보세요. Foundation 프레임워크에서는 각기 다른 언어 및 지역에 맞는 문자열, 날짜, 시간, 통화 및 숫자의 형식을 지원하므로, 이를 사용하여 앱을 준비해 보세요. 좌횡서 언어 및 우횡서 언어 모두에서 UI가 제대로 보이는지 확인하세요. 앱 리소스를 현지화하고 Xcode 프로젝트에 추가하세요. 현지화에서 국제화 및 현지화 절차에 대한 자세한 내용을 참고하시기 바랍니다.
모두를 위한 디자인
콘텐츠를 개발할 때 사회문화적인 차이를 고려하고, 일부 사용자가 부정적 또는 모욕적으로 느낄 수 있는 이미지 및 용어의 사용을 피하도록 합니다. 포용성에서 자세한 내용을 참고하시기 바랍니다.
철저하게 앱 테스트 및 디버깅하기
개발 사이클에서 문제가 발생하면 내장된 Xcode 디버거를 사용하여 디버깅할 수 있습니다. XCTest를 사용하여 자동화된 테스트 스위트를 제작하고 매 빌드마다 이를 실행하여 새로운 코드가 정상적으로 작동하는지 확인해 보세요. Xcode Cloud의 지속적 통합 시스템을 사용하여 빌드, 테스트 주기 및 QA 팀에 앱 배포를 자동화하도록 합니다.
앱 성능 최적화하기
Xcode와 함께 제공되는 Instruments 앱을 사용하여 코드에서 발생하는 병목 현상 및 기타 성능 문제를 식별할 수 있습니다. 실행 중인 코드를 프로파일링하고, 메모리 누수를 찾고, 리소스 사용 내역을 분석하는 등 다양한 작업에 활용해 보세요. Instruments를 사용하여 지표를 수집하는 방법에 관한 자세한 내용은 앱 성능 개선하기에서 확인하시기 바랍니다.
앱에 맞는 비즈니스 모델 선택하기
무료, 앱 내 구입 포함 무료, 유료 다운로드 등 다양한 비즈니스 모델을 사용하여 전 세계에 배포해 보세요. 인터페이스는 사용자에게 조화로운 경험을 제공하며 개발자가 선택한 비즈니스 모델을 지원하도록 빌드합니다. 비즈니스 모델 선택하기에서 자세한 내용을 참고하시기 바랍니다.
앱 개발을 완료한 후에는 경험을 향상할 추가적인 방법을 찾아보세요. 특정 기능을 추가하거나 콘텐츠에 다른 방법으로 접근하는 것과 같이 작은 것이 큰 차이를 만들 수 있습니다. 예를 들면 다음과 같습니다.
앱의 로그인 절차 간소화하기
시스템 로그인 인프라를 도입하면 같은 Apple ID로 연결된 iPhone 또는 iPad를 사용하여 tvOS 앱에 로그인할 수 있습니다. 또한 앱별 사용자 프로필 선택 절차를 간소화하는 다중 사용자 지원을 도입하여 사용자가 콘텐츠에 더 빨리 접근하도록 해보세요.
다른 기기에서의 연결 허용하기
사용자가 iPhone, iPad, 또는 Apple Watch로 tvOS 앱과 상호작용할 수 있도록 해보세요. DeviceDiscoveryUI를 사용하여 양쪽 기기에서 실행 중인 앱 간에 안전한 네트워크 연결을 생성하고 이를 사용하여 데이터를 교환할 수 있습니다. 예를 들어, 다른 사용자가 iPhone에서 터치 입력을 사용하여 tvOS 앱을 제어하도록 할 수 있습니다.
상단에 콘텐츠 쇼케이스하기
Apple TV 홈 화면에 있는 앱 행 상단 바로 위의 배너 영역에 추가 콘텐츠를 표시할 수 있습니다. 상단 앱 확장 프로그램을 사용하여 해당 콘텐츠를 시스템에 제공하세요. 상단 앱 확장 프로그램은 앱에 포함하는 별도의 실행 파일입니다. 확장 프로그램을 사용하여 신규 또는 추천 콘텐츠를 강조 표시하거나 다른 사용자가 좋아하는 콘텐츠를 표시할 수 있습니다. TV 서비스에서 이러한 확장 프로그램을 생성하는 방법에 관한 내용을 확인하시기 바랍니다.
SharePlay를 통한 활동 공유 지원하기
사용자는 SharePlay를 사용하여 앱 내 활동을 FaceTime 통화로 공유할 수 있습니다. SharePlay를 사용하여 스트리밍 비디오 앱에서 영화 또는 스포츠 경기를 함께 감상할 수 있게 해보세요. Group Activities를 사용하여 공유하고자 하는 활동을 정의하고, AVFoundation을 사용하여 미디어 재생을 동기화할 수 있습니다.
방송용으로 실시간 오디오 및 비디오 캡처하기
콘텐츠를 공유하는 또 다른 방법은 실시간 비디오 및 오디오를 캡처하고 이를 녹음/녹화본으로 저장하거나 실시간으로 방송하는 것입니다. 사용자가 이메일, 메시지 또는 소셜 미디어를 통해 경험을 공유할 수 있도록 게임 또는 기타 앱에 이 기능을 추가해 보세요. ReplayKit에서 자세한 내용을 참고하시기 바랍니다.
새로운 기능에 런타임 상태 확인 추가하기
새로운 버전의 tvOS를 지원하기 위해 앱을 업데이트하는 경우 새로운 기능을 구현하는 코드에 런타임 상태 확인을 추가하세요. 런타임 상태 확인 기능을 사용하면 새로운 버전의 tvOS 사용자와 이전 버전의 tvOS 사용자를 위해 각기 다른 버전의 앱을 제출할 필요가 없습니다. 모든 사용자가 동일한 앱을 사용하는 이점이 있으며 새로운 버전의 tvOS 사용자는 새로 추가된 기능을 사용할 수도 있습니다. 특정 플랫폼 또는 OS 버전에서 코드 실행하기에서 런타임 확인을 추가하는 방법에 대한 자세한 내용을 확인하시기 바랍니다.
앱 콘텐츠와의 상호작용을 더욱 손쉽게 만들어 주는 다양한 방법을 살펴보세요.
관련 콘텐츠를 효과적으로 노출하기
사용자가 앱을 어떻게 사용하는지에 대해 생각해 보고 중요한 콘텐츠를 빠르게 노출하는 방법을 찾아보세요. 날짜 및 시간 정보를 사용하여 신규 또는 현재 콘텐츠를 강조 표시해 보세요. 머신 러닝을 활용하여 데이터를 분석하고 효과적인 솔루션을 제공해 보세요. 또한 인터페이스를 동적으로 재배열하여 사용자가 자주 이용하는 콘텐츠에 쉽게 접근하도록 할 수 있습니다.
앱 콘텐츠를 위한 범용 링크 지원하기
웹사이트와 앱에서 유사한 콘텐츠를 제공한다면 앱에 범용 링크 지원을 추가해 보세요. 범용 링크를 사용하면 앱에서 콘텐츠를 열기 위해 별도의 URL을 생성할 필요가 없습니다. 범용 URL 하나로 앱이 설치된 경우에는 앱을 열고, 그렇지 않은 경우에는 웹사이트를 열 수 있습니다. 앱과 웹사이트를 콘텐츠에 연결하기에서 자세한 내용을 참고하시기 바랍니다.
고유한 기능을 제공하는 동시에 Apple 플랫폼과 긴밀히 통합되어 iOS, iPadOS, macOS, tvOS, visionOS 및 watchOS 전반에서 매끄러운 앱 및 게임 생태계를 구축하는 다양한 기술에 대해 자세히 알아보세요.
앱을 배포할 준비가 되면 App Store를 통해 전 세계 수억 명의 사용자에게 앱을 제공해 보세요. App Store에 제출할 앱을 준비하는 방법을 자세히 알아보시기 바랍니다.