Al loro evento annuale di settembre 2015, oltre ai nuovi modelli di iPhone e iPad, Apple ha annunciato il loro tanto atteso aggiornamento per il set-top box di Apple TV. Questa nuova Apple TV di quarta generazione include un potente processore A8, un telecomando abilitato a Siri, un'interfaccia utente rinnovata e, soprattutto, una nuovissima piattaforma per applicazioni e giochi di terze parti, che Apple ha chiamato tvOS.
In questo tutorial, ho intenzione di presentarti allo sviluppo di tvOS creando un'applicazione TVOS di base. Questo tutorial richiede che tu stia utilizzando Xcode 7.1 o successivo, che include il supporto per tvOS. Suppongo anche che tu abbia già familiarità con lo sviluppo di iOS.
Apri Xcode e crea un nuovo progetto. Noterai immediatamente che l'elenco dei modelli include una sezione per le applicazioni tvOS. Dai modelli disponibili, scegliere tvOS> Applicazione> Applicazione vista singola.
Clic Il prossimo e configurare il progetto come mostrato di seguito. Ho optato per veloce come linguaggio del progetto, ma puoi anche usare Objective-C per sviluppare applicazioni TVOS.
Per completare la configurazione del progetto, indica a Xcode dove desideri salvare il progetto. La prima cosa che noterete è che il progetto è strutturato in modo quasi identico a una normale applicazione iOS. Nell'immagine sottostante, puoi vedere che abbiamo AppDelegate.swift, ViewController.swift, e Main.storyboard.
La prima grande differenza che noterai quando lavori con tvOS è la costruzione dell'interfaccia utente della tua app. Quando si apre Main.storyboard, vedrai un grande schermo vuoto di Apple TV. Se non è possibile vedere l'intero schermo nell'editor, premere Comando-- per rimpicciolire.
Questa schermata è notevolmente più grande a causa del modo in cui le app TVOS vengono ridimensionate. Nel moderno sviluppo iOS, il layout dell'interfaccia è gestito dall'uso di punti anziché di pixel per facilitare lo sviluppo su dispositivi con display Retina.
Ad esempio, l'iPhone 6 e l'iPhone 6 hanno una risoluzione dello schermo di 1334x750, ma solo una dimensione dello schermo, in punti, di 667x375. Ciò significa che tutte le app sul dispositivo vengono eseguite su una scala 2x. Tutti i dispositivi iOS di Apple con Retina Display funzionano su una scala 2x, ad eccezione di iPhone 6 Plus e iPhone 6s Plus, che funzionano su una scala 3x.
La nuova Apple TV, tuttavia, esegue app a una risoluzione standard di 1920x1080 su una scala 1x. Ciò significa che, quando si costruiscono app TVOS, le dimensioni dello schermo, in punti, che è necessario utilizzare durante la creazione dell'interfaccia sono anche 1920x1080.
Ora che sai come le app tvOS sono ridimensionate e visualizzate sullo schermo, possiamo iniziare a costruire la nostra prima interfaccia. Dal Libreria di oggetti a destra, trascina in a Button sul lato destro dello schermo vuoto. Con il pulsante selezionato, nella parte inferiore dell'editor storyboard, fai clic su perno pulsante e aggiungere i seguenti vincoli.
Quindi, trascinare in a Vista tabella a sinistra del pulsante e aggiungi i seguenti vincoli. Assicurati anche che il Aggiorna cornici l'opzione in basso è impostata su Tutti i frame nel contenitore. Dai uno sguardo allo screenshot qui sotto per chiarimenti.
Seleziona la tua vista tabella, apri il Ispettore di taglia, e impostare il Altezza della riga proprietà a 88 come mostrato di seguito.
Quindi, trascinare in a Tabella Visualizza cella dal Libreria di oggetti e aggiungilo alla vista tabella. Con la cella di visualizzazione tabella selezionata, apri il Ispettore degli attributi e cambia il Stile proprietà a Sottotitolo.
Finalmente, stampa Controllo sulla tastiera e trascina dalla visualizzazione tabella al controller di visualizzazione per impostare il controller di visualizzazione come origine dati della vista tabella e delegare. Puoi anche farlo usando il Ispettore di connessioni sulla destra.
Costruendo questa interfaccia tvOS, vedrai che è quasi identico costruire un'interfaccia iOS con la differenza principale che è la scala significativamente più grande di elementi.
Concentriamoci ora su un codice. Aperto ViewController.swift e sostituire l'implementazione del ViewController
classe con il seguente.
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate override func viewDidLoad () super.viewDidLoad () // Esegue un'impostazione aggiuntiva dopo aver caricato la vista, in genere da un pennino. override func didReceiveMemoryWarning () super.didReceiveMemoryWarning () // Elimina le risorse che possono essere ricreate. func tableView (tableView: UITableView, numberOfRowsInSection sezione: Int) -> Int return 3 func numberOfSectionsInTableView (tableView: UITableView) -> Int return 1 func tableView (tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell let cell = UITableViewCell (style: .Subtitle, reuseIdentifier: nil) cell.textLabel? .text = "Item \ (indexPath.row + 1)" cell.detailTextLabel? .text = "Sottotitolo \ (indexPath.row + 1)" restituisci la cella
Se hai familiarità con lo sviluppo di iOS, l'implementazione di cui sopra dovrebbe apparire molto familiare. Ora sei pronto per eseguire la tua prima applicazione TVOS. stampa Comando-R o fai clic sul pulsante Esegui in alto a sinistra. Assicurati che il tuo dispositivo di test sia impostato su Apple TV 1080p.
Una volta avviato l'Apple TV Simulator e avviata la tua applicazione, dovresti vedere la seguente schermata:
Congratulazioni! Ora hai la tua prima app TVOS funzionante. Per controllare l'app, è necessario utilizzare il nuovo telecomando Apple TV. Per visualizzare il telecomando nel simulatore, selezionare Hardware> Mostra telecomando Apple TV dal menu o premere ⌘Command + Maiusc + R.
Una piccola finestra remota dovrebbe aprirsi accanto alla finestra del simulatore. Gioca con il telecomando tenendo premuto il pulsante Opzione pulsante sulla tastiera e sposta il cursore del mouse sul telecomando. Vedrai che, mentre muovi il cursore del mouse su e giù, la selezione nella vista tabella cambia.
Allo stesso modo, quando scorri verso destra, il pulsante a destra diventa selezionato.
Nello sviluppo di tvOS, questo è chiamato cambiare l'elemento di messa a fuoco attuale. A differenza delle app iOS in cui gli utenti possono toccare qualsiasi punto dello schermo in un dato momento, le app TVOS utilizzano uno stile di interazione point-and-click.
Non è necessario eseguire alcun lavoro aggiuntivo come sviluppatore per poter mettere a fuoco gli elementi dell'interfaccia in un ordine logico. Il motore di messa a fuoco integrato nel framework UIKit su tvOS analizza il layout dell'interfaccia e gestisce tutto il lavoro per spostare lo stato attivo da un elemento a un altro.
Vi sono, tuttavia, molti nuovi metodi e proprietà messi a disposizione per controllare a livello di codice il modo in cui l'attenzione viene gestita all'interno della tua app. Molti di questi sono definiti dal UIFocusEnvironment
protocollo, che il UIViewController
, UIView
, UIWindow
, e UIPresentationController
le classi si conformano automaticamente a. Ci sono anche diversi metodi contenuti nelle versioni tvOS di UITableViewDelegate
e UICollectionViewDelegate
protocolli che possono essere utilizzati per controllare l'attenzione all'interno della tua app.
Ad esempio, creeremo il pulsante sulla destra come elemento di messa a fuoco predefinita. Se esegui l'app ora, vedrai che il primo elemento della tabella è inizialmente a fuoco. Disattiveremo anche il secondo elemento nella vista tabella. Aggiungi il seguente snippet di codice all'implementazione di ViewController
classe:
override var preferredFocusedView: UIView? return self.view.subviews [0] func tableView (tableView: UITableView, canFocusRowAtIndexPath indexPath: NSIndexPath) -> Bool if indexPath.row == 1 return false restituisce true
Per prima cosa scavalchiamo il preferredFocusedView
proprietà e restituire la prima sottoview, che attualmente è il pulsante sulla destra. Il preferredFocusedView
la proprietà è di sola lettura e può essere impostata solo sovrascrivendo la sua implementazione come abbiamo fatto. Quando viene caricato il controller della vista, il motore di messa a fuoco trova la vista restituita da questa proprietà e la mette automaticamente a fuoco.
Abbiamo anche implementato il tableView (_: canFocusRowAtIndexPath :)
metodo e ritorno falso
quando il indexPath.row
è uguale a 1. Altrimenti torniamo vero
. Come ci si aspetterebbe, questo metodo delegato determina se una riga specifica può essere messa a fuoco o meno.
Quando crei ed esegui nuovamente l'app, vedrai che il pulsante a destra riceve automaticamente lo stato attivo all'avvio. Se il pulsante sulla destra non riceve automaticamente lo stato attivo, la gerarchia della vista della tua app potrebbe essere leggermente diversa, ovvero la prima vista secondaria della vista del controller della vista non è uguale al pulsante sulla destra.
Si noterà inoltre che quando si tenta di navigare tra le righe della vista tabella, la riga centrale viene saltata come dettato dall'implementazione del tableView (_: canFocusRowAtIndexPath :)
metodo.
Mentre non creeremo alcuna immagine in questo tutorial, è importante comprendere i diversi componenti richiesti per le app TVOS e alcune delle limitazioni.
Ogni app TVOS deve fornire due icone di app:
La principale differenza con iOS è che le icone dell'app TVOS possono essere composte da un massimo di tre livelli. Ciò consente di ottenere un effetto di parallasse sulla schermata iniziale e in qualsiasi altro punto venga visualizzata l'icona dell'app. Se vuoi vedere questo effetto da solo, vai su Apple TV Simulator, premi il tasto Casa pulsante sul telecomando (l'icona piccola TV). Metti a fuoco il impostazioni icona dell'app e tieni premuto il Opzione mentre si sposta il cursore del mouse un po 'sul telecomando. Vedrai che l'icona dell'app risponde ai tuoi movimenti e i diversi livelli dell'icona producono un bell'effetto.
Proprio come una normale applicazione iOS, è necessario fornire un'immagine statica da visualizzare una volta che l'app è stata aperta e in fase di caricamento. La differenza principale è che devi solo fornire una singola immagine di 1920px x 1080px.
Se la tua app è stata inserita nel Ripiano superiore da parte di un utente, quando è focalizzato, è possibile visualizzare i contenuti direttamente nella schermata iniziale di Apple TV. Esistono tre tipi principali di contenuti che puoi visualizzare:
Nonostante la nuova Apple TV abbia più spazio di archiviazione rispetto alla maggior parte dei dispositivi iPhone con una capacità minima di 32 GB, ci sono alcune limitazioni importanti per le applicazioni TVOS. In primo luogo, le app non possono contenere più di 200 MB. Qualsiasi contenuto di cui hai bisogno al di fuori di questo buffer da 200 MB dovrà essere scaricato utilizzando API delle risorse on-demand introdotto con iOS 9 e ora tvOS.
Un'altra cosa da tenere a mente è che le app di tvOS non hanno una memoria locale persistente. Ciò significa che tutti i dati che è necessario conservare tra i lanci delle app, come i salvataggi, le foto e i video, dovranno essere archiviati in iCloud e recuperati quando necessario.
Mentre non abbiamo scritto molto codice in questo tutorial, spero che sia servito come una buona introduzione alla piattaforma tvOS. Ora conosci le principali somiglianze e differenze tra lo sviluppo di app per iOS e tvOS e le limitazioni imposte agli sviluppatori.
Nei prossimi tutorial, ci immergeremo più a fondo in tvOS e scopriremo cosa è possibile con tvOS e la nuova Apple TV.
Come sempre, lascia i tuoi commenti e feedback nei commenti qui sotto.