Apple Watch开发入门知识,还是很有必要的

news2024/11/17 16:20:27

随着现在 Apple 生态圈的发展,越来越多的 App 会把自己的简化版从 iOS 迁移至 WatchOS(支付宝、微信、手Q、头条、QQ音乐、网易云音乐等等,都有Watch版App)。官方开发文档:Setting up a watchOS project | Apple Developer Documentation

一、Apple Watch简介

2015年3月10日,苹果在旧金山Moscone Center召开2015年春季新品发布会,正式发布了Apple WATCH,分为运动、标准、定制三版,将于2015年4月10号预售,4月24日上市。

Apple Watch支持电话,语音回短信,连接汽车,天气、航班信息,地图导航,播放音乐,测量心跳、计步等几十 种功能,是一款全方位的健康和运动追踪设备。

Apple Watch App分为两种

  • Watch App for iOS App
    从iOS迁移过来的Watch App,可与iOS App通信。
  • Watch App
    独立的Watch App,可独立安装在Apple Watch上。

大部分是第一种,Watch App for iOS App。

二、Watch App在项目中的结构

新建一个watchOS的target。

这时,会出现两个target:Watch App、Watch Extension。

三、 Apple Watch上的app特点和原理

我们从开发的角度说下Apple Watch上的app特点和原理。

Apple Watch运行模式

首先手表上app和iPhone上app是一种联动关系,即Apple Watch上的开发的app是离不开iPhone的。为什么呢,这个它的运行策略有关,手表的cpu、硬件、电量都是有限的,所以节约空间和电量是很重要的,所以手表界面设计要精简,操作比较少。

Watch app和iPhoneapp是无缝关联的,因为Watch上的app都是iPhone帮它运行的,手机和Watch离得近,靠无限传输,在一定程度上节省了Watch的很多工作量,Watch负责显示iPhone处理后的结果,这其实也是一种绑定销售策略。Watch上的app其实就是iPhone上app的一部分、一种扩展。

Apple Watch app界面类型

Watch app有三种和用户交互的方式,或者说Watch app有三种界面:

  • 常规Watch app,这个是必须的,一些简单内容的显示和简单操作,可以看成手机上的精简版;
  • glance类型的界面,是一种纯提示型的界面,是不能和用户互动的,这部分可有可无;
  • notification类型的界面,这是消息通知时用到的,手机也可以接收推送通过这种界面显示,这种是可以和用户互动的。

Watch app和iPhone app的关系

Watch app和iPhone app是一种联动关系,其实也是一个绑定关系,是一个整体,Watch app并不是一个单独的project,而是在iOS project上扩展的一个Target,Watch app上并没有代码,只有界面资源,代码是在iPhone上运行的。

在WatchOS 2 之前, WatchKit App负责展示,安装在Watch上,WatchKit Extension负责业务和控制逻辑,安装在iPhone上。所有运算、逻辑以及控制都是在iPhone上完成。Watch app和iPhone app是通过Watchkit进行桥接的,所有的代码执行逻辑方面都是在iPhone上运行的,storyboard和图片资源在Watch端显示的,并且Watch app的安装运行都是由iPhone控制的。

此外,一个iPhone每次可关联一个Apple Watch,它们是一对一的关系。目前Apple Watch只能跟iPhone设备配对,不支持iPad。

在WatchOS 2之后,最大的改变就是将WatchKit Extension 直接从iPhone 移植到AppleWatch上。

Watch app启动过程

上图是Watch app加载的一个过程,可以看出Watch app的加载是依靠iPhone来进行的,启动app,加载Watch端的storyboard和图片等资源,然后会初始化UI,这个时候就走到iPhone端扩展里的初始化方法了,初始化完了之后就是显示UI,UI中的触发的动作都是去iPhone扩展里调用代码,将执行结果显示到Watch上。

刚才提到的init方法顾名思义了,awakeWithContext:方法就是通过iPhone传递过来的信息初始化UI的,类似我们之前的viewDidLoad,willActivate就相当于之前的viewWillAppear,这样就应该好理解了。

Watch App 生命周期

iPhone上app都有各自的生命周期,那么Watch app的生命周期呢,从上图我们就可以很直观的看到,从显示UI、用户交互到app结束,每一步都和iPhone对应app的扩展密切交流

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1838909.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NPDP含金量、考试内容、报考要求、适合人群?

01.NPDP核心价值解读 NPDP认证的核心价值在于整合产品开发管理的理论与实践,包含新产品开发策略、研发流程管理、市场研究、销规划、团队管理、项目管理等等,理论体系和知识内容穿插在产品发展的全过程。 对于职场打工人来说,拥有NPDP证书证…

csrf+xss组合拳

csrfxss组合拳 一、环境搭建 靶场cms文章管理系统 二、流程开始 这是系统前端 系统管理后台 而我们要打到后台管理员的cookie,结合前端存储型的xss完全可以实现,那后端怎么被打到cookie呢,我们来从这里添加用户开始分析数据包来说明 看看…

【CT】LeetCode手撕—手撕快排

目录 题目1-思路-快排1-1 快排的核心思想快速排序算法步骤优美的调整区间 1-2 ⭐快排的实现 2- 实现⭐912. 排序数组——题解思路 3- ACM 实现 题目 原题连接:912. 排序数组 1-思路-快排 1-1 快排的核心思想 选择一个基准 基准左侧的元素都小于该元素基准右侧的元…

乾坤微服务的使用

前言: 在这里整理下用乾坤来开发微服务的一些资料。 使用好处: 使用乾坤可以实现什么效果呢?众所周知,前端的框架五花八门,react/vue/angular等各领风骚,那么如果我们有需要把不同技术栈的项目整合起来&…

