A Bloomberg article has set the rumor mills guessing about a platform that Apple may or may not have under development, called Marzipan. It's a way to develop applications that will run on iOS or Mac OS, with a touchscreen or a mouse, on a little screen or a huge monitor. Who says so? "People familiar with the matter." When will it be available? "As early as next year" (2018).
Is it real? Big tech companies launch all kinds of experimental projects. Most of them never get shipped. Marzipan could be the product of pure imagination, a spare-time experiment, or a full-scale project.
Let's suppose it's real, or at least a serious effort. What would it look like to developers?
Existing commonalities
There are already strong connections between iOS and Mac development. Xcode is the approved environment for both. The main languages for creating applications for either one are Objective-C and Swift.
Apple already provides a lot of library code in common for both operating systems. The Foundation framework is the same. It handles data storage, common algorithms, networking, and time calculations. These are common to any computing device, regardless of how it looks or interacts with the user. Foundation includes a common set of data types.
Anything which is pure calculation � the "controller" part of the MVC paradigm � can be common code between Mac and iOS applications. If you're writing a chess program, the code to decide on the machine's next move will be exactly the same. You have to write two applications to run on a Mac and an iPhone, but they can share a lot of code.
Fundamental differences
In some respects, the Mac and iOS environments are fundamentally different, and any tools to create one application for both will run into difficulties. The Mac OS is built on a Unix-style hierarchical file system. Applications navigate through directories and read and write files. While iOS uses the same underlying file system, applications have very limited access to it. According to Apple's guidelines, users or iOS applications shouldn't see the file system.
The "Open" and "Save" menu items are basic parts of many app applications, but they never appear in iOS applications. How the same application would deal with both environments isn't at all clear.
The user interfaces are likewise significantly different:
- Using a pointing device such as a mouse vs. using a finger. You can't hover a finger, and you can't do gestures with a mouse.
- A big screen with windows vs. a small screen that mostly belongs to one application at a time. Drag-and-drop doesn't work well with a small touchscreen.
- Having a physical keyboard vs. a screen keyboard. You can't hold down a modifier key on the screen.
What would a cross-platform framework be like?
Cross-platform apps for iOS and Mac would have to be a compromise, or else they'd need to contain two user interfaces in one app. If Marzipan is real, we don't know which one it's aiming at. Perhaps it's just a way of developing two applications with a combined code base and as much common code as reasonably works. That much could be a big benefit to developers. It might even let the same binary file run on both machines, with two sets of machine code. If customers could buy just one license and install the application on any Apple device, that would be a nice selling point.
The Universal Windows Platform might give a clue about what Apple will do. It lets developers create applications for multiple devices, either letting one UI fit everything or adding customization for specific devices. Developers can designate their apps for just a subset of the available devices.
It's possible, even likely, that the desktop experience in future Mac releases will become more like the mobile experience. It's not likely that the two will fully converge or that one will become obsolete in the near future. Even if it becomes possible to write "one application" for both, developers will have to give close attention to the differences in the two environments.
We'll create software that fits your business needs, whether it's for one platform or many. Contact us to talk about how we can help.