I really wish Apple did a better job at communicating the differences between iOS and macOS. Unfortunately, I think they’re often so keen to promote the iPad as a potential laptop replacement that they don’t always push just how much more advanced the macOS frameworks are in many areas - including those that are most relevant to Scrivener.
Rest assured that Apple isn’t moving over to a whole new architecture for the Mac just so you can run iOS apps on your MacBook, though! Just take a look at Apple’s own apps. They fall into three categories:
-
Apps such as Maps and Messages, which are essentially the same on iOS and macOS, allowing for differences in touch vs regular UI. Such apps can be built with Catalyst - that is, built to work on iOS and then converted to work on macOS. This approach is best for apps with a fairly simple UI that doesn’t need to change much between platforms (which doesn’t mean the underlying code base is simple, of course).
-
Apps such as Mail and Pages, which are very similar across iOS and macOS but don’t quite have all of the same features, and which are clearly custom-built for each platform since they require different UIs. (For instance, Mail uses an outline view sidebar on macOS, a control that is not available on iOS; on iOS you use drill-down tables instead.) Such apps probably share around two-thirds of the same code but then have specific code for the UI. This approach is best for more complex cross-platform apps that would feel very clumsy on macOS if they just used a translated iOS UI.
-
Apps such as Xcode and, currently, Final Cut Pro - pro power apps that still aren’t suited to iOS at all. There’s a good reason apps such as Xcode are not found on iOS - they require either complex UIs or power that is simply isn’t achievable in iOS, even today. Imagine having a side bar, an inspector, four editor panes and a bottom pane showing debugging information (as can be found in Xcode) even on an iPad Pro - it’s just not possible, let alone desirable.
So, to answer your implied question, iOS would have to evolve enormously for (1) to be possible for all apps. For one thing, presently TextKit on iOS is a mere shadow of TextKit on macOS, so any Catalyist app is going to have a limited text system. But even if that were not the case, (1) is not a model suited to an app like Scrivener, unless you were happy to forsake all of the macOS version’s power and have only the features available in the iOS version on the Mac. (Perhaps you are; most of our users wouldn’t be, though.)
Right now, Scrivener for macOS falls under category (3). One of the ideas behind Scrivener when I first created it many moons ago was that it would be a sort of “Xcode for writers”. There’s a whole swathe of stuff in Scrivener that just could not be translated to iOS - if Scrivener were to remain as it is, and keep the features it has.
It won’t. It would make zero sense to allow our iOS version to run on the Mac when we have a full-featured macOS version available.
Indeed. Supposing I were starting from scratch today, (2) above would be the route forward. A shared framework of code that handles all of the core functions, data and outline manipulation across platforms, with a UI custom-built for each platform rather than using shared UI code. Such an app would also need to eschew a lot of features that would not work well across platforms, too, radically simplifying in the same way Pages or Ulysses did a few years ago.
There’s a lot to think about, but we’re not twiddling our thumbs behind the scenes even if we don’t have anything to announce any time soon. Unfortunately, though, no matter which way we go, we’re bound to make some users unhappy.