My main worry about universal apps is bloat.
Don't worry. Apple has
App Thinning and Bitcode. Bitcode means that your source code doesn't compile all the way down to machine code for the target CPU, it compiles to an intermediate representation, which is submitted to the App Store. Then, that intermediate code is compiled to the final machine code for each target platform, and
only the necessary code is shipped to a given device. Same with the various graphic assets. App Thinning means your iPhone only gets the iPhone code & graphics, your iPad gets only the iPad code & graphics, etc. This means apps can take less space on your device, but it also is a way to combat the long-standing problem of waiting around for every developer to recompile their app for some new situations - now Apple can come out with a new CPU that adds new instructions to the instruction set that would make some operations
much faster, and then Apple simply has to change the intermediate-to-machine-code compiler to take advantage of these new instructions, and boom, everybody's app is updated (using the partially-compiled code that developers have already sent to Apple). It eliminates one whole class of problems for them (releasing new devices with a new improved CPU and a new Xcode and then hoping that all one million developers will recompile and resubmit their apps, and waiting for that to happen).
BTW, with the switch to 64-bit only, there were some developers screaming, "there's absolutely no reason Apple has to do this! 32-bit forever!" I suspect this path (universal apps) is one of the reasons. Apple does things for reasons (arguably not always good ones), they just don't explain their next half dozen moves to everyone else ahead of time.
A prerequisite being a shiny new ARM based Mac?
Nope, with Bitcode they could presumably generate both Intel CPU-specific and ARM CPU-specific versions of an app from the same code.
Rosetta2. Things like iOS weather apps on a Mac would be nice.
Only related to Rosetta in the notion of letting things run in multiple different places. Rosetta translated old already-compiled code on the fly, to run on new CPUs. Bitcode would allow submitting new apps - where the devs have made proper allowances - that can be distributed by the App Store to run on both Intel-based Macs and ARM-based iOS devices.
The Mac App Store has been sorely neglected for a long time. It has seemed like it (the whole MAS ecosystem) was given an initial push and then neglected and left to fend for itself. It isn't exactly a ghost town, but it's not a very lively place, either. Giving iOS developers a path by which they can (with
some effort and planning) submit their apps to both the iOS and Mac App Stores, might allow a bunch of useful iOS apps to come over to the Mac, and get more attention focused on the MAS.
i don’t see how it can be done right. For years we’ve been told that OSX/macOS is not designed for touch. That is still true.
Having universal apps is going to impact either the touch end on ios or the desktop style on macos. A compromise is going to be made one way or another.
Agreed that this is a very hard target to hit - some apps could handle the transition between platforms while others couldn't - but I don't foresee this being a complete change into "everything is / must be cross platform now", rather it would be a slow transition for a very long time (and would require much cleverness on the part of both Apple and independent developers to have UI elements give native experiences in both places). It's more making it
possible to ship an app that runs on both platforms (if the developer goes to some effort to facilitate this) than
requiring all apps to be cross platform.
And so it begins... ARM Mac.
This would certainly make a future ARM Mac easier, but I don't see that it would necessitate an ARM Mac for this plan to work "now".
Many APIs especially the newer ones are similar on both platforms. iOS and macOS apps can share a lot of their codebase; it's mostly just the UI that needs to be created (excluding platform specifically features).
So I'm thinking (or at least hoping) that it'll still be a requirement for each platform to have it's own UI. So like with an iPhone and an Apple TV, a macOS app can be downloaded to your mac if you install its iOS counterpart.
Ding ding ding! This sounds very plausible. I can also see some apps working cross platform using some new "we mostly do the work for you" cross-platform UI framework/layer (an Apple-supplied layer on top of the existing Apple-supplied frameworks), if said app has a fairly simple, straightforward, UI already.