Watch OS2.0开发概述
(注:尊重劳动成果,转载请注明出处 http://www.cnblogs.com/xiaochunle/p/4620230.html )
Watch OS 2.0时代
北京时间2015年6月9日,WWDC在美国旧金山召开,Apple发布了第二代苹果婊(洋名AppleWatch)操作系统,以下简称watch os2.0。

这版本最大变化或许就是你能够在watch构建原生app。不像之前的版本,watch app只能存放一些资源与界面文件,主要业务逻辑需要在iPhone上执行代码。在watch os2.0上能够通过apple开放的框架api在watch自身驻留与运行。这样带来的好处就是你的app能启动的更快,运行的更流畅,而不需要每一次操作都通过watch和iPhone的蓝牙模块往返传递数据(蓝牙的带宽是硬伤)。从产品的维度来看,这的确是一次优良的改进,但从程序猿的角度,意味着需要消化的东西变得更多了。

Watch OS1.0到2.0
watch os2.0 app中包含的两个相符隔离的bundle共同协作向用户展示app内容, watch app自身包含UI呈现相关的storyboards和 resource 文件, watchKit extension中则存放业务逻辑代码和更新UI的resources。

以上仅仅是架构上的变化, 但watch app 和watchKit extension 两者在watch os的分工保持一致。watch os1.0中在watchKit extension编写的业务代码迁移到watch os2.0上基本上也是可以正常跑起来的,但这时得从watch os2.0 app的整个架构的角度去思考,这样做是不是合理,而不要一味的去搬代码(始终要记住watch 2.0是一个独立的操作系统,和iPhone没半毛钱关系)。在 extension中实现的代码,必须是基于watchOS SDK,而不是ios SDK,如果apple开放的watch os2.0 api不能满足业务开发的需要,这时有个变通的方法:先在iPhone上通过调用ios sdk 拿到数据,然后再通过WatchConnectivity frameworks传递到watch上。
Watch OS1.0转向2.0
如果决定将watch 1.0 app迁移到2.0上,必须得评估这两者完全不同的系统架构对1.0版本app架构设计带来的影响。以下问题需要慎重考虑:
- app是否严重依赖iCloud?WatchOS2中,WatchKit extension不再被允许直接访问iCloud。此类功能都必须由配对的iOS应用完成,再传输给手表。
- watch应用是否依赖配对的iOS应用的数据?手机上创建的数据,必须传输到手表上供手表应用使用;手表应用更改后,必须传回手机,供其备份。纵然Apple Watch有提供传输的帮助,这里也必须更新相关的数据处理代码已支持数据同步。这里,可以考虑异步同步数据,手表和手机都连接到一个共享的服务器,通过服务器来同步数据。
- 是否要支持早期的Apple Watch版本?如果要支持初代WatchKit和WatchOS2,那么我们需要有不同的target并编译产生不同的可执行文件。这是因为watch os1.0与watch os2.0是两个完全不同的系统架构,共享代码远比分开编译target的代价大的多。
Watch OS2.0中的frameworks
目前apple针对extensions开放的系统库如下:
其中红框中的frameworks是watch SDK特有的库,其他的frameworks在ios SDK 都可以找到。相信apple后面将开放更多的api,给予开发者更多的权限,丰富watch app类型。
Watch OS2.0中的Networking
watch os2.0支持的网络技术包括:
- WatchKit extensions可使用
NSURLSessionobject对象直接连接网络。watch SDK中NSURLSession类开放的属性和函数功能和ios SDKNSURLSession类无异,包括上传和下载文件的能力。 - Watch Connectivity framework支持watch app和ios app之间的双向通信。
2007年,如果你错过了第一代iPhone的开发,八年后,不要再错过Apple Watch这块新平台了。
Watch OS2.0开发概述的更多相关文章
- 用SignalR 2.0开发客服系统[系列4:负载均衡的情况下使用SignalR]
前言 交流群:195866844 目录: 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 用SignalR 2.0开发客服系统[系列2:实现聊天室] 用SignalR 2.0开发客服系统 ...
- OAuth 2.0 开发完全详解
--------------------------基础篇------------------------------- I:OAuth 2.0 概述 首先大家来看看国内新浪跟腾讯这两大头对OAuth ...
- Excel 开发概述
浅谈Excel开发:一 Excel 开发概述 做Office相关的开发工作快一年多了,在这一年多里,在插件的开发中遇到了各种各样的问题和困难,还好同事们都很厉害,在和他们的交流讨论中学到了很多的知识. ...
- Office 365开发概述及生态环境介绍(二)
本文于2017年3月19日首发于LinkedIn,原文链接在这里 在上一篇 文章,我给大家回顾了Office发展过来的一些主要的版本(XP,2003,2007,2013等),以及在Office客户端中 ...
- 前端开发概述+JS基础细节知识点
一 前端开发概述 html页面:html css javascript 拿到UI设计图纸:切图-->html+css静态布局-->用JS写一写动态效果-->ajax和后台进行交互,把 ...
- Android零基础入门第16节:Android用户界面开发概述
原文:Android零基础入门第16节:Android用户界面开发概述 相信通过前面15期的学习,Android的开发环境已经基本掌握了,如果仍有问题,欢迎到Android零基础入门技术讨论微信群交流 ...
- [开源地址] 放弃Flink,.NET5.0开发CSharpFlink,简要设计、部署及二次开发说明。
github地址:https://github.com/wxzz/CSharpFlinkgitee地址:https://gitee.com/wxzz/CSharpFlink 1 概述及背景 我们有一个 ...
- ASP.NET Core 1.0 开发记录
官方资料: https://github.com/dotnet/core https://docs.microsoft.com/en-us/aspnet/core https://docs.micro ...
- 用SignalR 2.0开发客服系统[系列2:实现聊天室]
前言 交流群:195866844 上周发表了 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 这篇文章,得到了很多帮助和鼓励,小弟在此真心的感谢大家的支持.. 这周继续系列2,实现聊天室 ...
随机推荐
- 如何为 setTimeout() 方法传参
现有如下JavaScript代码: function printApple(apple){ console.log(apple, "is a kind of healthy fruit&qu ...
- java验证码Captcha
import java.awt.Color; import java.io.IOException; import java.util.Random; import javax.servlet.htt ...
- Java 406
项目改名之后, 项目上传后,报错,406,可是项目本地是可以跑起来的, 联系管理员,管理员改了个/etc/httpd/conf/workers2.properties 里面,将本次的项目加入进去就OK ...
- 正则表达式匹配(node.js)
参考文档如下: http://blog.csdn.net/huiguixian/article/details/6131048 http://www.91xueke.com/2013/04/05/30 ...
- 利用ASP.NET AJAX的Timer讓GridView每隔一段時間做到自動換頁的功能
最近在討論區看到這個問題,小弟利用asp.net ajax的timer來實作這個功能 利用timer每隔一段時間,讓gridview自動跳頁並且更新gridview的內容 asp.net(c#) Gr ...
- vpn的作用
1.可以用于远程对方桌面. 步骤: 1.浏览器中访问网址,输入用户名,密码即可 2.输入远程桌面用户名和网址
- vs 2013 编译zlib
zlib下载地址: http://pan.baidu.com/s/1pJqTcoV \zlib-1.2.8\contrib\vstudio\vc10\zlibvc.sln 打开这个文件, 根据提示, ...
- 【POJ1568】【极大极小搜索+alpha-beta剪枝】Find the Winning Move
Description 4x4 tic-tac-toe is played on a board with four rows (numbered 0 to 3 from top to bottom) ...
- nodejs初体验
安装好nodejs之后 在命令行中直接运行:node -v //若安装成功则显示版本号 var http = require('http'); http.createServer(function ( ...
- C#DateTimePicker设置自定义格式
摘自Microsoft TechNet DateTimePicker.CustomFormat 属性 包含日期和时间分隔符的显示字符串文字或格式字符串,必须在子字符串中使用转义符. 例如,若要显示将日 ...