当前位置: 首页 > news >正文

iWatch框架设计

iWatch框架设计

一、项目框架结构设计

1、项目文件介绍

在这里插入图片描述

  • OverSeaProject:是IOS相关文件文件内容
  • iWatchApp和iWatch Extension:是之前使用xcode14之前的xcode创建的360 app的Watch App,产生的文件结构,包含一个app和Extension的target,主要开发相关的内容在Extension里面
    在这里插入图片描述
  • iWatchFeelfit Watch App:是使用xcode14基于Feelfit创建的Watch App,产生的文件结构只包含一个文件夹和一个target(这是xcode的一个更新优化)
    在这里插入图片描述

2、iWatch文件介绍

在这里插入图片描述

  • iWatchFeelfitApp.swift:Watch app启动文件入口,类似AppDelegate.swift
  • ContentView.swift: Watch app启动显示的根视图,相当于IOS中的跟控制器,在生命周期入口文件中调用
  • iWatchFeel-Assets.xcassets:设置Watch app的Icon以及图标

3、多Watch app创建时,文件目录

以后创建的Watch app都将是以下文件格式,360的手表因为是之前创建的不可修改
在这里插入图片描述

4、框架设计

因为公司软件是由客户定制,跟IOS App一样,大部分功能一样,小部分差异化的功能做定制,所以项目框架设计:
在这里插入图片描述

  • 最外层创建一个文件目录包裹,命令为OverSeaWatchProject,该文件目录包含所有Watch相关内容
  • 新建一个watch app target,默认的目录跟OverSeaWatchProject同层级,所以当创建一个watch app后,我们需要手动移动文件夹到OverSeaWatchProject里面去统一管理,也就是上面截图的层级关系
  • [WatchCommon]公共功能文件夹:统一存放在WatchCommon文件目录中,Watch app功能相关代码文件,这里子文件统一加了Watch前缀,便于与iOS项目中的命名区分
    • WatchUtils:公共工具类
    • WatchConstant:公共常量类
    • WatchModel:模型类
    • WatchView:页面类
    • WatchBle:蓝牙类
    • WatchJSBridge:与手机通讯类
  • [iWatchFeelfit Watch App] 差异化文件:存放iWatchFeelfitApp.swift、ContentView.swift、iWatchFeelfit-Assets.xcassets等跟随app相关的文件

5、Watchos最低支持版本

因为现在基本要求使用xcode14开发并大打包上传appstore,开发者的电脑几乎都是使用xcode14,使用xcode14创建的Watch app,默认使用swiftUI的编码方式,其框架最低要求支持Watchos 7.0
在这里插入图片描述

6、iPhone和iWatch通讯、iWatch数据存储

1、使用WatchConnectivity框架,进行iPhone与iWatch之间数据通讯,使用封装组件QNWatchBridge
2、数据存储,优化为使用WCDB数据库存储绑定设备、测量数据、用户信息等数据,之前使用UserDefaults

二、新建一个iwatch操作流程

1、新增iwatch target

  1. 新建iwatch Target,File -> New -> Target,选择watchos,点击application App,进入Next
    在这里插入图片描述
    在这里插入图片描述

  2. 然后输入iWatchFeelfit target名称,选择基于Feelfit app创建的iwatch app,最后点击finish,然后回弹出一个激活弹窗,点击Active完成iwatch的target的创建
    在这里插入图片描述
    在这里插入图片描述

  3. 创建完成后,项目结构会在左边多出一个文件夹,target页对应新增,对于
    在这里插入图片描述

注意:使用xcode14创建的iwatch app,默认使用的swiftUI,创建时没有选择使用swiftUI或者storayboard的选项

2、修改项目相关配置

  1. 重命名Assets.xcassets文件名,修改为iWatchFeelfit.xcassets(建议命名规则:iwatch[appName].xcassets,为了和IOS的appIcon区分)

  2. General,修改对应watch app名称、版本号,watchos最低支持版本为8.5,选择appIcon
    在这里插入图片描述

  3. SIgning & Capabilities,修改debug、fir、rc、release对应的包名和开发者团队配置
    在这里插入图片描述

  4. 修改选择appicon时,开始遇到选择不生效问题,去build setting,手动修改appicon的设置,就生效了
    在这里插入图片描述

  5. 添加pod,修改podfile文件,添加新增tag的pod文件支持,然后重新执行pod install
    在这里插入图片描述

  6. 最后选择watch app编译成功,并且使用模拟器watch,运行成功
    在这里插入图片描述
    在这里插入图片描述

