Desember tahun 2017 yang lalu, Mark Gurman yang kini bekerja untuk Bloomberg merilis sebuah tulisan mengenai salah satu proyek yang sedang dikerjakan oleh Apple. Bertajuk “Apple Plans Combined iPhone, iPad & Mac Apps to Create One User Experience”, Mark Gurman menjelaskan bahwa Apple tengah menggarap sebuah proyek, yang diberi nama Marzipan, dan bertujuan untuk mempermudah developer dalam membuat aplikasi baik untuk iOS atau macOS.
Mark Gurman:
Starting as early as next year, software developers will be able to design a single application that works with a touchscreen or mouse and trackpad depending on whether it’s running on the iPhone and iPad operating system or on Mac hardware, according to people familiar with the matter.
Tulisan Mark Gurman ini kemudian dibahas oleh John Gruber via Daring Fireball. Menurut Gruber, Apple tidak sedang berusaha menggabungkan iOS dan macOS menjadi satu sistem operasi seperti yang pernah dilakukan oleh beberapa perusahaan teknologi sebelumnya. (Microsoft dengan Universal Windows Platform dan Google dengan Chrome OS). iOS dan macOS memiliki perbedaan yang sangat besar dalam hal interaksi pengguna. Antarmuka iOS dapat dimanipulasi dengan sentuhan sedangkan macOS memerlukan keyboard dan sebuah kursor (mouse) dalam interaksinya.
John Gruber dalam artikel bertajuk Marzipan:
In short, Apple’s goal should be to make it easier for developers to create good Mac apps, and easier for Mac and iOS app siblings to share code. Apple’s goal should not be to make it easier to get iOS apps to run on the Mac in slightly modified form. And I think it’s nonsensical to think that Apple is working toward a single unified OS. The best reason for hope on this front is the recent redoubling of Apple’s efforts on pro Mac hardware. The iMac Pro was not designed to run iPhone apps.
Hingga hari ini, para pengembang aplikasi Mac masih menggunakan AppKit sebagai framework untuk membuat antarmuka. Kehadiran AppKit bermula dari NextStep yang lahir pada akhir tahun 1980an. Menggunakan teknologi yang bertahan hampir lebih dari 30 tahun tentu tidak mudah. Apalagi untuk para developer baru yang langsung mengembangkan aplikasi iOS dimana UIKit lebih mudah digunakan. Hal ini senada dengan yang disampaikan oleh Guilherme Rambo dalam tulisannya di Medium:
Before using UIKit more, I didn’t understand why iOS developers complained so much about AppKit and why so many of them wanted “UIKit for Mac” so desperately. Now I know why.
The thing is, UIKit “just works” (most of the time at least). AppKit has so much historical garbage that it’s become a pain to work with for modern macOS apps. It’s still really hard to make simple things like customizing system controls and Core Animation doesn’t work as well on it as it does on UIKit.
In short, Apple perlu sebuah teknologi untuk dapat menyederhanakan pengembangan aplikasi antara platformnya. Tujuannya agar kemudahan pengembangan aplikasi ini juga membuat platform yang dimiliki oleh Apple semakin berkembang.
Belum lama ini, John Gruber yang juga memiliki kedekatan dengan Apple membagikan informasi tambahan seputar Project Marzipan. Dalam tulisannya, Gruber menyatakan bahwa proyek ini memang bernama Marzipan pada awalnya namun kemudian berubah.
There is indeed an active cross-platform UI project at Apple for iOS and MacOS. It may have been codenamed “Marzipan” at one point, but if so only in its earliest days. My various little birdies only know of the project under a different name, which hasn’t leaked publicly yet. There are people at Apple who know about this project who first heard the name “Marzipan” when Gurman’s story was published.
SHA1 hashed prediction, filed away for future bragging rights regarding: https://t.co/iP0nXlloMY
75a61618a61e1b8a00d4276a88c5fa7f352837b7
— John Gruber (@gruber) May 1, 2018
Tidak banyak detail teknis yang dibicarakan oleh Gruber. Menurutnya Apple tengah mengerjakan teknologi semacam declarative control API yang dapat berinteraksi dengan UIKit dan AppKit.
The general idea is that rather than writing classic procedural code to, say, make a button, then configure the button, then position the button inside a view, you instead declare the button and its attributes using some other form. HTML is probably the most easily understood example. In HTML you don’t procedurally create elements like paragraphs, images, and tables — you declare them with tags and attributes in markup.
John Gruber juga menambahkan bahwa teknologi ini tidak akan muncul pada WWDC tahun ini. Melainkan untuk iOS 13 dan macOS 11.15 tahun 2019 mendatang.