(注:尊重劳动成果,转载请注明出处 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. Driving the Activity Lifecycle

    Before Robolectric 2.2, most tests created Activities by calling constructors directly, (new MyActiv ...

  2. htmlentities() 函数

    Definition and Usage定义和用法 The htmlentities() function converts characters to HTML entities.htmlentit ...

  3. SPFA 小优化*2

    /* bzoj 2763 SPFA小优化 循环队列+SLF 顺面改掉自己之前手打qeueu的坏毛病*/ #include<iostream> #include<cstring> ...

  4. js的MVC结构设计

    基于jquery的Deferred,设计出如下MVC架构. 模型model interface.js interface: function(userid){ var dtd = $.Deferred ...

  5. producer怎样发送消息到指定的partitions

    http://www.aboutyun.com/thread-9906-1-1.html http://my.oschina.net/u/591402/blog/152837 https://gith ...

  6. 分享一个nodejs写的小论坛

    引言:作为一个前端小菜鸟,最近迷上了node,于是乎空闲时间,为了练练手写了一个node的小社区,关于微信小程序的,欢迎大家批评指导. 项目架构部分 一.前端架构 作为一个写样式也得无聊的前端狮,我偷 ...

  7. 继承语法含有main()方法

    package me.ybleeho; class Cleanser{ //清洁剂 private String s="Cleanser"; public void append( ...

  8. TCP/UDP基本概念部分

    最近在读<Unix网络编程>和<TCP/IP详解>两本书,有了一些自己的心得与体会,总结下其中典型的问题. 1. 为什么建立连接需要三次握手? 谢希仁的<计算机网络> ...

  9. 【vc】14_网络编程_socket编程

    1.计算机网络基本知识 最简单的网络程序如图: 提示:IP地址就相当于一个公司的总机号码,端口号就相当于分机号码.在打电话时,拨通总机后,还需要转到分机上. (1)协议 ·为进行网络中的数据交换(通信 ...

  10. 【HDU2815】【拓展BSGS】Mod Tree

    Problem Description   The picture indicates a tree, every node has 2 children.  The depth of the nod ...