iWatch框架设计

news2024/10/6 8:27:44

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,运行成功
    在这里插入图片描述
    在这里插入图片描述

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

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

相关文章

leetcode 1609.奇偶树

⭐️ 题目描述 🌟 leetcode链接:奇偶树 思路: 树的层序遍历,用队列辅助。用一个变量记录当前是多少层,以及当前层的节点个数,依次遍历,因为需要判断当前层是否严格递增或递减,如果正…

突破销售瓶颈:亚马逊卖家如何借力TikTok网红营销?

随着社交媒体的崛起,营销方式也在不断变革。TikTok作为一款风靡全球的短视频平台,吸引了数以亿计的用户,成为了品牌宣传和销售的新热点。对于亚马逊卖家而言,通过合理运用TikTok网红营销策略,可以有效提升产品的曝光度…

微信最新更新隐私策略(2023-08-15)

1、manifest.json 配置修改 在mp-weixin: 参数修改&#xff08;没有就添加&#xff09; "__usePrivacyCheck__": true, ***2、注意 微信开发者工具调整 不然一直报错 找不到 getPrivacySetting 废话不多说 上代码 3、 编辑首页 或者用户授权界面 <uni-popup…

无涯教程-JavaScript - DMAX函数

描述 DMAX函数返回列表或数据库中符合您指定条件的列中的最大数字。 语法 DMAX (database, field, criteria)争论 Argument描述Required/Optionaldatabase 组成列表或数据库的单元格范围。 数据库是相关数据的列表,其中相关信息的行是记录,数据的列是字段。列表的第一行包含…

GPT-5继续秘密训练中!ChatGPT开学大礼包

&#x1f989; AI新闻 &#x1f680; GPT-5继续秘密训练中&#xff01;DeepMind联合创始人披露了未来模型的规模增长 摘要&#xff1a;DeepMind联合创始人在采访中透露&#xff0c;OpenAI正在秘密训练GPT-5&#xff0c;未来3年&#xff0c;Inflection模型将比现在的GPT-4大10…

Python While 循环语句

Python 编程中 while 语句用于循环执行程序&#xff0c;即在某条件下&#xff0c;循环执行某段程序&#xff0c;以处理需要重复处理的相同任务。其基本形式为&#xff1a; while 判断条件(condition)&#xff1a;执行语句(statements)…… 执行语句可以是单个语句或语句块。判…

BL110设备支持Modbus TCP协议接入

随着物联网技术的不断发展&#xff0c;越来越多的工业设备被连接到云平台上&#xff0c;以实现远程监控和管理。在这篇文章中&#xff0c;我们将介绍如何方便用户快速把多种工业设备接入几个主流的云平台&#xff0c;如华为云 IoT、AWS IoT、阿里云 IoT、ThingsBoard、金鸽云等…

【多线程案例】线程池的应用及实现

文章目录 1. 什么是线程池&#xff1f;2. 线程池的应用3. 自己实现线程池 1. 什么是线程池&#xff1f; 线程池就相当于一个池子&#xff0c;里面有很多的创建好的线程&#xff0c;可以进行统一的管理。当我们使用线程的时候&#xff0c;直接从里面调取&#xff0c;而不用在频繁…

如何将Word转成PDF?试一下这个转换方法

Word转成PDF是现代办公中常见的需求&#xff0c;它可以确保文件的格式和内容在不同平台上保持一致&#xff0c;并且更加方便共享和打印。在这个数字化时代&#xff0c;我们经常需要将Word文档转换为PDF格式&#xff0c;无论是个人用户还是商务用户都会遇到这样的需求。那么如何…

接口自动化测试中如何对xml 格式做断言验证?

在服务端自动化测试过程中&#xff0c;发起请求之后还需要对响应值进行验证&#xff0c;验证响应信息符合预期值之后&#xff0c;这一条接口自动化测试用例才算完整的通过。所以这一章节&#xff0c;将会讲解在接口自动化测试中&#xff0c;是如何对服务端返回的 XML 格式响应内…

4个维度讲透ChatGPT技术原理,揭开ChatGPT神秘技术黑盒【文末送书】

