The core APIs are the same, so you get most things for free — file system, networking, media recording/playback, graphics, and more.
Installation takes place before the app gets to run any code. Notifications are similar enough to be hidden under a tiny abstraction (macOS even supports Push notifications, although I’m not aware of any app that uses them).
Really, UI was the only area where you could feel like you’re developing for different operating systems.