A Apple apresentou na semana passada, entre outras coisas o novo AppleTV com o sistema operacional tvOS. O fato de aplicativos da App Store poderem ser instalados na nova caixa preta certamente deixou os desenvolvedores mais felizes.
Os desenvolvedores têm duas opções. Eles podem escrever um aplicativo nativo que tenha acesso total ao hardware da Apple TV. O SDK (conjunto de bibliotecas para desenvolvedores) disponível é muito semelhante ao que os desenvolvedores já conhecem do iPhone, iPad, e as linguagens de programação são as mesmas - Objective-C e o Swift mais jovem.
Mas para aplicações mais simples, a Apple ofereceu aos desenvolvedores uma segunda opção na forma de TVML – Television Markup Language. Se você acha que o nome TVML parece suspeito com HTML, você está certo. É realmente uma linguagem de marcação baseada em XML e muito semelhante ao HTML, só que é muito mais simples e possui uma sintaxe mais rígida. Mas é absolutamente perfeito para aplicativos como o Netflix. E os usuários também serão beneficiados, porque o rigor do TVML fará com que os aplicativos multimídia tenham a mesma aparência e funcionem da mesma forma.
Caminho para o primeiro aplicativo
Então a primeira coisa que tive que fazer foi baixar a nova versão beta do ambiente de desenvolvimento Xcode (a versão 7.1 está disponível aqui). Isso me deu acesso ao tvOS SDK e pude iniciar um novo projeto voltado especificamente para a Apple TV de quarta geração. O aplicativo pode ser apenas tvOS ou o código pode ser adicionado a um aplicativo iOS existente para criar um aplicativo “universal” – um modelo semelhante aos aplicativos para iPhone e iPad atuais.
Problema um: o Xcode oferece apenas a capacidade de criar um aplicativo nativo. Mas rapidamente encontrei uma seção na documentação que ajudará os desenvolvedores a mudar esse esqueleto e prepará-lo para TVML. Basicamente, são algumas linhas de código em Swift que, apenas no Apple TV, criam um objeto de tela cheia e carregam a parte principal do app, que já está escrita em JavaScript.
Problema dois: os aplicativos TVML são muito parecidos com uma página da web e, portanto, todo o código é carregado da Internet. O aplicativo em si é na verdade apenas um "bootloader", contém apenas um mínimo de código e os elementos gráficos mais básicos (ícone do aplicativo e similares). No final, coloquei com sucesso o código JavaScript principal diretamente no aplicativo e consegui pelo menos exibir uma mensagem de erro personalizada quando o Apple TV não estava conectado à Internet.
O terceiro pequeno problema: o iOS 9 e com ele o tvOS exigem estritamente que toda a comunicação com a Internet seja criptografada via HTTPS. Este é um recurso introduzido no iOS 9 para todos os aplicativos e o motivo é a pressão sobre a privacidade do usuário e a segurança dos dados. Portanto será necessário implantar um certificado SSL no servidor web. Ele pode ser adquirido por apenas US$ 5 (120 coroas) por ano, ou você pode usar, por exemplo, o serviço CloudFlare, que cuidará do HTTPS sozinho, de forma automática e sem investimento. A segunda opção é desativar essa restrição do aplicativo, o que é possível por enquanto, mas eu definitivamente não recomendaria.
Depois de algumas horas lendo a documentação, onde ainda existem pequenos erros ocasionais, desenvolvi uma aplicação muito básica, mas funcional. Ele exibia o popular texto “Hello World” e dois botões. Passei cerca de duas horas tentando ativar o botão e realmente fazer alguma coisa. Mas considerando as primeiras horas da manhã, preferi dormir… e isso foi bom.
Outro dia, tive a brilhante ideia de baixar um exemplo de aplicativo TVML pronto para uso diretamente da Apple. Encontrei o que procurava muito rapidamente no código e o botão estava ativo e funcionando. Entre outras coisas, também descobri as duas primeiras partes do tutorial do tvOS na Internet. Ambos os recursos ajudaram muito, então iniciei um novo projeto e comecei minha primeira aplicação real.
Primeira aplicação real
Comecei completamente do zero, a primeira página do TVML. A vantagem é que a Apple preparou 18 modelos de TVML prontos para desenvolvedores que só precisam ser copiados da documentação. A edição de um modelo demorou cerca de uma hora, principalmente porque eu estava preparando nossa API para enviar o TVML finalizado com todos os dados necessários para o Apple TV.
O segundo modelo levou apenas cerca de 10 minutos. Eu adicionei dois JavaScripts - a maior parte do código neles vem diretamente da Apple, então por que reinventar a roda? A Apple preparou scripts que cuidam do carregamento e exibição de modelos TVML, incluindo o indicador de carregamento de conteúdo recomendado e possível exibição de erros.
Em menos de duas horas, consegui montar um aplicativo PLAY.CZ muito simples, mas funcional. Ele pode exibir uma lista de estações de rádio, filtrá-la por gênero e iniciar o rádio. Sim, muitas coisas não estão no aplicativo, mas o básico funciona.
[youtube id=”kLKvWC-rj7Q” largura=”620″ altura=”360″]
A vantagem é que o aplicativo nada mais é do que uma versão especial do site, que é alimentada por JavaScript e você também pode usar CSS para modificar a aparência.
A Apple ainda precisa de mais algumas coisas para preparar. O ícone do aplicativo não é um, mas dois - menor e maior. A novidade é que o ícone não é uma simples imagem, mas contém efeito de paralaxe e é composto de 2 a 5 camadas (fundo, objetos do meio e primeiro plano). Todas as imagens ativas no aplicativo podem conter o mesmo efeito.
Cada camada é na verdade apenas uma imagem em um fundo transparente. A Apple preparou seu próprio aplicativo para compilar essas imagens em camadas e promete lançar em breve um plugin de exportação para Adobe Photoshop.
Outro requisito é uma imagem de “prateleira superior”. Se o usuário colocar o aplicativo em uma posição de destaque na linha superior (na prateleira superior), o aplicativo também deverá fornecer conteúdo para a área de trabalho acima da lista de aplicativos. Pode ser apenas uma simples imagem ou pode ser uma área ativa, por exemplo com uma lista de filmes favoritos ou, no nosso caso, estações de rádio.
Muitos desenvolvedores estão apenas começando a explorar as possibilidades do novo tvOS. A boa notícia é que escrever um aplicativo de conteúdo é muito fácil, e a Apple percorreu um longo caminho para desenvolvedores com TVML. Construir uma aplicação (por exemplo PLAY.CZ ou iVyszílő) deve ser fácil e rápido. Há uma boa chance de que um grande número de aplicativos esteja pronto ao mesmo tempo que o novo Apple TV for colocado à venda.
Escrever um aplicativo nativo ou portar um jogo do iOS para o tvOS será mais desafiador, mas não muito. O maior obstáculo serão os controles diferentes e um limite de 200 MB por aplicativo. Um aplicativo nativo pode baixar apenas uma parte limitada dos dados da loja, e todo o resto deve ser baixado adicionalmente, e não há garantia de que o sistema não excluirá esses dados. Porém, os desenvolvedores certamente lidarão com essa limitação rapidamente, também graças à disponibilidade de um conjunto de ferramentas chamado “App Thinning”, que também faz parte do iOS 9.
Belo artigo. Obrigado. Talvez com o tempo veremos da Apple também uma solução de usuário para preparar aplicativos (soluções) mais simples, como é possível com o FileMaker para iOS, sem que eu seja desenvolvedor.
Em teoria… o carregador Swift tem algumas linhas que ainda são as mesmas, apenas a URL do primeiro arquivo TVML muda. Se alguém quiser, provavelmente poderá escrever um script que possa executar remotamente uma compilação com sua URL e enviar de volta um arquivo IPA. Ou se você tiver um mac, não tem problema enviar o projeto, onde basta colocar a URL e iniciar a compilação. A vantagem é que se o TVML estiver fora do aplicativo, você realmente precisará apenas de uma construção pública e possivelmente de uma construção privada (desenvolvimento), e só poderá alterar o TVML no servidor e, portanto, o funcionamento do aplicativo.
"O aplicativo pode ser apenas tvOS ou o código pode ser adicionado a um aplicativo iOS existente para criar um aplicativo 'tamanho único' - um modelo semelhante aos aplicativos para iPhone e iPad atuais."
Eu me pergunto o que você quer dizer? Pessoalmente, não encontrei em nenhum lugar uma maneira de fazer uma compilação que inclua iPhone, iPad e Apple TV universais. Como são SDKs separados (semelhantes ao OSX), você precisa de um alvo extra para tvOS e, portanto, também de uma compilação separada. Estou faltando alguma coisa?
no Xcode 7.1, os aplicativos tvOS podem ser adicionados como outro alvo a um projeto já existente - semelhante aos aplicativos para o Apple Watch ou talvez um widget para a central de notificações. Porém, ainda não sei como ele será carregado na loja... Presumo que o Xcode enviará um pacote e a App Store o dividirá... Provavelmente semelhante ao que fazem com o Watch agora
não.. na minha opinião, são duas coisas completamente diferentes.. watch é uma extensão.. ou pelo menos era até watchOS 2.. foi fornecido junto com o alvo iOS e nem funcionava sem um iPhone.. ATV é uma entidade separada.. é disso que estou falando, se a construção do ATV será separada (você precisa pagar 2.0$) e além disso o iOS pagará 2$, ou será possível conceder um universal Versão de 2$ para iOS e família ATV.
então o lançamento real vai aparecer, mas realmente se comporta da mesma forma que o código do Apple Watch, por exemplo. Caso contrário, a documentação afirma que será possível adicionar código para tvOS ao aplicativo existente e assim será possível vender um aplicativo (uma entidade na App Store) para iOS e tvOS ao mesmo tempo - uma compra para o cliente ou como uma entidade separada - uma compra separada para iOS e tvOS.
Só para esclarecer, não são 200 MB por aplicativo, mas 200 MB armazenados localmente e o restante baixado da rede quando necessário
Obrigado, foi o que pensei, mas provavelmente escrevi errado. Tudo acima de 200 MB (ou tudo baixado adicionalmente) é armazenado como cache e se o sistema decidir que está ficando sem espaço, ele começa a excluí-lo - o que provavelmente não acontecerá até que haja espaço livre suficiente e então o conteúdo menos usado será excluído, então na prática provavelmente não será um grande problema.
O que mais preciso descobrir é que supostamente esse limite não se aplica a jogos, ou o jogo pode ter mais de 200 MB na base. Mas ainda não sei exatamente como isso significa exatamente. É bem possível que a Apple ainda esteja ajustando esta política de acordo com o feedback dos desenvolvedores.
hehe Pokémon TCG – 4 GB, Ordem do caos online – 1,6 GB Hearthstone 1,3 GB Estou muito curioso sobre isso.
houve informação de que os jogos possuem um modo especial. Estou juntando os detalhes agora e concluiremos o artigo.
Não consigo, e peço desculpas antecipadamente se ofendi alguém, mas só tenho uma alegria enorme, sincera e inalterada que queria compartilhar com vocês...
No dia seguinte ao anúncio do novo Apple TV, não tive preguiça e me inscrevi na loteria da Apple (devo escolher?) com a possibilidade de obter um Developer Kit antes mesmo de ele ser colocado à venda.
Ontem à noite, a Apple me escreveu dizendo que me selecionou para o primeiro lote :)
Então, não sou o autor deste artigo e estou honestamente trabalhando no Preschool Brasnicce para Apple TV - disponível na sua App Store durante o mês de outubro :)
então tenho a sensação de que todos que se cadastraram provavelmente conseguiram :) Também fiz o pedido ontem e estou muito, muito ansioso por isso... E conheço mais uma pessoa que também está esperando a entrega dele...
De qualquer forma, até agora parece que provavelmente haverá muitos aplicativos quando as vendas começarem :)
Provavelmente todo mundo não sabe - eles não me deram :(
:( Eu sinto muito por voce.
Se alguém quiser, tenho oito adesivos brancos da Apple… posso enviá-los…