Skip to content

Latest commit

 

History

History
243 lines (191 loc) · 7.53 KB

File metadata and controls

243 lines (191 loc) · 7.53 KB

CoreScaffold

一个基于 Swift UIKit 的 iOS 应用脚手架项目,提供了完整的项目架构和常用功能模块。

📱 项目概述

CoreScaffold 是一个现代化的 iOS 应用开发脚手架,采用 Swift UIKit 框架构建,集成了常用的第三方库和最佳实践,帮助开发者快速启动新项目。

🏗️ 技术栈

核心框架

  • Swift UIKit - 主要 UI 框架
  • Core Data - 本地数据持久化
  • Keychain Services - 敏感数据存储
  • Apple Push Notification Service - 推送通知
  • Localizable.strings - 多语言本地化

第三方依赖

CocoaPods

pod 'Moya', '15.0'                    # 网络请求封装
pod 'SnapKit'                         # 自动布局
pod 'MJRefresh'                       # 下拉刷新
pod 'Kingfisher'                      # 图片缓存
pod 'MotionToastView'                 # Toast 提示
pod 'IQKeyboardManagerSwift'          # 键盘管理
pod 'UIImageColors'                   # 图片颜色提取
pod 'SkeletonView'                    # 骨架屏
pod 'Gradients'                       # 渐变效果
pod 'SpreadsheetView'                 # 表格视图
pod 'SwiftSignalRClient'              # SignalR 客户端
pod 'JXSegmentedView'                 # 分段控制器
pod 'MobileVLCKit'                    # 视频播放
pod 'WechatOpenSDK'                   # 微信 SDK
pod 'SVGKit'                          # SVG 支持
pod 'JPush'                           # 极光推送

Swift Package Manager

📁 项目结构

CoreScaffold/
├── App/                              # 应用入口和配置
│   ├── AppDelegate.swift             # 应用代理
│   ├── SceneDelegate.swift           # 场景代理
│   ├── NavigationController.swift    # 导航控制器
│   └── TabbarViewController.swift    # 标签栏控制器
├── Modules/                          # 功能模块
│   ├── view/                         # 自定义视图
│   └── viewcontroller/               # 视图控制器
├── Networking/                       # 网络层
│   ├── Api.swift                     # API 接口定义
│   ├── Network.swift                 # 网络请求封装
│   └── Plugin.swift                  # Moya 插件
├── Models/                           # 数据模型
│   └── Models.swift                  # 数据模型定义
├── Utils/                            # 工具类
│   ├── BaseTableView.swift          # 基础表格视图
│   ├── BaseTableViewCell.swift      # 基础表格单元格
│   ├── Extensions.swift             # 扩展方法
│   ├── Helpers.swift                # 辅助工具
│   ├── Managers.swift               # 管理器类
│   └── ToastHUD.swift               # Toast 提示
├── Resources/                        # 资源文件
│   └── Assets.xcassets/              # 图片资源
│       ├── tab_home.imageset/        # 首页图标
│       ├── tab_search.imageset/      # 搜索图标
│       ├── tab_heart.imageset/       # 收藏图标
│       └── tab_user.imageset/        # 用户图标
├── Base.lproj/                       # 本地化资源
│   └── LaunchScreen.storyboard       # 启动屏
└── Info.plist                       # 应用配置

🚀 快速开始

环境要求

  • Xcode 14.0+
  • iOS 15.0+
  • Swift 5.7+
  • CocoaPods 1.11.0+

安装步骤

  1. 克隆项目

    git clone https://github.com/lichunfei369/CoreScaffold.git
    cd CoreScaffold
  2. 安装依赖

    pod install
  3. 打开工作空间

    open CoreScaffold.xcworkspace
  4. 运行项目

    • 选择目标设备或模拟器
    • Cmd + R 运行项目

🎨 设计规范

布局约束

  • 使用 SnapKit 进行自动布局
  • 优先使用 leftrighttopbottom,避免 leadingtrailing
  • 重绘视图时使用 remakeConstraints,避免 updateConstraints
  • 约束命名清晰:topConstraintavatarWidthConstraint

命名规范

  • 类/结构体:大驼峰命名(UserProfileViewController
  • 变量/函数:小驼峰命名(fetchUserInfo()
  • 常量:全大写+下划线(MAX_RETRY_COUNT
  • 布尔值:添加前缀(isLoadinghasPermission

代码组织

  • 单个类不超过 300 行
  • UIViewController 仅负责 UI 布局和事件转发
  • 业务逻辑移至 ViewModel
  • 公共逻辑封装为工具类或扩展

🔧 核心功能

网络层

  • 基于 Moya 的网络请求封装
  • 支持多环境配置(开发/测试/生产)
  • 统一的错误处理和响应拦截

数据持久化

  • Core Data 本地数据存储
  • Keychain Services 敏感数据保护
  • 分离的数据模型环境

UI 组件

  • 基础表格视图和单元格
  • 自定义 TabBar 实现
  • Toast 提示和 HUD 加载
  • 骨架屏加载效果

工具类

  • 扩展方法集合
  • 管理器类封装
  • 辅助工具函数

📱 支持功能

  • ✅ 多语言本地化
  • ✅ 深色模式适配
  • ✅ 推送通知
  • ✅ 图片缓存和处理
  • ✅ 下拉刷新和上拉加载
  • ✅ 键盘自动管理
  • ✅ 网络状态监控
  • ✅ 错误处理和日志

🧪 测试

单元测试

# 运行单元测试
xcodebuild test -workspace CoreScaffold.xcworkspace -scheme CoreScaffold -destination 'platform=iOS Simulator,name=iPhone 14'

UI 测试

  • 使用 XCTest 框架
  • 支持自动化 UI 测试
  • TestFlight Beta 版本分发

📋 开发规范

Git 工作流

  • 使用 Git Flow 分支模型
  • 提交信息遵循 Conventional Commits
  • 代码审查必须通过

代码质量

  • 遵循 Swift 官方编码规范
  • 使用 SwiftLint 静态代码检查
  • 定期使用 Xcode Instruments 性能分析

安全规范

  • 敏感数据使用 Keychain 存储
  • API 密钥通过环境变量管理
  • 遵循 iOS 安全最佳实践

🔄 版本管理

环境配置

  • 开发环境:本地开发和调试
  • 测试环境:功能测试和集成测试
  • 生产环境:正式发布版本

配置管理

  • 使用 .plist 文件管理环境配置
  • 通过 Build Configuration 区分环境
  • 资源文件统一管理在 Assets.xcassets

📚 文档和资源

设计资源

开发文档

🤝 贡献指南

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

👥 维护者

📞 联系方式

如有问题或建议,请通过以下方式联系:

  • 创建 Issue
  • 发送邮件至项目维护者

CoreScaffold - 让 iOS 开发更简单、更高效! 🚀