文章目录 写在前面1.Tansformer架构模型2. ChatGPT原理3. 提示学习与大模型能力的涌现4. 行业参考建议写作末尾 写在前面 2022年11月30日&#xff0c;ChatGPT模型问世后&#xff0c;立刻在全球范围内掀起了轩然大波。无论AI从业者还是非从业者&#xff0c;都在热议ChatGPT极具…

一种基于Python的自定义日志解析的实践方法

需求说明&#xff1a; 从如下的日志文件里解析出如下字段&#xff1a; 参数名&#xff1a;教育程度 左值&#xff1a;60 右值&#xff1a;90 表达式&#xff1a;等于 结果&#xff1a;不满足 解决方法&#xff1a; Step1: 因为原始日志来源于网页&#xff0c;这里真正的…

前端加密方式

前端加密 1.不可逆加密2.可逆加密a.对称加密b.非对称加密&#xff08;本文重点&#xff09;a.含义&#xff1a;b.过程理解&#xff1a;c.项目中使用&#xff1a; 总结&#xff1a;参考地址 目前搜索前端加密是可以看到有非常非常多的方法的&#xff0c;这里我们需要对其分类总结…

设计模式-9--迭代器模式(Iterator Pattern)

一、什么是迭代器模式 迭代器模式&#xff08;Iterator Pattern&#xff09;是一种行为型设计模式&#xff0c;用于提供一种统一的方式来访问一个聚合对象中的各个元素&#xff0c;而不需要暴露该聚合对象的内部结构。迭代器模式将遍历集合的责任从集合对象中分离出来&#xf…

睿思BI实现杜邦分析

杜邦分析法&#xff08;DuPont analysis&#xff09;是一种分析企业财务状况的方法&#xff0c;得名于美国杜邦公司。该方法可以应用于销售业绩分析。 睿思BI实现杜邦分析效果如下&#xff1a; 效果演示地址&#xff1a;https://www.ruisitech.com/rsbi-ultimate/#/dashboard/…

Hook技术

Hook 英文直译是“钩子”的意思&#xff0c;在程序中将其理解为“劫持”更好理解&#xff0c;意思是&#xff0c;通过 Hook 技术来劫持某个对象&#xff0c;从而控制它与其它对象的交互。 Hook 技术是一种用于改变 API 执行结果的技术&#xff0c;Android 系统中有一套自己的事…

架构设计基础设施保障IaaS存储

目录 1. 云硬盘2. 对象存储3. 表单上传案例4. 服务上传验证5. 云数据库6. 云数据库操作7. 服务连接云数据库8. 新一代原生数据库9 阿里云PolarDB生产最佳实践 1. 云硬盘 HDD&#xff08;普通云盘&#xff09; 特征&#xff1a; 性能一般&#xff0c; IOPS大概在数百左右。 应…

iPhone 15 Pro展示设计:7项全新变化呈现

我们不应该再等iPhone 15 Pro在苹果9月12日的“Wonderlust”活动上发布了&#xff0c;而且可能会有很多升级。有传言称&#xff0c;iPhone 15 Pro将是自iPhone X以来最大的飞跃&#xff0c;这要归功于大量的新变化&#xff0c;从带有更薄边框的新钛框架到顶级A17仿生芯片和动作…

通过Siri打造智能爬虫助手:捕获与解析结构化数据

在信息时代&#xff0c;我们经常需要从互联网上获取大量的结构化数据。然而&#xff0c;传统的网络爬虫往往需要编写复杂代码和规则来实现数据采集和解析。如今&#xff0c;在苹果公司提供的语音助手Siri中有一个强大功能可以帮助我们轻松完成这项任务——通过使用自定义指令、…

micro python 编译流程和方法,以及一部分问题解决

micro python官网 https://micropython.org/ 点击 点击对应的芯片&#xff0c;我这里是ESP32-S3 点击到git 到esp32目录下 按照指引下载安装ESP-IDF IDF版本查看连接如下&#xff1a; https://docs.espressif.com/projects/esp-idf/en/latest/esp32/versions.html 我这里选择…