-
Notifications
You must be signed in to change notification settings - Fork 1
Guiding Questions
Victor Kreniski edited this page Feb 15, 2018
·
2 revisions
- O que é Top Shelf? Top Shelf é uma área de mostruário de conteúdo na linha superior de apps na tela inicial da Apple TV (4.0 ou superior).
- Quais aplicativos exibirão conteúdo na Top Shelf? A decisão sobre quais aplicativos usarão esta funcionalidade cabe ao usuário, uma vez que ele pode decidir quais apps ficarão na linha superior de aplicativos.
- Como a Apple TV sabe qual conteúdo é mostrado na Top Shelf em um determinado momento? Sempre que um aplicativo da linha superior recebe foco a área Top Shelf é atualizada para mostrar o conteúdo de destaque especifico daquele app.
- Quais são as vantagens para um app em mostrar conteúdo na Top Shelf? É uma oportunidade muito interessante para dar destaque a conteúdo novos, destacados e/ou úteis para o usuário no contexto do aplicativo, permitindo ao usuário a seguir diretamente para aquele conteúdo dentro do app.
- Quantos apps podem usar a Top Shelf na tela inicial da Apple TV? Atualmente 5 apps podem ser colocados na primeira linha de apps da tela inicial para utilizar a funcionalidade, como pode ser observado na imagem abaixo:
- Como abordar de forma simples e prática os conteúdos de Top Shelf? Mostrar conteúdo relevante em relação ao aplicativo de forma a engajar o usuário sem gerar complexidade, focando sempre em entregar ao usuário formas rápidas e fáceis de acessar o conteúdo do aplicativo.
- Qual seria a melhor forma de disponibilizar os conteúdos elaborados a terceiros? Disponibilizar no Github, pois esta é a maior comunidade de desenvolvedores do mundo, de forma que ela seja acessível e com uma documentação clara(wiki)[7].
- Existem diferentes classificações para Top Shelf? Se sim, quais são elas? Sim, existem classificações. Elas podem ser dividas entre estática(static) e interativa(interactive)[2].
- Qual a diferença entre a Top Shelf estática e a interativa? A Top Shelf estática apresenta uma imagem definidas nas assets do projeto, esta será apresentada quando o foco for colocado sobre esta aplicação, a implementação dela é mais simples. Todavia, existe a Top Shelf interativa que como próprio nome sugere permite a interação ela ainda pode ser dividida entre sectioned top shelf e inset[2].
- Quais estilos uma Top Shelf interativa pode ter? Uma Top Shelf pode ter apenas um de dois estilos pré-definidos pela Apple, Sectioned e Inset. O Sectioned é separado por seções, as quais você pode dar títulos que irão classificar os itens da seção na Top Shelf.
O estilo Inset apresenta itens um-a-um, cobrindo quase toda a Top Shelf.
- Quais são os aplicativos que melhor usam Top Shelf? Como eles usam? Netflix e Plex apresentam a forma de uso mais apreciada pelos usuários, segundo pesquisa em redes sociais, reddit e experiência pessoal. As funcionalidades de continuar um filme ou episódio de uma série exatamente do ponto onde se parou está presente em ambos os apps. O Plex faz um excelente uso da Top Shelf para recomendar filmes e séries com base no conteúdo previamente assistido pelo usuário.
- O que a Apple pensa sobre Top Shelf? O que ela recomenda? A apple apresenta, por meio do Human Interface Guidelines(HIG), que a top shelf é uma oportunidade única para apresentar as melhores características do app, ou conteúdo útil, visto que tudo isso fica acessível quando o aplicativo esta em foco. Além disso, a Apple recomenda colocar as highlights do app nessa áreas(conteúdo e funcionalidades)[1].
- O que é possível fazer com Top Shelf? A Top Shelf proporciona um atalho, a fim de que o usuário chegue ao que interessa o mais rápido possível sem ter que realizar uma série de passos repetidos, por isso, com a Top Shelf, é possível basicamente, fazer seleções de conteúdos que estão presentes no app para navegação imediata.
- A Top Shelf é eficiente em despertar o interesse do usuário? Sim, muito eficiente, é possível inclusive encontrar discussões em fóruns da internet como o reddit sobre quais apps as pessoas usam em suas Top Shelfs e o motivo de ter escolhido aquele aplicativo para seu espaço especial de 5 aplicativos, as discussões costumam também abordar atualizações nos aplicativos que podem mudar a forma como o aplicativo suporta a Top Shelf fazendo com que o mesmo perca o privilégio de permanecer no topo das Apple Tv's de muitos usuários.
- Qual plataforma da apple utiliza o Top Shelf? Apple TV.
- Existem regras para a implementação de uma Top Shelf? Sim, existem. Por exemplo, na Top Shelf estática é preciso respeitar os tamanhos aceitos, no caso, 2320px × 720px (2320pt × 720pt @1x) e 4640px × 1440px (2320pt × 720pt @2x)[3].
- Existe algum recurso que possa substituir de forma eficaz a Top Shelf? Não, todo aplicativo deve ter uma Top Shelf[3].
- Qual a maneira correta de implementar a Top Shelf? Se beneficiando do framework apropriado fornecido pela Apple.
- Qual a necessidade de utilizar Top Shelf? Top shelf é uma oportunidade única para apresentar as melhores características do app, ou conteúdo útil, visto que tudo isso fica acessível quando o aplicativo esta em foco.[1]
- Existe diferenças na implementação de Top Shelf estática e interativa? Sim, existem. A primeira consiste de um Drag and Drop na área disponibilizada nas assets da aplicação destinada a Apple TV. Entretanto, o desenvolvimento da Top Shelf interativa é um pouco mais complicado, pois é necessário criar um Target para o projeto e configurar os valores de algumas properties do Service Provider da Top Shelf de acordo com as configurações desejadas[2].
- Quais aplicativos utilizam Top Shelf estática? Does not Comute
- Quais aplicativos utilizam Top Shelf interativa? Netflix, Plex, AppStore, Trailers, Fotos, Apple Music, Youtube, Amazon Prime Video, Vue, Direct TV Now, Hulu, HBO GO, WWDC, etc.
- Quais recomendações a Apple disponibiliza sobre Top Shelf estática? A Apple disponibiliza duas recomendações: Ser uma imagem esteticamente rica(Provide a visually rich static image); e Deve deixar bem claro que não se trata de uma imagem interativa(Don’t imply interactivity in a static image)[3].
- Quais recomendações a Apple disponibiliza sobre Top Shelf interativa? Ajudar o usuário a ter acesso mais fácil ao conteúdo (Help the user jump right to key content), Mostra compilado de conteúdo dinâmico(Showcase compelling dynamic content) , Personalizar seu conteúdo favorito (Personalize favorite content), Não apresentar propagandas ou preços(Don’t show advertisements or prices)[3].
- Quais são os tamanhos requisitados para uso da Top Shelf estática? Os tamanhos suportados são: 2320px × 720px (2320pt × 720pt @1x); e 4640px × 1440px (2320pt × 720pt @2x)[3].
- Existe um tamanho específico requisitado para a Top Shelf dinâmica? Não, pois existem duas variações a inset e a Sectioned.
- É obrigatório o uso de Top Shelf? Sim, todo app deve prover pelo menos uma Top Shelf Estática[3].
- Em quais estilos de apps é importante utilizar Top Shelf estática? A Guideline da Apple contém várias ocasiões em que é interessante implementar Top Shelf interativa, então as que não estiverem de acordo com a implementação interativa podem se tornar implementações estáticas.
- Em quais estilos de apps é importante utilizar Top Shelf interativa? A Guideline da Apple tem uma estrutura com os possíveis casos que é interessante fazer o uso de Top Shelf. Aplicativos de mídia certamente podem se beneficiar do interesse do usuário em obter acesso rápido a conteúdos relevantes.
- Quando não é recomendado o uso da Top Shelf? Para Apple TV é necessário que todo app apresente uma Top Shelf. Cabe ao desenvolvedor decidir entre a estática e a interativa.
- Tem que fazer Autolayout na Top Shelf? Não, só é preciso prover as imagens e o formato desejado delas, o posicionamento e o tamanho de visualização é cuidado automaticamente pela plataforma.
- Qual é o máximo de interação que pode ser colocada na Top Shelf? Selecionar um item de uma coleção fazendo scroll no controle. O item selecionado pode iniciar o aplicativo passando informações sobre si mesmo durante a inicialização.
- Qual a opinião de grandes desenvolvedoras tvOS a respeito do Top Shelf? A Top Shelf é uma excelente oportunidade de gerar engajamento com o usuário e de prover facilidade de uso e acesso rápido a elementos relevantes do aplicativo. Ser escolhido com um aplicativo destacado na Top Shelf do usuário é certamente um privilégio e certamente vale a pena se esforçar um pouco para que seu aplicativo se destaque no uso desta funcionade.
- Qual é a abordagem correta na criação de um Top Shelf de acordo com os desenvolvedores? A abordagem mais aconselhada é seguir as diretrizes definidas no Human Interface Guidelines(HIG), ou seja, a documentação oficial da Apple.
- Quais as possíveis dimensões das imagens que podemos usar no Sectioned content Row da tvOS?


