Omni Group公司的软件工程师Curt Clifton在最近的一次西雅图Xcoders Meetup上为我们描述了面向Apple Watch的开发是什么样的,讨论了表应用的概念模型、手机和手表之间的数据通信以及一些挑战。
概念模型
我们应该考虑的第一件事是,在WatchKit 1.0中,代码运行于一个捆绑iPhone应用的扩展中。手表本身不会运行代码,但它可以作为图像和编译脚本的“宿主”,图像可以动态生成并输送到手表,虽然对图像而言有20MB的缓存可用,但缓慢并且不太可靠。
WatchKit框架依然非常小,主要是通过创建代理类在手表上呈现视图。此外,这些类将主要提供专门的setter方法,而没有getter。
同步选项
自从iOS扩展运行在一个单独的进程中,扩展让app之间的数据交互成为可能。这让两者之间的数据同步成了关键,常见可用的同步机制有:
最后一个是Curt Clifton用于他示例应用的解决方案,这里有详细的描述:
挑战
正如我们之前提到的,WatchKit只提供setter,所以第一个挑战是发送命令到不活跃的控件。这可能会导致数据的不一致,并且无论是否活跃,都需要通过每个类追踪其控件状态来处理这一问题,在示例应用中是通过_updateDisplay* set方式来实现的。
不支持自动布局,而是被group所取代,允许你从左到右、从上到下进行填补,你可以在group的内部添加group,并建立非常复杂的UI,不过这是一个完全不同的模型。
最后,我们还不知道手表的接口会是什么样子,同时我们也不清楚处理来自手表的通知的方式。
原文来自:InfoQ