Increasingly, we are seeing the macOS and iOS development worlds diverge. So much so that software libraries/frameworks can seldomly be shared between these worlds, although the APIs are largely similar, and the underlying foundation (which is larger than, say, Foundation) is the same.
As Steve Jobs implied, it was a sensible choice to create iOS seperately from macOS (unlike what MS is doing), catering for the special requirements of Cocoa Touch. That was probably the best choice to let things move forward “swiftly”, and to worry later about how to cross-implement new features (mostly iOS->macOS, but sometimes macOS->iOS for macOS features initially lacking in iOS as well).
Some of us hoped that, over time, these worlds would converge, as the intricacies and differences between Cocoa and Cocoa touch would be better understood and mastered.
But the opposite seems to be true. Just try to google for software libraries that are still directly usable in macOS. Moreover, many online articles solely refer to iOS in their titles, while the principles and sometimes even the code is equally applicable to macOS).
Of course, it is increasingly possible to write conditional code (“…AVAILABLE…”) so that Swift and even ObjC source will compile universally, but hopefully Apple will offer incentives to program for both platforms (+tvOS,… if possible) at the same time.
Would more OS agnostic APIs help?