为何Proteus用户争相拥抱SmartEDA?揭秘背后的强大吸引力!

在电路设计与仿真领域,Proteus一度以其稳定性能和丰富功能赢得了众多用户的青睐。然而,近年来,越来越多的Proteus用户开始转向SmartEDA,这一新兴电路仿真软件正迅速崭露头角,成为行业内的翘楚。那么,究竟是…

MySQL数据库的列类型

数值 tinyint 十分小的数据 1个字节 smallint 较小的数据 2个字节 mediumint 中等大小的数据 3个字节 int 标准的整数 4个字节(常用) bigint …

ARM架构简明教程

目录 一、ARM架构 1、RISC指令集 2、ARM架构数据类型的约定 2.1 ARM-v7架构数据类型的约定 2.2 ARM-v8架构数据类型的约定 3、CPU内部寄存器 4、特殊寄存器 4.1 SP寄存器 4.2 LR寄存器 4.3 PC寄存器 二、汇编 1、汇编指令(常用) 2、C函数的…

屏蔽房是做什么用的?为什么需要定期检测?

屏蔽房对于不了解的人来说,可能光看名字不知道是做什么的,但是对于一些企业或者机构,却是再熟悉不过的了。和名字一样,屏蔽房是对空间内的信号以及一些外界环境条件进行隔绝,在一些有特殊要求的企业机构中,…

刚刚发布!这4本期刊已剔除SCI收录,附完整目录下载

科睿唯安于6月19日更新了SCIE、SSCI、AHCI、ESCI四大数据库最新收录期刊目录。 2024年第一版——2024年1月24日更新 2024年第二版——2024年2月19日更新 2024年第三版——2024年3月18日更新 2024年第四版——2024年4月15日更新 2024年第五版——2024年5月20日更新 2024年…

疯狂买买买!你的支付环境真的安全吗?

在日常生活中,移动电话为我们带来了更多的方便。然而,我们在享受手机支付的便捷之余,也应充分认识到风险,增强防范意识,慧眼识诈。 小亿提醒:大家在购物之余,务必要注意手机支付的安全性&#…

二维码分班查询系统你还不会用?

分班查询系统,已经成为许多学校管理分班流程的得力助手。当新学期伊始,学校需要进行分班,而传统的手工分班方式不仅耗时,还容易出错。这时,一个智能的分班查询系统就显得尤为重要。 作为老师,您可能已经意识…

电脑开机黑屏怎么办?教你3招轻松解决

电脑开机黑屏是一种常见但令人沮丧的问题。无论是台式机还是笔记本电脑,用户都可能遇到这种情况,导致无法正常使用电脑。黑屏问题可能由多种原因引起,包括硬件故障、软件冲突、驱动问题等。本文将介绍电脑开机黑屏怎么办的三种方法&#xff0…

Geoserver源码解读三 GeoServerBasePage

一、概述 org.geoserver.web.GeoServerBasePage 类,在Geoserver中是所有页面类的基类,也是单独存在的一个主UI界面入口文件。拿到源码后可以在里面进行肆意的魔改,也可以单独创建一个工程写根据它扩展。下面以登录的代码作为切入点&#xff0…

CarService的构成和初始化分析

以下分析,基于安卓13的AAOS。 代码构成 packages/services/Car CarService相关代码,主要是在这个目录下 frameworks/opt/car/services 主要是carservice启动相关。 其它目录:audio_policy_configuration.xml和car_audio_configuration.xm…

<Rust><iced>基于rust使用iced构建GUI实例:如何将svg格式转为ico格式图片?

前言 本专栏是Rust实例应用。 环境配置 平台:windows 软件:vscode 语言:rust 库:iced、iced_aw 概述 本文是专栏第4篇实例,依旧是一个图像格式转换程序,基于rust的svg库resvg、图像处理库image以及文件处理库rfd。 流程是先用resvg获取svg图片的数据并将其转为png数据…

llama-factory微调chatglm3

一、定义 案例/多卡 二、实现 案例 1. 下载chatglm3-6b-32k模型 2. 配置数据集微调指令 CUDA_VISIBLE_DEVICES0,1 llamafactory-cli train \--stage sft \--do_train True \--model_name_or_path /home/chatglm3-6b-32k \--finetuning_type lora \--template chatglm3 \--d…

零基础入门学用Arduino 第四部分(三)

重要的内容写在前面: 该系列是以up主太极创客的零基础入门学用Arduino教程为基础制作的学习笔记。个人把这个教程学完之后,整体感觉是很好的,如果有条件的可以先学习一些相关课程,学起来会更加轻松,相关课程有数字电路…

nodejs爬取小红书图片

昨天的文章已经描述了可以抓取评论区内容, 抓取图片内容和抓取评论区的内容基本一致 我们可以看到接口信息中含有图片链接,我们要做的就是爬取图片链接然后下载 这边要用到的模块为const downloadrequire(download) 将爬到的图片链接存放到images数组…

STM8单片机的GPIO口介绍

本篇文章依托于stm8单片机和lora模块 目录 一、GPIO口测试相关硬件电路图 (a)USB转串口底板PA3控制LED6 (b)Lora模块底板PA3接口 (c)LED灯电路 二、参考官方例程实现GPIO口的输出 三、GPIO相关函数的了解 (1&a…

docker安装使用

文章目录 docker产生的原因传统虚拟机容器化技术 docker组成安装docker镜像加速docker安装过程中遇到的问题以及解决办法Errors during downloading metadata for repository root_:Failed to set locale, defaulting to C.UTF-8 docker产生的原因 传统虚拟机 在不使用docker…