之前在一篇帖子里介绍了我个人开发的一个 All-in-One 菜单栏 app -- OnlySwitch, 获得了很多朋友的关注。从第一次 commit 这个项目的代码,不知不觉已经过去 2 年了。这期间 OnlySwitch 冲上过 github swift trending 的日榜周榜第一名,获得了 2600 多个 stars ,也被全球非常多的科技网站转载。很多网友也热心的为 OnlySwitch 做了多语言的贡献,并为新功能建言献策。再次非常感谢大家的支持。 今天想介绍一下 OnlySwitch 的新功能,并且回顾总结一下开发心得。
除了一些基础的系统设置开关,很多用户有一些工具类功能的需求。
OnlySwitch 作为一款开源软件,非常关注扩展性和开放性。 在 Monterey 之后,OnlySwitch 开始支持系统的快捷指令功能,用户可以在 app 中执行勾选的快捷指令或者为他们设置热键。用户也可以在 OnlySwitch 上贡献自己开发的快捷指令。这大大加强了 OnlySwitch 的扩展性和可玩性,更像是一个快捷功能的平台。但是由于快捷指令本身只能在沙盒中运行,很多命令并不能正常的执行。
后来总结了一下自己开发的很多开关,本身都是通过一些 shell 和 apple script 命令来执行的,所以 OnlySwitch 加入了个性的开关开发平台--Evolution 。用户可以自己通过添加一些命令行脚本来制作自己想要的开关,并且可以分享到 OnlySwitch 上来,这样不需要再次发版,OnlySwitch 也可以轻松的扩展新的功能。
Sonoma 开始支持可交互的小组件,本来 OnlySwitch 也打算支持一下,但是由于其也只能运行在沙盒里,只好无奈放弃。
OnlySwitch 是使用 SwiftUI 进行开发的,最初由于没有见过企业级的 SwiftUI 项目,代码写的非常混乱。架构也换了很多方案,一直在不停的重构。年初入职了德国慕尼黑的一家大厂,感觉在欧洲似乎越来越开始流行 SwiftUI+the composable architecture ( TCA )的开发 pattern 。后来也将其应用在了 OnlySwitch 上,比如 Evolution 和置顶便签的代码。但是依然又很多的技术债需要重构,还有很多自动化需要加入。
虽然写了十几年的 iOS 开发,OnlySwitch 算是我第一款开发的 macOS 应用,感觉还有很多东西需要学习,手机应用和桌面应用还是有很多逻辑上的差异,无论是交互使用还是生命周期。甚至为了兼容不同的 mac 系统版本,需要在 3 个实体 MacBook 上调试,之前还遇到过美国用户只在 mac mini 上 crash 的奇怪案例。感觉作为个人开发者还是有许多困难需要克服。
未来的开发方向会是打磨很多功能的细节,重构大部分代码,如果大家有什么好的点子,我有时间也会帮大家实现。
brew install only-switch
1
Pin 2023-10-31 02:47:59 +08:00
和 oneswitch 好像,加油!
|
2
jjxtrotter 2023-10-31 06:37:46 +08:00 via iPhone
很好的东西,用来替代 one switch 。
缺点:UI 简陋 |
3
husldlq 2023-10-31 06:55:19 +08:00 via iPhone
居然有广告
|
4
Jacklandrin OP @husldlq 广告可以在设置中关闭
|
5
ovtfkw 2023-10-31 08:35:27 +08:00
这不跟 oneswitch 一模一样吗
|
6
gps949 2023-10-31 08:41:28 +08:00
UI 可以学一下果子自带的控制中心那样,只是个开关的话没必要那么宽那么高。。。
另外名叫 onlyswitch 结果里面还好几个 button :doge |
7
Jacklandrin OP @gps949 控制中心的一个问题是功能的位置无法调整(现在双排显示就有这个问题),要么就得做成跟 iPhone 一样那种只有 icon 的小方块,但这样的话,很多功能无法从 icon 中了解其用途。带上文字之后的问题是,中文可能还好,现在支持十几种语言之后,发现很多语言的文字太长了,不做成宽高的显示不开。
|
8
Ch1hao 2023-10-31 11:04:56 +08:00
大佬能支撑一个台前调度和屏幕镜像吗,这样就能把系统自带的图标干掉了
|
9
oxoxoxox 2023-10-31 12:23:28 +08:00
如果能支持显示其他品牌的蓝牙耳机的信息就更好了
|
10
Jacklandrin OP @Ch1hao 台前调度是有的,你可以在设置- Evolution 里找到 Stage Manager 。屏幕镜像由于每个人 external screen 的数量不确定,很难做一个统一的开关出来。你要是会 apple script 可以自己在 Evolution 里加一个
|
11
Jacklandrin OP @oxoxoxox 我手头没有那么多测试设备😂
|
12
neochen13 2023-10-31 17:28:02 +08:00
请问一下和 oneswitch 有什么区别额
|
13
Jacklandrin OP @neochen13 多了很多开关和工具,你也可以自己通过脚本或者快捷指令添加新的开关。开源免费
|
14
yellowstrong 2023-11-03 16:54:23 +08:00
希望能做一个切换高动态范围的开关
|
15
pc10300 2023-11-03 23:52:29 +08:00
好像没有看懂屏幕检测是什么意思,点击以后直接锁屏输入密码了。。
|
16
lilyaki 213 天前
刚买 oneswitch 然后看到这篇...是我孤陋寡闻了,希望 oneswitch 能更新点好的功能哇
|