相关文章:

iWatch框架设计

iWatch框架设计 一、项目框架结构设计 1、项目文件介绍 OverSeaProject:是IOS相关文件文件内容iWatchApp和iWatch Extension:是之前使用xcode14之前的xcode创建的360 app的Watch App,产生的文件结构,包含一个app和Extension的ta…...

【python】读取.dat格式文件

import binascii# 打开二进制文件以只读二进制模式 with open(EXCEL/文件.dat, rb) as file:binary_data file.read()print(binary_data)# 将二进制数据转换为十六进制字符串 hex_data binascii.hexlify(binary_data).decode(utf-8) # binary_data 现在包含了文件的二进制内容…...

机器学习课后习题 --- 朴素贝叶斯

(一)单选题 1.假设会开车的本科生比例是15%,会开车的研究生比例是23%。若在某大学研究生占学生比例是20%,则会开车的学生是研究生的概率是多少? A:80%B:16.6% C:23% D:15% 2.下列关于朴素贝叶斯的特点说法错误的是…...

【设备树笔记整理7】实践操作

1 使用设备树给DM9000网卡_触摸屏指定中断 1.1 修改方法 根据设备节点的compatible属性,在驱动程序中构造/注册 platform_driver,在 platform_driver 的 probe 函数中获得中断资源。 1.2 实验方法 以下是修改好的代码:第6课第1节_网卡_触摸…...

使用VisualStudio制作上位机(六)

文章目录 使用VisualStudio制作上位机(六)第五部分:应用程序打包第一步:勾选为Release模式第二步:生成解决方案第三步:将我们额外添加的文件放入到Release这个文件夹里 使用VisualStudio制作上位机&#xf…...

包管理工具--》npm的配置及使用(一)