- Quais as possíveis dimensões das imagens que podemos usar no Scrolling Inset Banner da tvOS?
- A Apple fornece UI Design Resource para auxílio dos seus Devs? Sim, como de costume, a Apple tem documentação e páginas que servem de auxílio para os seus devs. Nesse link em anexo: https://developer.apple.com/design/resources/#tvos-apps é possível ter acesso a templates para exportação das imagens contidas em uma top shelf.
- É possível dar play em um video dentro do tvOS de forma nativa? Uma extensão de topShelf não consegue definir uma ação específica de acordo com algum tipo de gesture. A TopShelf extension somente retorna um NSArray que descreve os itens da TopShelf ou um valor Nil.
- Existe um limite de memória que o conteúdo deve respeitar para ser mostrado na Top Shelf? Sim. O limite de memória para uma extensão Top Shelf é muito inferior ao limite de memória imposto nos aplicativos tvOS. Criar uma extensão Top Shelf que exija muita memória, como edição de imagem, pode forçar o sistema a terminar a aplicação. De acordo com a Apple, se existir a necessidade de ter conteúdo que possa exigir muita memória, é indicado um serviço externo que seja consumido através de URLs no Top Shelf.
- Como eu adiciono um target de top shelf para a minha aplicação de tvOS existente? Com o programa xcode aberto vá em Select File → New → Target → Na seção de tvOS, selecione TV Service Extension. Após seguir esse procedimento você é capaz de encontrar uma classe chamada ServiceProvider.swift ou, em objective C, ServiceProvider.h & ServiceProvider.m.
- Em quais linguagens de programação a Top Shelf Pode ser implementada? Swift e Objective-C.
- Como é feita a implementação da Top Shelf em um aplicativo para a Apple TV? Através do Framework TV Services, com o uso do protocolo TVTopShelfProvider.
- Como é feita a implementação de conteúdo estático na Top Shelf? Para exibir uma imagem estática na Top Shelf não há necessidade de implementação, a imagem que será exibida estaticamente será sempre a imagem de destaque enviada para a AppStore no momento da publicação do aplicativo.
- Como é feita a implementação de conteúdo dinâmico na Top Shelf? Para exibir conteúdo dinâmico na Top Shelf deve-se utilizar uma extensão do Framework "TV Service" na qual deve ser adotado o protocolo TVTopShelfProvider.
-
Como descrever o conteúdo que deve aparecer na Top Shelf, resumidamente?
Para prover uma descrição de conteúdo para a Apple TV, é preciso:
- Organizar as mídias e o conteúdo do aplicativo, em uma lista ou um modelo hierárquico;
- Criar um algoritmo ou padrão que provê uma string identificadora para cada item de conteúdo.
- Criar um objeto TVContentItem para cada item ou contâiner(seção) de itens;
- Adicionar uma App Extension em que a classe principal implemente o protocolo TVTopShelfProvider
- Quais propriedades são inerentes de uma extensão do Top Shelf? topShelfItems e topShelfStyle
- Qual é a função da propriedade topShelfItems? O objetivo da propriedade topShelfItems é retornar um vetor de elementos (TVContentItem) a ser exibidos na Top Shelf.
- A propriedade topShelfItems pode ser definida como um vetor em branco? Sim, caso um vetor vazio seja retornado a imagem estática disponibilizada para o app no momento da publicação será exibida na Top Shelf.
- O que é um TVContentItem? Para descrever as mídias que irão representar o conteúdo, é necessário criar um objeto do tipo TVContentItem. Cada objeto desses representa um pedaço de conteúdo ou abriga outros itens com conteúdo. Um item de conteúdo normalmente possui uma imagem e um título para que seja mostrado pelo tvOS, junto com alguns metadados extras.
- Como permitir que os itens da Top Shelf sejam rastreáveis? Para que o tvOS possa rastrear os itens de conteúdo, o desenvolvedor deve criar uma string única para identificar cada item. O algoritmo utilizado para gerar as strings identificadoras fica a cargo do desenvolvedor. Entretanto, qualquer string criada deve identificar seu conteúdo para sempre, e os identificadores não podem ser reutilizados para identificar novos conteúdos. Um identificador é colocado em um objeto TVContentIdentifier, que inclui a string e o item-pai no qual o item de conteúdo está contido.
- Qual é a função da propriedade topShelfStyle? O objetivo da propriedade topShelfStyle é definir qual estilo deve ser utilizado para exibir o conteúdo na Top Shelf. Tais estilos são definidos pelo enumerador TVTopShelfContentStyle.
- Quais são os diferentes tipos de estilo que podem ser utilizados para exibir conteúdo na Top Shelf? O estilo do conteúdo da Top Shelf pode ser inserido(inset) ou seccionado(sectioned).
- Qual é a diferença entre o estilo inserido e o seccionado? O estilo inserido requer um vetor de TV Content Items, neste estilo as imagens do item de conteúdo ocuparão toda a área da Top Shelf com uma rotação lenta entre os ítens, criando assim um tradicional banner rotativo. Já o estilo seccionado requer um um vetor de itens de conteúdo que representem seções, cada objeto de seção deve conter um vetor de itens de conteúdo que representa os elementos de mídia daquela seção.
- O que é um deep linking no Top Shelf? Para entendermos melhor, precisamos esclarecer o que é. Deep Linking consiste em usar um hyperlink que vai ligar a algum tipo de conteúdo dentro de um aplicativo, sendo que esse conteúdo pode ser: uma view especifica, uma seção particular de uma página ou uma aba. Um Exemplo de deep linking é entrar em alguma versão de aplicativo no browser e ser redirecionado para o aplicativo em seu iPhone. O mesmo padrão se aplica ao Top Shelf.
- Como é possível usar o deep linking no Top Shelf? Existem duas propriedades dentro do Top Shelf, são elas as: playURL e displayURL. Elas permitem que o desenvolvedor ative o deep link e deixa com que o AppDelegate intercepte o evento para os tratamentos necessários de acordo com o objetivo da aplicação. Um exemplo de implementação está nesse link: (https://useyourloaf.com/blog/openurl-deprecated-in-ios10/)
- Como usar foco na Top Shelf? Não há como utilizar foco na Top Shelf[2].
- É possível criar Top Shelf que muda o seu conteúdo de acordo com estados de um servidor? Sim, com a utilização do protocolo HTTP, é possível alterar o conteúdo de uma Top Shelf dinâmica de acordo com o servidor. Frameworks como o SwiftyJSON e o Alamofire podem ajudar no desenvolvimento[5].
- Onde disponibilizar conteúdo sobre Top Shelf para a comunidade de desenvolvedores iOS? GitHub, visto que é a maior comunidade de desenvolvedores no mundo[7].
- Como integrar os conteúdos de Top Shelf com o código fonte no Github? Isso pode ser feito a partir da utilização da Wiki, bastante popular em comunidades de software livre como o ArchLinux. Para a elaboração da Wiki será a utilizado markdown como linguagem de marcação[7].
- É possível publicar um aplicativo na AppStore sem Top Shelf? Não é possível.
- Como as Top Shelfs geralmente são implementadas em jogos? A grande maioria dos jogos da AppStore implementam apenas a Top Shelf estática.
- Como a Top Shelf dinâmica pode ser implementada em jogos? Um bom exemplo de possível aplicação de Top Shelf dinâmica em jogos seria permitir continuar o jogo de um determinado ponto, mostrando uma imagem da respectiva fase do jogo.
-
É possível testar Top Shelf estática sem submeter o aplicativo para a Apple Store?
Para testar a Top Shelf você pode usar o scheme gerado automaticamente quando você cria um target de Top Shelf
CBL
-
Big Idea: Top Shelf
-
Challenge: Desmistificar & documentar a Top Shelf
Top Shelf Estática
Top Shelf Interativa
FAQ




