tvOS — Apple TV-এর জন্য Apple-এর অপারেটিং সিস্টেম, প্রথম 2015 সালে ৪র্থ প্রজন্মের Apple TV-এর সাথে প্রকাশিত। tvOS-এর জন্য অ্যাপ ডেভেলপমেন্ট Swift-এ SwiftUI এবং TVMLKit ব্যবহার করে করা হয়। iOS থেকে মূল পার্থক্য হল স্পর্শের পরিবর্তে Siri Remote-এর মাধ্যমে ফোকাস নিয়ন্ত্রণ। Apple-এর মতে, tvOS সারা বিশ্বে 100 মিলিয়নেরও বেশি সক্রিয় ডিভাইসে ইনস্টল করা আছে।
মূল পয়েন্ট
tvOS — Apple TV সেট-টপ বক্সের জন্য Apple-এর অপারেটিং সিস্টেম, iOS-এর মতো একই Darwin XNU কার্নেলের উপর ভিত্তি করে। প্রথম 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 অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন