The App Store will turn 10 this year and nearly since the introduction of the App Store developers and business owners were looking for solutions to develop one app for multiple platforms. What sounds like a dream solution to save development costs and time brought us projects like PhoneGap, Titanium, React Native and many more.
After hard work and a lot of effort we saw that all this solutions didn't hold up to their promises. The UX was poor because we didn't have a native UI and bug fixes took a lot of time to solve and made the code base worse. A single code base meant a lot of if and elses. It didn't work out and didn't save time or costs.
But is this the end or could there be a solution to develop features and share them on multiple platforms? Yes, actually there is a great solution. For that purpose Dropbox developed a tool called Djinni which lets you define a API and generated bindings for multiple platforms. The actual API needs to be implemented in C++ and can be used in iOS, Android, Windows, Mac or Linux apps.
Using Djinni now in multiple large projects we think we found a great solution for the sharing code between multiple platforms.