news 2026/1/25 3:39:37

【大前端】【iOS】iOS 真实项目可落地目录结构方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【大前端】【iOS】iOS 真实项目可落地目录结构方案

一套iOS 真实项目可落地目录结构方案,包含模块拆分、命名规范、协作约束、演进路线

目标:
✅ 新人 1 天能上手
✅ 3–10 人并行开发不冲突
✅ 支持后期组件化 / Swift Package


一、真实项目推荐总目录(MVVM + 模块化)

MyApp ├── App │ ├── AppDelegate.swift │ ├── SceneDelegate.swift │ ├── AppCoordinator.swift │ ├── AppConfig.swift │ └── Environment.swift │ ├── Modules # 业务模块(核心) │ ├── Home │ │ ├── HomeViewController.swift │ │ ├── HomeViewModel.swift │ │ ├── HomeModel.swift │ │ ├── HomeService.swift │ │ ├── HomeCoordinator.swift │ │ └── HomeContracts.swift │ │ │ ├── Login │ ├── Profile │ └── Settings │ ├── Base │ ├── BaseViewController.swift │ ├── BaseViewModel.swift │ ├── BaseTableViewCell.swift │ └── BaseCollectionViewCell.swift │ ├── Components # 通用 UI 组件 │ ├── Alert │ │ ├── AlertView.swift │ │ └── AlertConfig.swift │ │ │ ├── Loading │ └── EmptyState │ ├── Network │ ├── API │ │ ├── UserAPI.swift │ │ └── HomeAPI.swift │ │ │ ├── NetworkManager.swift │ ├── Request.swift │ ├── Response.swift │ └── NetworkError.swift │ ├── Storage │ ├── KeychainManager.swift │ ├── UserDefaultsStore.swift │ └── CacheManager.swift │ ├── Utils │ ├── Extensions │ │ ├── UIView+Layout.swift │ │ ├── String+Safe.swift │ │ └── UIColor+Hex.swift │ │ │ ├── Logger.swift │ └── Constants.swift │ ├── Resources (Folder Reference) │ ├── Assets.xcassets │ ├── Fonts │ ├── Localizable │ │ ├── zh-Hans.strings │ │ └── en.strings │ └── LaunchScreen.storyboard │ └── SupportingFiles ├── Info.plist └── PrivacyInfo.xcprivacy

二、模块内部「真实写法」详解(重点)

1️⃣ Home 模块拆解(真实项目)

Home ├── HomeViewController.swift # 只负责 UI & 事件 ├── HomeViewModel.swift # 状态、业务逻辑 ├── HomeModel.swift # 数据结构 ├── HomeService.swift # 网络 / 本地数据 ├── HomeCoordinator.swift # 页面跳转 └── HomeContracts.swift # 协议定义

职责边界(避免后期失控)

文件只允许做什么
VC渲染 UI、绑定 ViewModel
VM业务逻辑、状态管理
ServiceAPI / DB / Cache
Modelstruct / enum
Coordinatorpush / present
Contractsprotocol

👉绝不允许:

  • VC 里写网络请求

  • ViewModel 里 push 页面

  • Base 引入业务判断


三、命名规范(落地必备)

1️⃣ 文件命名

模块名 + 职责 HomeViewController HomeViewModel HomeService

2️⃣ 协议命名(面试 & 架构感)

protocol HomeViewModelInput protocol HomeViewModelOutput protocol HomeServiceProtocol

四、真实项目协作规则(非常重要)

1️⃣ 模块自治原则

  • 模块不允许互相 import

  • 只能通过:

    • Protocol

    • Coordinator

    • 公共组件

2️⃣ Git 冲突最小化

  • 每人一个模块

  • 不共享 VC

  • 公共修改走 PR


五、网络层真实封装示例

enum HomeAPI { case list } extension HomeAPI: APIProtocol { var path: String { "/home/list" } var method: HTTPMethod { .get } }
final class HomeService { func fetchList() async throws -> [HomeModel] { try await NetworkManager.request(HomeAPI.list) } }

六、Base & Components 的边界(真实踩坑总结)

Base 只做三件事:

  • 生命周期兜底

  • 通用能力(loading、toast)

  • 统一风格

Components:

  • 独立展示

  • 可单独测试

  • 可拆成 Pod / SPM


七、从单体到组件化的演进路线

阶段 1:单工程模块化

Modules/Home Modules/Login

阶段 2:内部组件化

Components/Alert Components/Loading

阶段 3:Swift Package

MyApp ├── Packages │ ├── HomeModule │ ├── NetworkKit │ └── UIComponents

👉目录设计不变,迁移成本极低


八、真实项目「一页总结版」

iOS 真实项目目录落地三原则:

  1. 业务一定进 Modules

  2. Base 只放能力,不放业务

  3. 能拆的迟早都会拆

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/23 23:04:40

恶臭异味检测仪:金叶仪器实现异味精准识别与数据化管理

在当今社会,随着工业发展和城市化的推进,恶臭异味问题逐渐成为影响生活质量和环境健康的重要因素。恶臭气体通常来源于工业生产、污水处理、垃圾处理等多个领域,其不仅带来不适感,还可能对周边生态系统和人体健康产生潜在影响。因…

作者头像 李华
网站建设 2026/1/23 17:26:57

25年计算机专业大学生就业困难?不妨看看网络安全行业?

人才需求很明显的导致薪酬水平的变化。数据显示,网络安全领域的薪酬近年来稳步增长,2021年上半年,网络安全领域的平均招聘薪酬达到22387元/月,较去年同期提高了4.85%,相较于全行业的平均工资偏高。 很多公司希望通过招…

作者头像 李华
网站建设 2026/1/25 18:18:52

警惕!亚马逊新评级规则生效,粗放运营将直接出局

随着亚马逊对卖家账户评级体系的系统性重构,跨境卖家们正在经历一场深刻的运营逻辑变革,平台不再仅关心订单是否被妥投,而是将评估的目光穿透到店铺的每一个角落——从一张产品图片到一条客服回复,从包装的材质到碳足迹的追踪&…

作者头像 李华
网站建设 2026/1/23 17:27:29

串口查询方式发送/接收

HAL_UART_Transmit(&huart1,str,strlen(str),1000);参数:串口,要发送的字符数据,字符长度,等待时间HAL_UART_Receive(&huart1,&c,1,100);参数:串口种类,读取的数据保存到哪里,读取了…

作者头像 李华
网站建设 2026/1/24 17:11:44

Vim插件管理革命:VAM让你的编辑器告别插件混乱

Vim插件管理革命:VAM让你的编辑器告别插件混乱 【免费下载链接】vim-addon-manager manage and install vim plugins (including their dependencies) in a sane way. If you have any trouble contact me. Usually I reply within 24 hours 项目地址: https://gi…

作者头像 李华
网站建设 2026/1/25 21:12:45

AI攻防实战:利用AI攻击链框架剖析AI应用安全

利用AI攻击链框架对AI应用进行攻击建模 AI应用引入了传统安全模型无法完全捕捉的新攻击面,尤其是随着这些智能系统自主性的增强。不断演变的攻击面的指导原则很明确:假设存在提示词注入。但将其转化为有效的防御措施通常并不简单。 网络攻击链安全框架…

作者头像 李华