Remix.run Logo
▲ dmacedo an hour ago

I've been building my own (native) mIRC clone for MacOS as a side project, exactly on the scratch my own itch kind of thinking! :)

Didn't really look into iOS though, I'll have a think...

So far:

- Swift 6/AppKit built with SwiftPM only, no Xcode project. As a stack of modules.

- The default behaviour is native window(s), but have a classic MDI frame (with child windows inside one main window) that I really enjoy playing with and debugging.

- Behaves "the mac way" (menu bar, text editing, scrolling, full-screen, dark mode, VoiceOver), and anything that belongs to mIRC behaves the mIRC way. Still lots of rough edges though.

- Conversations are tabs in one shared window, the tab bar acts as mIRC's switchbar, the treebar becomes a sidebar. DCC transfers get their own standalone windows as I felt that makes it better as p2p.

- The options, defaults, and menus are an exact copy of mIRC 7.85 - I'll evolve it after "finishing"

- Only the top UI layer touches AppKit, so the parts that have to match mIRC exactly can be tested headless in CI.

- The IRC protocol, session state, mIRC formatting, a mirc.ini-compatible config, a scripting interpreter that copies mIRC's evaluation model (PCRE2 tuned to behave like mIRC's PCRE 8.45), DCC, and the display format strings are all pure Swift.

- Some decisions go beyond mIRC to fit MacOS: an untrusted server certificate is asked the user and pinned, never just trusted. Router port mapping uses MacOS's own port mapper. And also created a few new pixel icon sets I haven't fully decided on.

▲jamesponddotco an hour ago | parent [-]

Nice! Got any screenshots?