苹果上周展示了除其他外的其他内容 新苹果电视 与 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层(背景、中间物体和前景)组成。应用程序中的所有活动图像都可以包含相同的效果。
每一层实际上只是透明背景上的图像。苹果已经准备了自己的应用程序来编译这些分层图像,并承诺很快发布 Adobe Photoshop 的导出插件。
另一个要求是“Top Shelf”图像。如果用户将应用程序放置在顶行的显着位置(顶部架子上),则该应用程序还必须为应用程序列表上方的桌面提供内容。可以只是一张简单的图片,也可以是一个活动区域,例如包含最喜欢的电影列表,或者在我们的例子中是广播电台。
许多开发人员刚刚开始探索新 tvOS 的可能性。好消息是,编写内容应用程序非常容易,Apple 已经通过 TVML 为开发人员走了很长的路。构建应用程序(例如 PLAY.CZ 或 iVyszílő)应该既简单又快速。很有可能在新款 Apple TV 上市的同时,大量应用程序也将准备就绪。
编写原生应用程序或将游戏从 iOS 移植到 tvOS 会更具挑战性,但难度也不会太大。最大的障碍是不同的控件和每个应用程序 200MB 的限制。本机应用程序只能从商店下载有限的部分数据,其他所有内容都必须额外下载,并且不能保证系统不会删除这些数据。然而,开发人员肯定会很快解决这个限制,这也要归功于一组名为“App Thinning”的工具的可用性,这些工具也是 iOS 9 的一部分。
好文章。谢谢。也许我们最终会从 Apple 看到一个用于准备更简单的应用程序(解决方案)的用户解决方案,就像 FileMaker for iOS 一样,而无需我成为开发人员。
理论上……Swift 加载器有几行仍然相同,只是第一个 TVML 文件的 URL 发生了变化。如果有人愿意,他们可能可以编写一个脚本,可以使用您的 URL 远程运行构建并发回 IPA 文件。或者,如果您有 Mac,则发送项目也没有问题,您只需在其中输入 URL 并开始构建即可。优点是,如果 TVML 位于应用程序之外,您实际上只需要一个公共构建和可能的一个私有(开发)构建,并且您只能更改服务器上的 TVML 以及应用程序的功能。
“该应用程序可以仅适用于 tvOS,也可以将代码添加到现有的 iOS 应用程序中以创建“一刀切”的应用程序 - 类似于当今 iPhone 和 iPad 应用程序的模型。”
我想知道你的意思是什么?就我个人而言,我还没有找到一种方法来制作包含通用 iPhone、iPad 和 Apple TV 的 1 个版本。因为它们是单独的 SDK(类似于 OSX),所以您需要 tvOS 的额外目标,因此也需要一个单独的版本。 .我错过了什么?
在 Xcode 7.1 中,tvOS 应用程序可以作为另一个目标添加到现有项目中 - 类似于 Apple Watch 的应用程序或通知中心的小部件。但是,我还不知道它将如何上传到商店...我假设 Xcode 会发送一个包,然后 App Store 会分割它...可能类似于他们现在对 Watch 所做的事情
不..在我看来,这是两个完全不同的东西..watch是一个扩展..或者至少直到watchOS 2..它是与iOS目标一起提供的,甚至没有iPhone就无法工作.. ATV 是一个独立的实体.. 这就是我所说的,ATV 的构建是否会是独立的(您需要支付 2.0 美元)并且另外 iOS 支付 2 美元,或者是否有可能授予通用iOS 和 ATV 均需 2 美元构建。ATV 系列..
因此,真正的发布将会显示出来,但它的行为实际上与 Apple Watch 代码相同。否则,文档指出可以将 tvOS 的代码添加到现有应用程序中,因此可以同时为 iOS 和 tvOS 销售一款应用程序(App Store 中的一个实体)——一次购买客户,或作为单独的实体 - 单独购买 iOS 和 tvOS。
澄清一下,这不是每个应用程序 200MB,而是本地存储的 200MB,其余的在需要时从网络下载
谢谢,我也是这么想的,不过可能是我表达错误了。超过 200MB 的所有内容(或额外下载的所有内容)都存储为缓存,如果系统确定空间不足,它就会开始删除它 - 这可能不会发生,直到有足够的可用空间,然后是最少使用的内容会被删除,所以在实践中它可能不会有太大的问题。
我还需要了解什么,据说这个限制不适用于游戏,或者游戏的大小可能超过 200MB。但我仍然不知道这到底是什么意思。很有可能苹果仍在根据开发者的反馈调整这一政策。
呵呵 Pokemon TCG – 4 GB,在线秩序混乱 – 1,6 GB 炉石传说 1,3 GB 我对此非常好奇。
有消息称游戏有特殊模式。我现在正在整理详细信息,我们将完成这篇文章。
我做不到,如果我冒犯了任何人,我提前道歉,但我只是想与你分享巨大的、真诚的、真正的快乐......
新款 Apple TV 发布的第二天,我也没有偷懒,报名参加了 Apple 抽奖(我应该选择吗?),甚至在发售前就有可能获得开发者套件。
昨天晚上,苹果公司写信给我说它选择了我作为第一批:)
所以,我和本文的作者不一样,老实说,我正在开发适用于 Apple TV 的 Preschool Brasnicce - 十月期间可在您的 App Store 上架:)
所以我有一种感觉,每个注册的人都可能收到了:)我昨天也订购了,我真的非常期待它......而且我知道还有一个人也在等待他的送货......
不管怎样,到目前为止看来,当销售开始时,可能会有很多应用程序:)
每个人可能都没有 - 他们没有给我:(
:( 我为你感到难过。
如果有人愿意,我有八张白色苹果贴纸……我可以邮寄它们……