当前位置: 首页 > 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…...

DazToBlender:3D创作工作流的无缝桥梁

DazToBlender:3D创作工作流的无缝桥梁 【免费下载链接】DazToBlender Daz to Blender Bridge 项目地址: https://gitcode.com/gh_mirrors/da/DazToBlender 在3D数字创作的世界里,艺术家们常常面临一个现实困境:如何在不同的专业软件之…...

网络安全自学顺序|千万不要搞反了

网络安全自学顺序|千万不要搞反了 想入行网络安全?别瞎学!这帮你少走半年弯路👇 从0到1进阶路径(按顺序学): 1.计算机网络基础(TCP/IP、OSI模型) 2.Linux系统与命令行…...

拆解Autosar NM报文:从0x600到0x6FF,手把手教你读懂CAN网络里的‘心跳包’

Autosar网络管理报文深度解析:从0x600到0x6FF的实战指南 当你第一次打开主机厂的网络管理规范文档,看到满屏的十六进制地址和比特位定义时,是否感到一头雾水?本文将化身你的"技术显微镜",带你逐字节拆解Auto…...

QMCDecode:3步解锁QQ音乐加密音频的终极macOS工具

QMCDecode:3步解锁QQ音乐加密音频的终极macOS工具 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,默认转换结…...

AI模型的持续优化:从A/B测试到在线学习

AI模型的持续优化:从A/B测试到在线学习 前言 我们的 AI 产品上线后,我以为模型训练一次就能一直用。但现实告诉我:AI 模型需要持续优化,就像养孩子一样,需要不断培养。 从最初的版本到现在,我们的模型经…...

书匠策AI到底有多懂毕业生?一个论文小白的“开挂“实录,看完你也想试!

嗨,各位正在为毕业论文头秃的宝子们!👋 我是你们的论文科普搭子,今天不讲枯燥的写作技巧,直接给大家安利一个我最近发现的"宝藏神器"——书匠策AI( 官网直达:www.shujiangce.com&…...

Qt5 super module多媒体模块详解:音频、视频、3D图形处理技术

Qt5 super module多媒体模块详解:音频、视频、3D图形处理技术 【免费下载链接】qt5 Qt5 super module 项目地址: https://gitcode.com/gh_mirrors/qt/qt5 Qt5 super module是一个功能强大的跨平台应用开发框架,其中的多媒体模块为开发者提供了全面…...

Windows Defender移除终极指南:如何彻底禁用微软安全组件提升系统性能30%

Windows Defender移除终极指南:如何彻底禁用微软安全组件提升系统性能30% 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.…...

stm32F103C8T6标准库定时器应用流水灯1——相关的寄存器

目录1.SysTick介绍2.芯片架构2.1 M3系统架构图3.SysTick使用4.readme5.定时器中断配置5.1 core_cm3.h文件5.1.1 函数头注释部分5.1.2 函数名5.1.3 判断重装值是否超过 24 位5.1.4 设置重装载寄存器5.1.5 设置中断优先级5.1.6 清空当前计数器5.1.7 配置 CTRL 寄存器(…...

抖音无水印批量下载终极指南:douyin-downloader免费神器

抖音无水印批量下载终极指南:douyin-downloader免费神器 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback sup…...