tvOS — Apple TV के लिए Apple का ऑपरेटिंग सिस्टम, पहली बार 2015 में चौथी पीढ़ी के Apple TV के साथ जारी किया गया। tvOS के लिए ऐप डेवलपमेंट Swift में SwiftUI और TVMLKit का उपयोग करके किया जाता है। iOS से मुख्य अंतर स्पर्श के बजाय Siri Remote के माध्यम से फोकस नियंत्रण है। Apple के अनुसार, tvOS दुनिया भर में 100 मिलियन से अधिक सक्रिय उपकरणों पर स्थापित है।
मुख्य बिंदु
tvOS — Apple TV सेट-टॉप बॉक्स के लिए Apple का ऑपरेटिंग सिस्टम, उसी Darwin XNU कर्नेल पर आधारित है जो iOS में है। पहली बार 30 अक्टूबर 2015 को चौथी पीढ़ी के Apple TV के साथ जारी किया गया। tvOS ने पुराने Apple TV Software (iOS-आधारित, बिना App Store और SDK के) को बदल दिया। सिस्टम 4K HDR (Dolby Vision) तक रिज़ॉल्यूशन और Dolby Atmos ध्वनि के साथ टीवी पर संचालन के लिए अनुकूलित है।
Apple (WWDC 2025) के अनुसार, tvOS Apple TV HD (2015), Apple TV 4K (2017, 2021, 2022) पर स्थापित है और AirPlay के माध्यम से कुछ Smart TV मॉडल में निर्मित है। Apple TV A8 (HD), A10X Fusion (पहली पीढ़ी 4K), A12 Bionic (दूसरी पीढ़ी 4K) और A15 Bionic (तीसरी पीढ़ी 4K) चिप्स का उपयोग करता है। सभी मॉडल tvOS 17 का समर्थन करते हैं। tvOS में कोई कैमरा, माइक्रोफ़ोन (रिमोट को छोड़कर), टच स्क्रीन या GPS नहीं है।
tvOS की मुख्य विशेषता Focus Engine है, जो टच नियंत्रण को फोकस नेविगेशन से बदल देता है। उपयोगकर्ता Siri Remote का उपयोग करके UI तत्वों के बीच चयन को स्थानांतरित करता है। डेवलपर Swift/SwiftUI (देशी) या JavaScript/TVML (Netflix, Hulu जैसे मीडिया ऐप) में ऐप बनाते हैं।
tvOS 9 (2015) — SDK और App Store के साथ पहला संस्करण। tvOS 10 (2016) — केबल सब्सक्रिप्शन के लिए सिंगल साइन-ऑन (SSO)। tvOS 11 (2017) — Amazon Prime Video समर्थन और स्वचालित मोड। tvOS 12 (2018) — Dolby Atmos। tvOS 13 (2019) — मल्टी-यूज़र मोड। tvOS 17 (2023) — FaceTime, VPN, HDMI के माध्यम से ऑडियो प्रोफ़ाइल।
| tvOS संस्करण | वर्ष | मुख्य नवाचार |
|---|---|---|
| tvOS 9 | 2015 | App Store, SDK, Siri Remote |
| tvOS 10 | 2016 | सिंगल साइन-ऑन (SSO), Live Tune-In |
| tvOS 11 | 2017 | Amazon Prime, स्वचालित मोड |
| tvOS 12 | 2018 | Dolby Atmos, iPhone के साथ पासवर्ड |
| tvOS 13 | 2019 | मल्टी-यूज़र, टीवी पर कंट्रोल सेंटर |
| tvOS 17 | 2023 | FaceTime, VPN, Siri Remote ढूंढें |
tvOS आर्किटेक्चर iOS के समान स्टैक पर आधारित है: XNU कर्नेल, Core Services सिस्टम सेवाएँ, Media लेयर और Cocoa Touch यूज़र लेयर। हालाँकि, टीवी प्लेटफ़ॉर्म की विशिष्टताओं से संबंधित महत्वपूर्ण अंतर हैं।
तीसरी पीढ़ी का Apple TV 4K 6 CPU कोर (2 प्रदर्शन, 4 दक्षता) और 5-कोर GPU के साथ A15 Bionic का उपयोग करता है। RAM — 4 GB (64 GB से आंतरिक SSD स्टोरेज)। सिस्टम में क्लासिकल अर्थों में स्थायी स्थानीय स्टोरेज नहीं है: स्थान कम होने पर tvOS सभी ऐप डेटा हटा सकता है (purgeable)। डेवलपर को स्थिति संरक्षण के लिए iCloud Key-Value Storage या CloudKit का उपयोग करना चाहिए।
TVMLKit — tvOS के लिए अद्वितीय फ्रेमवर्क जो JavaScript और TVML (Apple-विशिष्ट XML-जैसी भाषा) में इंटरफ़ेस बनाने की अनुमति देता है। TVMLKit सर्वर से JSON/XML लोड करता है और देशी UI घटक प्रस्तुत करता है। यह स्ट्रीमिंग सेवाओं के लिए प्राथमिक तकनीक है: Netflix, Hulu, Amazon Prime Video TVMLKit का उपयोग करते हैं। TVJS — एक JavaScript वातावरण जो पृथक संदर्भ में चलता है।
tvOS स्वचालित रूप से डिस्क स्थान प्रबंधित करता है: स्थान कम होने पर, सिस्टम कैश, डाउनलोड किए गए संसाधन और ऐप को भी हटा सकता है (आइकन रखते हुए)। पुनः खोलने पर, ऐप को अपनी स्थिति पुनर्स्थापित करनी होगी। iCloud NSUbiquitousKeyValueStore सेटिंग्स के लिए एकमात्र गारंटीकृत स्थायी भंडारण है (प्रति ऐप 1 MB तक)।
import Foundation
// // tvOS में स्थिति संरक्षण और पुनर्स्थापना
final class StateManager {
private let store = NSUbiquitousKeyValueStore.default
private let coder = JSONEncoder()
private let decoder = JSONDecoder()
// देखने की प्रगति सहेजा जा रहा है
func saveProgress<T: Codable>(_ value: T, for key: String) {
if let data = try? coder.encode(value) {
store.set(data, for: key)
store.synchronize()
}
}
// कैश हटाने के बाद स्थिति पुनर्स्थापित की जा रही है
func restoreProgress<T: Codable>(_ type: T.Type, for key: String) -> T? {
guard let data = store.data(for: key) else { return nil }
return try? decoder.decode(type, from: data)
}
// दूसरे उपकरण पर परिवर्तन अधिसूचना संभालना
init() {
NotificationCenter.default.addObserver(
self,
selector: #selector(ubiquitousKeyValueStoreDidChange),
name: NSUbiquitousKeyValueStore.didChangeExternallyNotification,
object: store
)
}
@objc
private func ubiquitousKeyValueStoreDidChange(_ notification: Notification) {
print("दूसरे उपकरण पर डेटा बदला गया")
}
}StateManager tvOS पर ऐप स्थिति सहेजने के लिए NSUbiquitousKeyValueStore का उपयोग करता है। चूँकि स्थानीय भंडारण सिस्टम द्वारा साफ़ किया जा सकता है, केवल iCloud डेटा स्थायित्व की गारंटी देता है। store.synchronize() तुरंत सर्वर को डेटा भेजता है, जबकि didChangeExternallyNotification उपयोगकर्ता के अन्य उपकरणों से परिवर्तनों के बारे में ऐप को सूचित करता है।
Focus Engine — tvOS का मुख्य तंत्र जो टच इवेंट को फोकस नेविगेशन से बदल देता है। उपयोगकर्ता Siri Remote (टच सतह या बटन) का उपयोग करके UI तत्वों के बीच चयन स्थानांतरित करता है। सिस्टम दूरी और गति की दिशा के आधार पर स्वचालित रूप से अगले फोकस तत्व की गणना करता है।
फोकस प्राप्त करने में सक्षम प्रत्येक UI तत्व UIFocusEnvironment प्रोटोकॉल को लागू करता है। UIKit तत्व ज्यामिति के आधार पर स्वचालित रूप से नेविगेशन क्रम निर्धारित करता है। डेवलपर preferredFocusEnvironments के माध्यम से पसंदीदा फोकस को ओवरराइड कर सकता है, चाइल्ड focusEnvironment की एक सरणी निर्दिष्ट कर सकता है, और UIFocusHeading (up, down, left, right) के माध्यम से गति को नियंत्रित कर सकता है। UIFocusGuide गैर-तुच्छ लेआउट के लिए कस्टम रूट सेट करने की अनुमति देता है।
tvOS स्वचालित रूप से फ़ोकसित तत्व में UIFocusEffect जोड़ता है: छाया, हाइलाइट और लंबन प्रभाव (रिमोट को झुकाने पर ऑफ़सेट)। डेवलपर focusedValue के माध्यम से प्रभाव को अक्षम कर सकता है या UIFocusEffect.transform के माध्यम से अनुकूलित कर सकता है। SwiftUI में, लंबन .hoverEffect(.highlight) संशोधक के साथ जोड़ा जाता है।
import SwiftUI
// // कस्टम फोकस के साथ tvOS घटक
struct MovieCardView: View {
let movie: Movie
@State private var isFocused = false
@Environment(\.isFocused) var envFocused
var body: some View {
VStack(spacing: 8) {
AsyncImage(url: movie.posterURL) { phase in
if let image = phase.image {
image
.resizable()
.aspectRatio(contentMode: .fill)
.frame(width: 320, height: 180)
.cornerRadius(8)
.overlay(
RoundedRectangle(cornerRadius: 8)
.stroke(isFocused ? Color.blue : Color.clear, lineWidth: 3)
)
.scaleEffect(isFocused ? 1.08 : 1.0)
}
}
Text(movie.title)
.font(.caption)
.lineLimit(2)
.foregroundStyle(isFocused ? .white : .gray)
}
.onHover { hovering in
withAnimation(.spring(response: 0.35)) {
isFocused = hovering
}
}
.onPlayPauseCommand {
// रिमोट पर Play/Pause बटन संभालना
startPlayback()
}
.focusable()
.focusEffect { phase in
// कस्टम फोकस प्रभाव
phase == .active ?
AnyView(self.scaleEffect(1.08)) :
AnyView(self.scaleEffect(1.0))
}
}
private func startPlayback() {
print("चल रहा है: \(movie.title)")
}
}
// // फिल्म ग्रिड के साथ मुख्य स्क्रीन
struct MovieGridScreen: View {
let movies: [Movie]
var body: some View {
ScrollView {
LazyVGrid(columns: [GridItem(.adaptive(minimum: 320, maximum: 400))], spacing: 24) {
ForEach(movies) { movie in
MovieCardView(movie: movie)
}
}
.padding(60)
}
.focusSection() // नेविगेशन के लिए समूहीकरण
}
}MovieCardView SwiftUI में Focus Engine प्रदर्शित करता है: .focusable() संशोधक तत्व को फ़ोकस करने योग्य बनाता है, .onHover स्थिति परिवर्तनों को ट्रैक करता है, .focusEffect कस्टम फोकस एनिमेशन की अनुमति देता है। .onPlayPauseCommand Siri Remote पर Play/Pause बटन दबाव को संभालता है। focusSection चक्रीय नेविगेशन के लिए ग्रिड को समूहित करता है।
दूसरी पीढ़ी का Siri Remote (2021) में टच सतह, 5 बटन और एक माइक्रोफ़ोन है। tvOS जेस्चर का समर्थन करता है: स्वाइप (नेविगेशन), टैप (चयन), डबल-टैप (केंद्रित), पिंच-ज़ूम (छवियाँ), लॉन्ग प्रेस (संदर्भ मेनू)। UIPress प्रकार .select, .playPause, .menu, .upArrow, .downArrow, .leftArrow, .rightArrow — पूर्वनिर्धारित दबाव प्रकार। रिमोट का माइक्रोफ़ोन Siri और वॉयस सर्च के लिए उपयोग किया जाता है।
Top Shelf Apple TV होम स्क्रीन पर एक क्षेत्र है जो शीर्ष पंक्ति में होने पर ऐप की डायनामिक सामग्री प्रदर्शित करता है। tvOS 17 में, Top Shelf कस्टम बैकग्राउंड और इंटरैक्टिव तत्वों के साथ 8 विजेट तक का समर्थन करता है। डेवलपर सामग्री प्रदान करने के लिए TVTopShelfProvider को लागू करता है।
तीन Top Shelf शैलियाँ उपलब्ध हैं: Sectioned — वर्गीकृत सूची (शैली के अनुसार श्रृंखला), Inset — विस्तृत विवरण के साथ केंद्रीय तत्व (अनुशंसित फिल्म), Photo — छवि ग्रिड (फोटो एल्बम)। सिस्टम watchOS के समान, BGTaskScheduler के माध्यम से पृष्ठभूमि में Top Shelf अपडेट करता है। प्रदाता को तुरंत सामग्री लौटानी होगी — tvOS 24 घंटे के लिए डेटा कैश करता है।
tvOS होम स्क्रीन में एक Top Shelf पंक्ति और एक ऐप ग्रिड होता है। उपयोगकर्ता आइकन को पुनर्व्यवस्थित कर सकते हैं और फ़ोल्डर बना सकते हैं। संसाधन कम होने पर tvOS स्वचालित रूप से मेमोरी से ऐप को अनलोड करता है, इसलिए डेवलपर को UISceneDidDisconnectNotification को ठीक से संभालना चाहिए और पुनरारंभ करने पर स्थिति पुनर्स्थापित करनी चाहिए।
| Top Shelf शैली | प्रारूप | कब उपयोग करें |
|---|---|---|
| Sectioned | शीर्षक और आइटम के साथ अनुभाग | श्रृंखला, पॉडकास्ट, प्लेलिस्ट |
| Inset | विवरण के साथ एक बड़ा आइटम | दिन की फिल्म, एक्सक्लूसिव |
| Photo | बिना कैप्शन के छवि ग्रिड | फोटो एल्बम, गैलरी |
| Tab | स्विचिंग के साथ टैब | प्रकार के अनुसार खेल, विषय के अनुसार समाचार |
SwiftUI tvOS 13 से tvOS में पूरी तरह से समर्थित है। Apple सभी नए प्रोजेक्ट के लिए SwiftUI की सिफारिश करता है। वही SwiftUI कोड Focus Engine के लिए न्यूनतम अनुकूलन के साथ iOS, iPadOS, macOS और tvOS पर काम करता है। tvOS के लिए SwiftUI संशोधक .focusable(), .focusSection(), .onPlayPauseCommand और .onExitCommand प्रदान करता है।
iOS ऐप को tvOS पर पोर्ट करते समय, आपको: TabView को फोकस-नेविगेशन के साथ NavigationView से बदलना, फ़ॉन्ट आकार बढ़ाना (शीर्षकों के लिए न्यूनतम 30pt, बॉडी टेक्स्ट के लिए 22pt), मार्जिन जोड़ना (किनारों से न्यूनतम 40pt — टीवी पर सुरक्षित क्षेत्र) होगा। tvOS टेक्स्ट फ़ील्ड वाले UIAlertController, UIWebView या MFMailComposeViewController का समर्थन नहीं करता है।
| iOS घटक | tvOS समकक्ष | नोट |
|---|---|---|
| UISlider | UIProgressView + बटन | Slider समर्थित नहीं |
| UIPickerView | फोकस के साथ तालिका | Picker को सूची से बदला गया |
| UITextField | UIAlertController (केवल पढ़ने योग्य) | Siri के माध्यम से टेक्स्ट इनपुट |
| UIActionSheet | UIAlertController | समर्थित |
| UIWebView | समर्थित नहीं | WKWebView का उपयोग करें |
| MFMailCompose | समर्थित नहीं | mailto: URL खोलें |
tvOS के लिए Apple HIG: न्यूनतम टच क्षेत्र का आकार 60×60 पॉइंट, टेक्स्ट 3 मीटर से पढ़ने योग्य (बॉडी के लिए फ़ॉन्ट आकार 22pt से कम नहीं), टेक्स्ट कंट्रास्ट 4.5:1, गहरा बैकग्राउंड (हल्का बैकग्राउंड OLED TV पर चमकता है), सभी तत्व जटिल जेस्चर के बिना सुलभ। रिज़ॉल्यूशन: Apple TV 4K 60 FPS पर 3840×2160 (4K) या 1920×1080 (HD) आउटपुट करता है। सभी छवियाँ @2x (1080p के लिए) और @4x (4K के लिए) होनी चाहिए।
TVMLKit — वेब तकनीकों का उपयोग करके tvOS पर मीडिया ऐप बनाने के लिए एक फ्रेमवर्क: JavaScript (TVJS) और TVML (Apple-विशिष्ट XML)। TVMLKit ऐप को संकलन की आवश्यकता नहीं होती — इंटरफ़ेस सर्वर से लोड होता है, जिससे App Review के बिना सामग्री अपडेट की जा सकती है। इसका उपयोग प्रमुख स्ट्रीमिंग सेवाओं द्वारा कंटेंट कैरोसेल के लिए किया जाता है।
TVML तैयार टेम्पलेट प्रदान करता है: CatalogTemplate (अनुभागों के साथ कैटलॉग), ProductTemplate (सामग्री विवरण पृष्ठ), FormTemplate (लॉगिन फ़ॉर्म), LoadingTemplate (लोडिंग संकेतक)। टेम्पलेट XML में वर्णित हैं और CSS-जैसी विशेषताओं के माध्यम से स्टाइल किए गए हैं। TVJS कोड प्रेस को संभालता है और देशी API को कॉल करता है।
<!-- CatalogTemplate — TVML पर फ़िल्मों की सूची -->
<document>
<catalogTemplate>
<banner>
<title>नई फ़िल्में</title>
<description>ताज़ा प्रीमियर और एक्सक्लूसिव</description>
</banner>
<section>
<header>
<title>लोकप्रिय</title>
</header>
<items>
<lockup>
<img src="https://cdn.example.com/movie1.jpg" width=300 height=450/>
<title>इंटरस्टेलर</title>
</lockup>
<lockup>
<img src="https://cdn.example.com/movie2.jpg" width=300 height=450/>
<title>इंसेप्शन</title>
</lockup>
</items>
</section>
</catalogTemplate>
</document>TVML CatalogTemplate में एक शीर्षक के साथ बैनर और lockup तत्वों के साथ अनुभाग होते हैं। प्रत्येक lockup एक छवि और शीर्षक के साथ एक फिल्म कार्ड है। Focus Engine स्वचालित रूप से lockup तत्वों के बीच नेविगेशन प्रबंधित करता है। प्रेस करने पर, TVJS हैंडलर select इवेंट प्राप्त करता है और ProductTemplate के माध्यम से विवरण पृष्ठ प्रदर्शित कर सकता है।
TVJS एक JavaScript वातावरण है जो मुख्य ऐप से पृथक है। TVML टेम्पलेट लोड करने और इवेंट को संभालने पर TVJS कोड कॉल किया जाता है। TVJS के पास वीडियो प्लेबैक नियंत्रण के लिए Appliance और Player के माध्यम से देशी API तक पहुँच है। Apple केवल बार-बार सामग्री अपडेट वाले मीडिया ऐप के लिए TVMLKit का उपयोग करने की सिफारिश करता है। गेम और इंटरैक्टिव ऐप के लिए, SwiftUI पसंदीदा है।
tvOS ऐप प्रकाशित करना के लिए Apple Developer Program सब्सक्रिप्शन ($99/वर्ष) आवश्यक है। ऐप को App Store Connect के माध्यम से एक अलग उत्पाद या यूनिवर्सल बाइनरी (iOS + tvOS) के भाग के रूप में अपलोड किया जाता है। App Review स्थिरता, HIG अनुपालन और 4 GB आकार सीमा की जाँच करता है।
Xcode .app एक्सटेंशन (.ipa पैकेज) के साथ एक tvOS टार्गेट बनाता है। आर्किटेक्चर — arm64 (Apple TV Apple Silicon ARM चिप्स का उपयोग करता है)। tvOS i386 या x86_64 वाले फ्रेमवर्क का समर्थन नहीं करता है। ऐप पर Apple Development सर्टिफिकेट (परीक्षण) या Apple Distribution सर्टिफिकेट (प्रकाशन) से हस्ताक्षर किया जाता है। व्यावसायिक ग्राहकों के लिए Volume Purchase Program के माध्यम से वितरण संभव है।
tvOS की विशेष आवश्यकताएँ: सभी इंटरफ़ेस तत्व टच स्क्रीन या कीबोर्ड के उपयोग के बिना Focus Engine के माध्यम से सुलभ होने चाहिए। प्राधिकरण की आवश्यकता वाले ऐप को iTunes Store के माध्यम से सिंगल साइन-ऑन (SSO) का समर्थन करना चाहिए। विज्ञापन सामग्री उपयोगकर्ता की सहमति के बिना प्लेबैक को बाधित नहीं कर सकती। अपलोड किए गए बाइनरी का आकार 4 GB से अधिक नहीं होना चाहिए।
| आवश्यकता | विवरण |
|---|---|
| ऐप का आकार | 4 GB से अधिक नहीं, अनुशंसित 500 MB |
| ग्राफ़िक्स रिज़ॉल्यूशन | @2x (1920×1080) और @4x (3840×2160) 4K के लिए |
| फोकस नेविगेशन | सभी तत्व Siri Remote के माध्यम से सुलभ |
| वीडियो प्रारूप | H.264, HEVC, Dolby Vision (Profile 5) |
| ऑडियो | Dolby Atmos (E-AC-3 JOC) और स्टीरियो AAC |
अक्सर पूछे जाने वाले प्रश्न
प्राथमिक भाषा Swift है जिसमें SwiftUI और UIKit फ्रेमवर्क हैं। मीडिया ऐप के लिए, सर्वर से लोड किए गए JavaScript और TVML टेम्पलेट के साथ TVMLKit का उपयोग किया जाता है। Objective-C लीगेसी प्रोजेक्ट के लिए समर्थित है। Apple सभी नए tvOS प्रोजेक्ट के लिए SwiftUI की सिफारिश करता है।
tvOS टच इवेंट के बजाय Focus Engine का उपयोग करता है, इसमें कोई कैमरा या माइक्रोफ़ोन नहीं है (Siri Remote को छोड़कर), ऐप का आकार 4 GB तक सीमित करता है, स्थायी स्थानीय भंडारण (purgeable) का समर्थन नहीं करता है और रेंडरिंग के लिए Metal की आवश्यकता होती है। सभी ऐप केवल ARM64 पर चलते हैं।
Focus Engine Siri Remote का उपयोग करके UI तत्वों के बीच फोकस आंदोलन का प्रबंधन करता है। डेवलपर preferredFocusEnvironments के माध्यम से पसंदीदा फोकस सेट करता है। UIFocusHeading (up, down, left, right) दिशा निर्धारित करता है। UIFocusEffect स्वचालित रूप से सक्रिय तत्व में लंबन और छाया जोड़ता है।
प्रकाशन के लिए Apple Developer Program सब्सक्रिप्शन ($99/वर्ष) आवश्यक है। ऐप को Xcode Organizer या Transporter के माध्यम से App Store Connect पर अपलोड किया जाता है। मॉडरेशन जाँचता है: Focus Engine अनुकूलता, स्थिरता, UIWebView की अनुपस्थिति और 4 GB आकार सीमा।
हाँ, UIKit tvOS में पूरी तरह से समर्थित है: UIView, UIViewController, UICollectionView, UITableView। हालाँकि, UIKit को Focus Engine के लिए अनुकूलित किया गया है: UIButton और UIControl रिमोट प्रेस के माध्यम से इवेंट प्राप्त करते हैं, टच से नहीं। स्वचालित फोकस अनुकूलन के कारण नए प्रोजेक्ट के लिए SwiftUI की सिफारिश की जाती है।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें