(注:尊重劳动成果,转载请注明出处 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可使用 NSURLSession object对象直接连接网络。watch SDK中NSURLSession类开放的属性和函数功能和ios SDKNSURLSession类无异,包括上传和下载文件的能力。
  • Watch Connectivity framework支持watch app和ios app之间的双向通信。

2007年,如果你错过了第一代iPhone的开发,八年后,不要再错过Apple Watch这块新平台了。

Watch OS2.0开发概述的更多相关文章

  1. 用SignalR 2.0开发客服系统[系列4:负载均衡的情况下使用SignalR]

    前言 交流群:195866844 目录: 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 用SignalR 2.0开发客服系统[系列2:实现聊天室] 用SignalR 2.0开发客服系统 ...

  2. OAuth 2.0 开发完全详解

    --------------------------基础篇------------------------------- I:OAuth 2.0 概述 首先大家来看看国内新浪跟腾讯这两大头对OAuth ...

  3. Excel 开发概述

    浅谈Excel开发:一 Excel 开发概述 做Office相关的开发工作快一年多了,在这一年多里,在插件的开发中遇到了各种各样的问题和困难,还好同事们都很厉害,在和他们的交流讨论中学到了很多的知识. ...

  4. Office 365开发概述及生态环境介绍(二)

    本文于2017年3月19日首发于LinkedIn,原文链接在这里 在上一篇 文章,我给大家回顾了Office发展过来的一些主要的版本(XP,2003,2007,2013等),以及在Office客户端中 ...

  5. 前端开发概述+JS基础细节知识点

    一 前端开发概述 html页面:html css javascript 拿到UI设计图纸:切图-->html+css静态布局-->用JS写一写动态效果-->ajax和后台进行交互,把 ...

  6. Android零基础入门第16节:Android用户界面开发概述

    原文:Android零基础入门第16节:Android用户界面开发概述 相信通过前面15期的学习,Android的开发环境已经基本掌握了,如果仍有问题,欢迎到Android零基础入门技术讨论微信群交流 ...

  7. [开源地址] 放弃Flink,.NET5.0开发CSharpFlink,简要设计、部署及二次开发说明。

    github地址:https://github.com/wxzz/CSharpFlinkgitee地址:https://gitee.com/wxzz/CSharpFlink 1 概述及背景 我们有一个 ...

  8. ASP.NET Core 1.0 开发记录

    官方资料: https://github.com/dotnet/core https://docs.microsoft.com/en-us/aspnet/core https://docs.micro ...

  9. 用SignalR 2.0开发客服系统[系列2:实现聊天室]

    前言 交流群:195866844 上周发表了 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 这篇文章,得到了很多帮助和鼓励,小弟在此真心的感谢大家的支持.. 这周继续系列2,实现聊天室 ...

随机推荐

  1. Java基础知识强化之集合框架笔记39:Set集合之HashSet存储字符串并遍历

    1. HashSet类的概述: (1)不保证set的迭代顺序 (2)特别是它不保证该顺序恒久不变 HashSet底层数据结构是哈希表,哈希表依赖于哈希值存储,通过哈希值来确定元素的位置,  而保证元素 ...

  2. js--小结⑦---格式转换

  3. ActionResult 常见问题

    1:在Asp.net Mvc 2中由于对数据的保护,当返回类型为JsonResult时 ,默认情况下request需要为post.(可使用   return Json(person,JsonReque ...

  4. listActivity和ExpandableListActivity的简单用法

    http://www.cnblogs.com/limingblogs/archive/2011/10/09/2204866.html 今天自己简单的总结了listActivity和Expandable ...

  5. angularjs modal模态框----创建可拖动的指令

    //最近项目中需要将angular-ui-bootstrap中用到的弹出框,使之可拖动,由于源文件中没有实现,需要自己实现指令,以下即为该指令,亲测可以实现..directive('draggable ...

  6. ng-view和ng-include之间的区别

    ng-view通过使用路由控制,可以方便的实现页面组合,但一个html文件中,只能有一个ng-view,他是可以被ctl控制的.ng-include就是将多个页面的公共页面提取出来,如header.h ...

  7. iOS: 在代码中使用Autolayout (2) – intrinsicContentSize和Content Hugging Priority【转】

    原文:http://www.mgenware.com/blog/?p=491 接上文:iOS: 在代码中使用Autolayout (1) – 按比例缩放和优先级. 我们继续来看在代码中使用Autola ...

  8. 服务器上搭建spark开发环境

    1.安装相应的软件 (1)安装jdk 下载地址:http://www.Oracle.com/technetwork/java/javase/downloads/index.html (2)安装scal ...

  9. SGU 155.Cartesian Tree

    时间限制:0.25s 空间限制:6M 题意: 给出n(n< 50000)个含双关键字(key,val)的节点,构造一颗树使该树,按key值是一颗二分查找树,按val值是一个小根堆. Soluti ...

  10. 【BZOJ3211】【并查集+树状数组】花神游历各国

    Description   Input   Output 每次x=1时,每行一个整数,表示这次旅行的开心度 Sample Input 4 1 100 5 5 5 1 1 2 2 1 2 1 1 2 2 ...