关闭广告

苹果上周展示了除其他外的其他内容 新苹果电视 与 tvOS 操作系统。来自App Store的应用程序可以安装在新的黑匣子中这一事实无疑让开发人员感到最高兴。

开发人员有两种选择。他们可以编写一个可以完全访问 Apple TV 硬件的本机应用程序。可用的 SDK(供开发人员使用的库集)与开发人员已经从 iPhone、iPad 中了解到的非常相似,并且编程语言相同 - Objective-C 和较年轻的 Swift。

但对于更简单的应用程序,Apple 为开发人员提供了 TVML(电视标记语言)形式的第二种选择。如果您觉得 TVML 这个名称看起来很像 HTML,那么您是对的。它实际上是一种基于 XML 的标记语言,与 HTML 非常相似,只是它更简单并且具有更严格的语法。但对于像 Netflix 这样的应用程序来说,它绝对是完美的。用户也会受益,因为 TVML 的严格性将使多媒体应用程序的外观和工作方式大致相同。

第一个应用程序的路径

所以我要做的第一件事就是下载新的 beta 版本的 Xcode 开发环境(7.1 版本已经可用 这里)。这使我能够访问 tvOS SDK,并能够启动一个专门针对第四代 Apple TV 的新项目。该应用程序可以仅限于 tvOS,也可以将代码添加到现有的 iOS 应用程序中以创建“通用”应用程序 - 类似于当今 iPhone 和 iPad 应用程序的模型。

问题一:Xcode 只提供创建本机应用程序的功能。但我很快就在文档中找到了一个部分,可以帮助开发人员更改此框架并为 TVML 做好准备。基本上,只需使用 Swift 中的几行代码,就可以在 Apple TV 上创建一个全屏对象并加载应用程序的主要部分,该部分已经用 JavaScript 编写。

问题二:TVML 应用程序实际上与网页非常相似,因此所有代码也是从互联网加载的。应用程序本身实际上只是一个“引导加载程序”,它只包含最少的代码和最基本的图形元素(应用程序图标等)。最终,我成功地将主要 JavaScript 代码直接放入应用程序中,并且至少能够在 Apple TV 未连接到互联网时显示自定义错误消息。

第三个小问题:iOS 9 及其 tvOS 严格要求所有与互联网的通信都通过 HTTPS 进行加密。这是iOS 9中为所有应用程序引入的功能,原因是对用户隐私和数据安全的压力。因此,有必要在 Web 服务器上部署 SSL 证书。它的购买价格低至每年 5 美元(120 克朗),或者您也可以使用 CloudFlare 等服务,该服务将自动处理 HTTPS,无需投资。第二个选项是关闭应用程序的此限制,目前这是可能的,但我绝对不会推荐它。

经过几个小时的阅读文档后,仍然偶尔出现一些小错误,我制定了一个非常基本但有效的应用程序。它显示了流行的文本“Hello World”和两个按钮。我花了大约两个小时试图让按钮处于活动状态并实际执行某些操作。但考虑到凌晨,我更愿意去睡觉……这是一件好事。

有一天,我有了一个好主意,直​​接从 Apple 下载现成的示例 TVML 应用程序。我很快在代码中找到了我正在寻找的内容,并且该按钮已启用并且可以正常工作。除此之外,我还在互联网上发现了 tvOS 教程的前两部分。这两种资源都帮了很大的忙,所以我开始了一个新项目并开始了我的第一个真正的应用程序。

第一次真正的应用

我完全从头开始,第一个 TVML 页面。好处是苹果为开发者准备了18个现成的TVML模板,只需要从文档中复制即可。编辑一个模板大约需要一个小时,主要是因为我正在准备 API 将包含所有必要数据的完成的 TVML 发送到 Apple TV。

第二个模板只花了大约10分钟。我添加了两个 JavaScript - 其中大部分代码直接来自 Apple,所以为什么要重新发明轮子呢。 Apple 已准备好脚本来负责加载和显示 TVML 模板,包括推荐的内容加载指示器和可能的错误显示。

在不到两个小时的时间里,我就构建了一个非常简单但功能齐全的 PLAY.CZ 应用程序。它可以显示广播电台列表,可以按流派过滤它,还可以启动广播。是的,很多东西都不在应用程序中,但基本功能是有效的。

[youtube id=”kLKvWC-rj7Q” 宽度=”620″ 高度=”360″]

优点是应用程序基本上无非是网站的特殊版本,由 JavaScript 提供支持,还可以使用 CSS 来修改外观。

苹果还需要一些准备工作。应用程序图标不是一个,而是两个 - 较小的和较大的。新颖之处在于该图标不是简单的图像,而是包含视差效果,并且由2至5层(背景、中间物体和前景)组成。应用程序中的所有活动图像都可以包含相同的效果。

每一层实际上只是透明背景上的图像。苹果已经准备了自己的应用程序来编译这些分层图像,并承诺很快发布 Adob​​e Photoshop 的导出插件。

另一个要求是“Top Shelf”图像。如果用户将应用程序放置在顶行的显着位置(顶部架子上),则该应用程序还必须为应用程序列表上方的桌面提供内容。可以只是一张简单的图片,也可以是一个活动区域,例如包含最喜欢的电影列表,或者在我们的例子中是广播电台。

许多开发人员刚刚开始探索新 tvOS 的可能性。好消息是,编写内容应用程序非常容易,Apple 已经通过 TVML 为开发人员走了很长的路。构建应用程序(例如 PLAY.CZ 或 iVyszílő)应该既简单又快速。很有可能在新款 Apple TV 上市的同时,大量应用程序也将准备就绪。

编写原生应用程序或将游戏从 iOS 移植到 tvOS 会更具挑战性,但难度也不会太大。最大的障碍是不同的控件和每个应用程序 200MB 的限制。本机应用程序只能从商店下载有限的部分数据,其他所有内容都必须额外下载,并且不能保证系统不会删除这些数据。然而,开发人员肯定会很快解决这个限制,这也要归功于一组名为“App Thinning”的工具的可用性,这些工具也是 iOS 9 的一部分。

主题: , ,
.