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
-
新建iwatch Target,File -> New -> Target,选择watchos,点击application App,进入Next
-
然后输入iWatchFeelfit target名称,选择基于Feelfit app创建的iwatch app,最后点击finish,然后回弹出一个激活弹窗,点击Active完成iwatch的target的创建
-
创建完成后,项目结构会在左边多出一个文件夹,target页对应新增,对于
注意:使用xcode14创建的iwatch app,默认使用的swiftUI,创建时没有选择使用swiftUI或者storayboard的选项
2、修改项目相关配置
-
重命名Assets.xcassets文件名,修改为iWatchFeelfit.xcassets(建议命名规则:iwatch[appName].xcassets,为了和IOS的appIcon区分)
-
General,修改对应watch app名称、版本号,watchos最低支持版本为8.5,选择appIcon
-
SIgning & Capabilities,修改debug、fir、rc、release对应的包名和开发者团队配置
-
修改选择appicon时,开始遇到选择不生效问题,去build setting,手动修改appicon的设置,就生效了
-
添加pod,修改podfile文件,添加新增tag的pod文件支持,然后重新执行pod install
-
最后选择watch app编译成功,并且使用模拟器watch,运行成功