# sleepy-ios **Repository Path**: lingion/sleepy-ios ## Basic Information - **Project Name**: sleepy-ios - **Description**: | 源仓库+最新版: github.com/lingion - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-29 - **Last Updated**: 2026-08-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Sleepy · 课程表 iOS

Sleepy · 课程表 iOS

Sleepy 课程表的 iOS 移植版,基于 SwiftUI + GRDB + WidgetKit。
与 Android 版功能对齐;工程版本 1.0.34,最新发布 a.v.1.0.41

Latest Release Stars iOS Swift SwiftUI License Min SDK

下载 IPA

--- > **Keywords (SEO):** iOS schedule app, 课程表, 课表, timetable, university schedule, SwiftUI, WidgetKit, iOS widget, home screen widget, 开源课表, 开源课程表 --- ## 截图一览

a.v.1.0.41 · iOS 16.0+ · 包名 com.lingion.sleepy

--- ## 概要 | 项 | 值 | |---|---| | 包名 | `com.lingion.sleepy` | | 最低 SDK | `16.0` | | 架构 | arm64 | | 语言 | zh-Hans · zh-Hant · en · ja · es | iOS 版课程表工具。主旨:**轻、快、准**。零壳依赖,支持手动添加、多格式解析、五类桌面 Widget、深色模式,与 Android 版功能对齐。 --- ## 课表视图 课表页提供两种布局,顶部 SegmentedSwitcher 切换;今日课程在底部「今日」标签页。 | 视图 | 说明 | |---|---| | **周视图**(7 日横排 × N 节) | 横向时间轴,展示整周课程 | | **网格视图**(时间网格 · 课程色块) | 经典课程表布局 | | **今日**(底部 Tab) | 只看今天有哪些课 | 特性: - 左/右滑周切换器,实时算周次 - 课程按"起止周+单双周+起止节"自动过滤当前周 - 点击课程卡片弹出详情底部弹窗 --- ## 多课表管理 可同时管理多张独立课表,每张表拥有自己的节次时间表、开学日期、最大周数。 新建/编辑课表必填项:名称、开始日期、最大周数、节次时间表。 --- ## 节次配置 手动模式逐节设置起止时间。 --- ## 手动添加课程 入口在底栏「课表管理」→「添加课程」。 字段:课名 · 教师 · 教室 · 备注 · 星期 · 起止节 · 起止周 · 单双周类型 · 课程色。 --- ## 导出课表 入口在底栏「我的」→「导出课表」。三种格式: | 格式 | 用途 | |---|---| | WakeUp JSON | 供 Android 版 Sleepy 导入 | | 分享文本 | 直接分享课表内容 | | ICS | 导入日历应用 | --- ## 桌面 Widget(5 类) 五类 Widget,通过 WidgetKit 实现,App Group 数据共享。 | Widget | 支持尺寸 | 用途 | |---|---|---| | **Today** | 小、中、大 | 今日课程列表 | | **TwoDay** | 中、大 | 今天 + 明天 | | **WeekList** | 中、大 | 7 日课程统计 + 名称 | | **WeekGrid** | 中、大 | 完整时间网格 + 课程块 | | **WeekView** | 中、大 | 周视图 | 实现要点: - 纯 WidgetKit 实现,无 Glance - App Group:`group.com.lingion.sleepy.ios` - 配色与 app 主题实时同步(深色模式) - 课程色按黄金角 (137.508°) HSL 分布 --- ## 深色模式 浅色 / 深色 / 跟随系统三种模式(「我的」→「外观」),默认跟随系统。 --- ## 技术栈 ``` language = Swift 5.9 ui = SwiftUI storage = GRDB 6.29.3 widgets = WidgetKit navigation = SwiftUI NavigationStack prefs = AppPrefs (UserDefaults) serialization = Codable build = XcodeGen 14.3.1 xcode = 14.3.1 ``` --- ## 项目结构 ``` Sleepy/ ├── Sleepy/ │ ├── SleepyApp.swift # App 入口(Tab 壳 + overlay 导航 + 深链) │ ├── data/ # GRDB 数据库、实体、解析器、仓储 │ ├── theme/ # Theme + ThemePresets │ ├── ui/ │ │ ├── component/ # CourseTableView / PillNavigationBar / SegmentedSwitcher │ │ └── screen/ │ │ ├── schedule/ # 周视图 + 网格视图 │ │ ├── today/ # 今日课程 │ │ ├── imports/ # 课表导入(含教务解析) │ │ ├── edit/ # 课程编辑 │ │ ├── manage/ # 课表管理 │ │ └── mine/ # 我的 / 外观 / 导出 / 关于 │ ├── resources/ # 多语言 Localizable.strings + schools.json │ ├── util/ # AppPrefs / DateUtils │ └── widget/ # Widget 视图 ├── SleepyWidget/ # Widget Extension ├── SleepyTests/ # 单元测试 ├── SleepyUITests/ # UI 测试 ├── scripts/ # 构建/测试脚本 ├── project.yml # XcodeGen 配置 └── README.md ``` --- ## 构建 & 安装 ### 前置 安装 XcodeGen,并确保 Xcode 14.3 或更高版本: ```bash brew install xcodegen ``` ### 编译 ```bash git clone https://github.com/lingion/sleepy-ios.git cd sleepy-ios # 生成 Xcode 项目 xcodegen generate # Debug 构建 xcodebuild -project Sleepy.xcodeproj \ -scheme Sleepy \ -destination 'platform=iOS Simulator,name=iPhone 14' \ build ``` ### 测试 ```bash # 单元测试 xcodebuild -project Sleepy.xcodeproj \ -scheme Sleepy \ -destination 'platform=iOS Simulator,name=iPhone 14' \ test # UI 测试 xcodebuild -project Sleepy.xcodeproj \ -scheme Sleepy \ -destination 'platform=iOS Simulator,name=iPhone 14' \ -only-testing:SleepyUITests \ test ``` ### 安装 下载 Release 中的 IPA 文件,使用 AltStore 或 SideStore 签名安装。 --- ## Android 原版 https://github.com/lingion/sleepy --- ## License [GPL-3.0](LICENSE)(LICENSE 文件待补充)