Maccy 1.x and towards 2.x #790
Replies: 6 comments 2 replies
-
Sounds great! Looking forward to the next version! |
Beta Was this translation helpful? Give feedback.
-
Sound great! As a "maccy-heavy" user, would say it helps me a lot on software development. Although it works well with new tech stack e.g. SwiftUI, the issues on new |
Beta Was this translation helpful? Give feedback.
-
It was love at first sight with Maccy. I would love to and am really excited about the intentions for the application. Congratulations. |
Beta Was this translation helpful? Give feedback.
-
Looking forward to the iOS version 🙌 |
Beta Was this translation helpful? Give feedback.
-
That’s great news. Let me know if you need any help. I still have cursor positioning in my backlog :D |
Beta Was this translation helpful? Give feedback.
-
That's amazing news, go ahead! and thanks for the effort |
Beta Was this translation helpful? Give feedback.
-
Hello folks! 👋
Maccy was created 7 years ago as a hobby project where I attempted to learn Swift and macOS development to replace missing Parcellite clipboard manager when I moved from Linux to macOS. Since then, it has been download 600k+ times, got featured on the App Store and used by thousands of people every day. I've never thought it might become so popular. Thank you everyone for using it, it's an honor for me. 🙇
7 years is a lot of time and macOS has changed drastically since then. When I started, there were no SwiftUI, SwiftData and other modern approaches to developing AppKit applications. The way Maccy is built is based on the old NSMenu system that is used to power context menus in macOS. This allowed me to preserver plenty of backwards compatibility - Maccy still runs and works on older macOS 10.14 Mojave which was released in 2018. There are still some people downloading and using it on those versions, though it's just a fraction of usage compared to modern macOS.
The choice of NSMenu provided native UI so that Maccy is fast and feels like part of OS. However, it also caused multiple issues in the long run, some of which were worked around (e.g. support for Korean/Chinese language in search), while others are proven to be hard to work around (e.g. support for Japanese language). In summary, NSMenu were never designed to be used for such use cases and this caused plenty of problems with no straightforward way to work them around. I can elaborate more on these issues if necessary.
With all this technical debt and design limitations, I don't see a clear way forward rather than attempting to rewrite Maccy into a regular macOS application that uses regular windows and custom UI views for handling input events. In the very end, UI must remain the same so it's native and fast, but the underlying implementation must move away from NSMenu.
However, re-writing without using modern stack is quite painful so I'd like for Maccy to adopt all the recent SDKs by Apple, notably:
However, switching to these technologies comes at the price of dropping backwards compatibility. For example, SwiftData requires macOS 14 Sonoma or later. That's unavoidable even though I'd hate to do that. The installations per platform suggest that's acceptable - by the time rewrite is done the 90% of users would be using at least macOS 14. I don't have data for installations via Homebrew/GItHub, but on the App Store the downloads this year so far are the following:
With that said, my current plan is to:
I'd be happy to hear what Maccy users think about these plans!
Beta Was this translation helpful? Give feedback.
All reactions