目录 🌟概念 🌟背景 🌟前端包管理器 🌟包的安装 本地安装 全局安装 🌟包配置 配置文件 保存依赖关系 🌟包的使用 🌟写在最后 🌟概念 模块(module&#xff09…...

期货基础知识

一、期货是什么?  期货是与现货相对应,并由现货衍生而来。期货通常指期货合约,期货与现货完全不同,现货是实实在在可以交易的货(商品),期货主要不是货,而是以某种大众产品如棉花、大…...

NC后端扩展开发

前言 在日常的工作中,会遇到各种各样的需要进行扩展开发的需求,可以使用系统预留的扩展开发机制来实现,避免修改源码。因NC产品已迭代至BIP版本,所以前端扩展方式就再进行不赘述了,本文主要介绍后端扩展开发方式&…...

nginx vue2+webpack 和 vue3+vite 配置二级目录访问

我们开发中会遇到这样的需求,让我们用服务器nginx部署一个用域名的二级目录来访问项目 https:xxx/二级目录/来放访问项目 目录 思路 1、nginx配置(vue2 和 vue3配置的nginx相同) 2、vue2webpack的配置 (1&#xff0…...

无需租云服务器,Linux本地搭建web服务,并内网穿透发布公网访问

文章目录 前言1. 本地搭建web站点2. 测试局域网访问3. 公开本地web网站3.1 安装cpolar内网穿透3.2 创建http隧道,指向本地80端口3.3 配置后台服务 4. 配置固定二级子域名5. 测试使用固定二级子域名访问本地web站点 前言 在web项目中,部署的web站点需要被外部访问,则…...

算法leetcode|76. 最小覆盖子串(rust重拳出击)

文章目录 76. 最小覆盖子串:样例 1:样例 2:样例 3:提示:进阶: 分析:在这里插入图片描述 题解:rust:go:c:python:java: 76.…...

如何让你的jupyter notebook 排版得像Word(Markdown和网页文件写法)

案例背景 很多时候我们在jupyter notebook里面的写代码,画图,但是文字分析什么的写在里面纯文本不好看,需要进行排版,那么就得用markdown的写法,如何还想居中或者更花里胡哨的字体,那就得要网页文件的一些…...

AndroidTV端:酒店扫码认证投屏DLNA

被老板叼了几次了,最近实在忍不了,准备离职; 但是担心离职后长时间没有办法找到工作 就想贡献一套平时琢磨出来的程序,请各位有能力的话带我熬过这凛冽的寒冬。 目前写出来的,有三个端:安卓TV端&#xf…...

基于PyTorch的交通标志目标检测系统

一、开发环境 Windows 10PyCharm 2021.3.2Python 3.7PyTorch 1.7.0 二、制作交通标志数据集,如下图 三、配置好数据集的地址,然后开始训练 python train.py --data traffic_data.yaml --cfg traffic_yolov5s.yaml --weights pretrained/yolov5s.pt --e…...

feign调用失败 feign.RetryableException: xxx-service executing GET http://xxx/test

一。 问题引入 升级springcloud的版本后 突然发现 以前正常的feign调用也报错了 升级后的各组件版本如下 spring cloud 2021.0.5 spring cloud alibaba 2021.0.5.0 spring boot 2.6.13 错误日志如下 feign.RetryableException: xxx-service executing GET http://xxx-servic…...

mysql 用户管理

目录 用户 创建用户 删除用户 修改密码 权限管理 赋权 查看权限 插销权限 总结 用户 mysql 的用户都存在于系统数据库 mysql 的user 表中 mysql> show tables; --------------------------- | Tables_in_mysql | --------------------------- | column…...

pyinstaller打包exe运行闪退

这里写自定义目录标题 前言问题描述解决过程 前言 闪退原因可能有很多,这里记录下我遇到的问题,简单来说是dll调用错误导致的闪退,因为我的python用的是32位的,但是pyinstaller却是64位的,属于用conda的时候没注意。 …...

ARM 汇编基础知识

1.为什么学习汇编? 我们在进行嵌入式 Linux 开发的时候是绝对要掌握基本的 ARM 汇编,因为 Cortex-A 芯片一 上电 SP 指针还没初始化, C 环境还没准备好,所以肯定不能运行 C 代码,必须先用汇编语言设置好 C 环境…...

CRM 自动化如何改善销售和客户服务?

许多 B2B 和 B2C 公司都使用 CRM 系统来组织业务流程,使复杂的任务更容易完成。企业可以使用 CRM 自动化来自动化工作流程,让团队有更多的时间来执行高价值的任务,而不是陷于一堆琐碎事情中。 什么是CRM自动化? CRM 自动化是指 C…...

Bean 的六种作用域

目录 一、作用域是什么? 1、singleton(单例作用域) 2、prototype(原型作用域) 3、request(请求作用域) 4、session(回话作用域) 5、application(全局作用域&a…...

go语言--锁

锁的基础,go的锁是构建在原子操作和信号锁之上的 原子锁 原子包实现协程的对同一个数据的操作,可以实现原子操作,只能用于简单变量的简单操作,可以把多个操作变成一个操作 sema锁 也叫信号量锁/信号锁 核心是一个uint32值&#…...

再见,CSDN

从我2018年1月31日加入CSDN,到现在已经5年多的时间了。在这5年里,陆陆续续在CSDN上发布了很多论文阅读笔记、教程、技术文章等等,记录了我从大四到研究生再到工作这段时间的学习和成长轨迹。 我一直有备份个人资料的习惯,尤其是耗…...

MySQL总复习

目录 登录 显示数据库 创建数据库 删除数据库 使用数据库 创建表 添加数据表数据 查询表 添加数据表多条数据 查询表中某数据 增insert 删delete 改update 查select ​ where like ​编辑 范围查找 order by 聚合函数 count max min sum avg g…...

桌面平台层安全随手记录

声明 本文是学习桌面云安全技术要求. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 桌面平台层安全 桌面接入安全 用户标识 一般要求 本项要求包括: a) 系统应为用户提供唯一的身份标识,同时将用户的身份标识与该用户的所…...

【Docker】 08-Dockerfile

什么是Dockerfile Dockerfile可以认为是Docker镜像的描述文件,是由一系列命令和参数构成的教程,主要作用是用来构建docker镜像的构建文件。 Dockerfile解析过程 Dockerfile的保留命令 保留字作用FROM当前镜像是基于哪个镜像的 第一个指令必须是FROMMA…...

【二等奖方案】大规模金融图数据中异常风险行为模式挖掘赛题「Aries」解题思路

第十届CCF大数据与计算智能大赛(2022 CCF BDCI)已圆满结束,大赛官方竞赛平台DataFountain(简称DF平台)正在陆续释出各赛题获奖队伍的方案思路,欢迎广大数据科学家交流讨论。 本方案为【大规模金融图数据中…...

Github 下载指定文件夹(git sparse-checkout)

比如要下载这里的 data_utils 步骤 1、新建空文件夹,并进入新建的空文件夹。 2、git init 初始化 3、git remote add origin 添加远程仓库 4、git config core.sparsecheckout true 允许稀疏检出 5、git sparse-checkout set 设置需要拉取的文件夹(可…...

蚂蚁集团SQLess 开源,与内部版有何区别?

当我们使用关系型数据库时,SQL 是联系起用户和数据库的一座桥梁。 SQL 是一种高度非过程化的语言,当我们在编写SQL 时,表达的是想要什么数据,而不是怎么获取数据。因此,我们往往更关心SQL 有没有满足业务逻辑&#xff…...

An Efficient Memory-Augmented Transformer for Knowledge-Intensive NLP Tasks

本文是LLM系列文章,针对《An Efficient Memory-Augmented Transformer for Knowledge 一种用于知识密集型NLP任务的高效内存增强转换器 摘要1 引言2 相关工作3 高效内存增强Transformer4 EMAT的训练流程5 实验6 分析7 结论局限性 摘要 获取外部知识对于许多自然语言…...

Java项目中jar war pom包的区别

1、pom&#xff1a;用在父级工程或聚合工程中&#xff0c;用来做jar包的版本控制&#xff0c;必须指明这个聚合工程的打包方式为pom。 <project ...> <modelVersion>4.0.0</modelVersion> <groupId>com.wong.tech</groupId> <artifactI…...

织梦做的网站后台怎么进/实体店怎么引流推广

最近做城市天气相关的项目&#xff0c;找到一些资源给大家分享一下。 <?xml version"1.0" encoding"UTF-8"?><China><province id"01" name"北京"><city id"0101" name"北京"><cou…...

wordpress登陆账号/网络舆情管控

当前位置:我的异常网 Java Web开发 急java调用WPS或pdfcreator的com接口实现doc转pdf解急java调用WPS或pdfcreator的com接口实现doc转pdf解决方法(2)www.myexceptions.net 网友分享于&#xff1a;2014-01-22 浏览&#xff1a;12次private ActiveXComponent pdfCreator;priva…...

wordpress商城网站/点击进入官方网站

Java面试应该知道之深入理解Java的接口和抽象类 转载&#xff1a;https://mp.weixin.qq.com/s/hciO815os-gfxW4Oa15ErA 转载理由&#xff1a;温习下理论...

pluto wordpress/北大青鸟培训机构靠谱吗

经常使用EasyNVR产品的用户都知道&#xff0c;作为音视频行业互联网直播产品&#xff0c;EasyNVR主要功能在于通过RTSP/ONVIF协议&#xff0c;接入前端音视频采集设备&#xff0c;通过EasyNVR软硬件产品将拉取过来的音视频流转化给适合全平台播放的RTMP、HTTP-FLV、HLS格式&…...

制定一网站建设的市场定位的方案/成都网络营销推广公司

开始运行eclipse时logo上有&#xff0c;进入eclipse后在菜单栏help中点击about eclipse sdk也可以看到当前eclipse版本。 jdk版本就是你自己安装的jdk版本咯&#xff0c;或者随便点一个项目&#xff0c;右键&#xff0c;点properties&#xff0c;再点project facets&#xff0…...

做谷歌网站使用什么统计代码/网站推广公司大家好

导读&#xff1a;本文主要介绍 CentOS 系统二进制安装 MySQL 5.7.23 版本的安装步骤&#xff0c;其他版本安装过程相似。1.前置准备卸载旧版MySQL查看rpm包rpm -qa|grep mysql 若有可用rpm -e卸载查找mysql残留包&#xff0c;有则删除&#xff0c;没有则忽略find / -name mysql…...