Git Product home page Git Product logo

ringtonehy's Introduction

华育中学铃声系统 RingtoneHY Project v2

关于本项目

华育中学铃声系统项目(下简称 RingtoneHY)起始于 2020 年疫情期间,在 2022 年网课期间进行了完全重构,是一款 macOS 原生 App,用于在网课期间提供模拟校园铃声的功能,由 23 届 7 班 23786 开发。

本应用采用 GPL 3 协议开源。

安装与配置

安装前检查

由于开发精力有限,无暇顾及向下兼容,RingtoneHY 能且仅能安装在 macOS 11 Big Sur、macOS 12 Monterey 的各个版本上。本应用同时适用于 Intel Silicon 和 Apple Silicon 的 Mac。您可以在安装前检查您的 macOS 版本,或在 Apple 官网获取相关信息。此外,请确定您设置了正确的时区,本软件采用了系统时间,而非 UTC+8 进行铃声的播放。

安装

请打开 dmg 文件,将铃声系统拖拽至「应用程序」文件夹内。点击进入「应用程序」文件夹,右击「RingtoneHY.app」,选择「打开」。若有弹窗,请忽略,并打开应用。

错误处理

若提示「恶意软件」:

  1. 弹出窗口后,请不要关闭窗口,打开 系统偏好设置 - 安全性与隐私 - 通用。
  2. 不断尝试,直到显现「已阻止使用……身份不明的开发者」字样。
  3. 点击旁边的「仍要打开」,即可打开应用。
  4. 其他错误情形,请使用 Google、Bing、Baidu 等搜索引擎寻找答案。

使用

基本功能

RingtoneHY 的主界面仅包含时钟、「下一个日程」提示、置顶和日程表按钮。

您可以拖动主界面的顶部以拖动窗口。

如果您不进行任何设置,RingtoneHY 自安装即可进行周一至周五每天 9 节课、2 次眼保健操,以及早晨点名、午自修的铃声播放。点击窗口的任意位置以停止播放当前铃声。

点击右上角靠左的按钮进行窗口置顶设置。当图标为实心时,窗口置顶;当图标为空心时,窗口不置顶。

「下一项」显示的是当天下一个响铃的时间点的任务名称,如「第 2 节课开始」、「眼保健操」等。

编辑功能

由于不同年级、班级的时间表可能会动态调整,我们加入了「课程表」和「铃声编辑」功能。点击主界面右上角的时钟图标进行编辑。

您可以点击任意一个任务模块右上角的「调整」按钮,编辑任务的名称和开始、结束时间及铃声。您可以修改任务名称为当节课的名称,以达到「课程表」的效果。同时,您也可以点击「删除」按钮以删除任务。

点击周日至周六任意一天的「+」按钮,以添加一个任务,如给自己设置自修课时间等。

您做的任何修改都会被自动保存,但在点击「完成」后才会生效。

异常处理

如果在使用过程中遇到异常,请尝试重启应用。同时,为了减少不必要的麻烦,请避免在任务编辑界面中输入过多无用信息。不保证 RingtoneHY 会执行您所做的不恰当的修改。

建议与反馈

由于软件体量较小,以及校园应用场景的特殊性,初版发布后基本不会做任何更新。您可以自行研究源代码,进行相应的更改。

RingtoneHY 开源在 GitHub 仓库 AFObject/RingtoneHY。您可以在 GitHub 上提 issue 以联系作者。

技术信息

此部分可能有助于理解软件的运作模式。

RingtoneHY 是 macOS 原生 App,采用 Apple Swift 语言进行开发,AppKit 与 SwiftUI 混合的方式搭建 UI。其中 App 生态采用 AppKit,任务设置界面采用 SwiftUI。两者通过 NSHostingController 结合。采用 AVFoundation 库播放铃声。Xcode Version 为 13.3 (13E113),macOS Version 为 12.3。

所有 App 的数据存储在默认的用户设置文件夹中。App 的数据模型有:TimeTaskTaskListTaskStorage,分别保存一个响铃时间点、一个完整的任务、一天的全部任务以及所有的任务列表。

在任务数据没有任何变动的情况下,软件会使用一个队列维护每个响铃时间点。软件内的时间 2 秒获取一次,当需要响铃时,会先开始播放铃声,再将当前的响铃时间点弹出队列。当数据有更新,软件会清空队列,并重新将响铃时间点按时间顺序放入队列中。

最后

由于经验不足和时间仓促,RingtoneHY 可能会有不少不足之处,希望大家能够谅解。本软件不仅作为本人使用 SwiftUI 开发应用的一个尝试,更希望能一定程度上帮助到部分同学。但是,希望疫情尽快过去,这个「铃声系统」没有用武之地。

ringtonehy's People

Contributors

afobject avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.