OnlySwitch 两周年更新

194 天前
 Jacklandrin

之前在一篇帖子里介绍了我个人开发的一个 All-in-One 菜单栏 app -- OnlySwitch, 获得了很多朋友的关注。从第一次 commit 这个项目的代码,不知不觉已经过去 2 年了。这期间 OnlySwitch 冲上过 github swift trending 的日榜周榜第一名,获得了 2600 多个 stars ,也被全球非常多的科技网站转载。很多网友也热心的为 OnlySwitch 做了多语言的贡献,并为新功能建言献策。再次非常感谢大家的支持。 今天想介绍一下 OnlySwitch 的新功能,并且回顾总结一下开发心得。

新功能

工具类

除了一些基础的系统设置开关,很多用户有一些工具类功能的需求。

快捷指令和 Evolution

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 的奇怪案例。感觉作为个人开发者还是有许多困难需要克服。

未来的开发方向会是打磨很多功能的细节,重构大部分代码,如果大家有什么好的点子,我有时间也会帮大家实现。

通过 Homebrew 安装

brew install only-switch

手动下载

download

2089 次点击
所在节点    macOS
16 条回复
Pin
194 天前
和 oneswitch 好像,加油!
jjxtrotter
194 天前
很好的东西,用来替代 one switch 。

缺点:UI 简陋
husldlq
194 天前
居然有广告
Jacklandrin
194 天前
@husldlq 广告可以在设置中关闭
ovtfkw
194 天前
这不跟 oneswitch 一模一样吗
gps949
194 天前
UI 可以学一下果子自带的控制中心那样,只是个开关的话没必要那么宽那么高。。。
另外名叫 onlyswitch 结果里面还好几个 button :doge
Jacklandrin
194 天前
@gps949 控制中心的一个问题是功能的位置无法调整(现在双排显示就有这个问题),要么就得做成跟 iPhone 一样那种只有 icon 的小方块,但这样的话,很多功能无法从 icon 中了解其用途。带上文字之后的问题是,中文可能还好,现在支持十几种语言之后,发现很多语言的文字太长了,不做成宽高的显示不开。
Ch1hao
194 天前
大佬能支撑一个台前调度和屏幕镜像吗,这样就能把系统自带的图标干掉了
oxoxoxox
194 天前
如果能支持显示其他品牌的蓝牙耳机的信息就更好了
Jacklandrin
193 天前
@Ch1hao 台前调度是有的,你可以在设置- Evolution 里找到 Stage Manager 。屏幕镜像由于每个人 external screen 的数量不确定,很难做一个统一的开关出来。你要是会 apple script 可以自己在 Evolution 里加一个
Jacklandrin
193 天前
@oxoxoxox 我手头没有那么多测试设备😂
neochen13
193 天前
请问一下和 oneswitch 有什么区别额
Jacklandrin
193 天前
@neochen13 多了很多开关和工具,你也可以自己通过脚本或者快捷指令添加新的开关。开源免费
yellowstrong
190 天前
希望能做一个切换高动态范围的开关
pc10300
190 天前
好像没有看懂屏幕检测是什么意思,点击以后直接锁屏输入密码了。。
lilyaki
19 天前
刚买 oneswitch 然后看到这篇...是我孤陋寡闻了,希望 oneswitch 能更新点好的功能哇

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/986905

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX