Shameless plug: We're developing the Boden Framework [0] which kind of shares that vision.
I like the idea of a protocol and that is pretty much what Boden attempts to achieve in the end. Having said that, the more I work on this project the more I come to believe that, at a certain point (level of detail), attempts at the unification of real native UX on different platforms become virtually impossible. To achieve real native cross-platform UX, you need to embrace and take care of the different aspects, behaviors, and quirks of each platform. Boden attempts to make that as easy as possible (and without forcing you to write JS).
> To achieve real native cross-platform UX, you need to embrace and take care of the different aspects, behaviors, and quirks of each platform.
I 100% agree. My recent comment[0] mentions the same thing.
I'll look into Boden, sounds promising! With that said, I don't see any mention of desktop builds. Is that on Boden's roadmap? Would love to try it with Rust some time.
Yes, Desktop builds are on the roadmap. We don't have a fixed release date for those yet. An experimental macOS build is already available in the mainline repo.
There is already an experimental macOSX port in boden. More desktop support is a future goal. The library is designed to support all types of operating systems.
Author here. We didn't expect so much attention and are happy about the feedback! Ask us anything.
With regard to the GPL licensing issues brought up here: We are aware that the GPL is not sufficient and we are in the process of adding an LGPL option. This will allow you to publish apps based on Boden on the iOS app store.
How will the license enforce that an app using an LGPL version of the library can't be sold? As such LGPL doesn't mean the consuming app has to be free.
Sorry, I should have written "apps conforming to the terms of the LGPL" instead of "free". Of course it's still possible to sell apps based on Boden licensed under LGPL as long as you comply with the license terms.
Is there then a business model in a commercial license for Boden if a company can use it as LGPL? In general are there many companies who pay for a commercial license to avoid LGPL?
Boden author here, a bit overwhelmed by the feedback. We are in the process of releasing a new version that will change the license to LGPL / Commercial.
LGPL has the same problem! Users must be able to relink an application with their own version of the LGPL library. This is impossible for almost all iOS scenarios and only very slightly easier on Android.
This is often overlooked. If you want to keep LGPL you can investigate "linking exception", it's used by some GNU libraries if I recall correctly.
The GPL is not compatible with Apple's App Store restrictions, so giving away your source code is not sufficient to comply with the GPL.
"The primary problem is that Apple imposes numerous legal restrictions on use and distribution...through the iTunes Store Terms of Service, which is forbidden by section 6 of GPLv2."
There is also a significant difference between giving away free applications and giving away the source code. Both from an internal perspective (the company may want to charge for the product or related products or products on other platforms now or in the future) and an external perspective (the app may require other software for which the company does not have rights to release source code).
"Here's a free loaf of bread."
"Why don't you just give me the bread factory and the farms that supplied the ingredients?"
Maybe because some mega corp will figure out how to offer it as a service, and they'll get nothing for it. I support them defending themselves with a way to maybe make money on it. If they can't eat, they can't update the code.
So it's very conceivable that if your app is producing money for you, you don't want to open source the magic as it were - but if you're making money, you shouldn't expect a free ride.
However, if you aren't making money, and are still using the work of others, then it's good to contribute back - even if that's just by open sourcing your work for others to learn from and study. It's not required, but neither is it required for this framework to have a free tier, much less a truly free one that helps protect the future of your app.
Please take the following with a grain of salt. I am not a legal expert, but we have competent US lawyers assessing this for us right now.
The main issue we see with the GPL is that your app has to be effectively licensed under the GPL too, which makes your app's license incompatible with the iOS App Store's terms of service.
This is apparently not the case with the LGPL. Yes, you will have to provide a way for users to relink your application to another version of Boden. As far as I can see (I am not a lawyer), this can happen outside of the iOS App Store.
Our US lawyers are currently investigating this. As soon as we get a reliable assessment from the legal experts, we'll add an LGPL option to Boden.
LGPL 2.1 6c - on request, you provide the user with object code they can link against their custom version. Should be enough, if no other terms of the app store get in the way?
(VLC is an example of a well-known program that relicensed to LGPL and now is available in the app store, so clearly it is possible)
And how does the user then get their relinked app onto their phone?
(There are plenty of App Store apps with LGPL code in them. The question is, should they be there? And VLC is not a good example, since presumably, I don't know - but I think all of it is LGPL or in any case, open source. The user can rebuild all of VLC in that example. The situation with Boden is going to be that a an app, probably proprietary, has a Boden library in it.)
If the app is open source (or at least the source code is accessible), the user would proceed to the source repo, clone it, open the Xcode project and relink to the framework version of their choice.
Others have pointed out how it could work with closed source apps. It's a bit more complicated, but it certainly is possible.
It would be prudent to advertise this expectation of the app developer hoping to use the LGPL version. (Whereas with for instance the MPL and other licenses, no such need exists.)
Consider the Mozilla Public License (MPL) [1]. It is copyleft in the sense that modifications to the library must be MPL-licensed as well, but doesn't impose any restrictions on apps merely using the library. This avoids the LGPL’s complicated re-linking requirements which are very hard to fulfill for iOS apps (as mentioned elsewhere in this thread).
We have put a lot of effort into investigating and assessing different licensing options. There are two different perspectives on this: the user perspective where MIT of course seems to be among the most attractive ones at first glance. Then, there's the company perspective: what is the business model and how is development going to be sustainable in the long run?
We have come to the conclusion that LGPL is currently the best option to align both of these perspectives and provide the best value in the long run.
If GPL/LGPL isn't sufficient for you, we'll be offering a commercial license with fair terms as an alternative.
I can make a GUI in Qt and it will work on android, but I developed a simple time and there was a huge problem. When device goes to sleep it don't runs any code in background and I couldn't play or do anything on timeout. Does your framework solves any problem?
Author here. We’re still in the process of figuring out what the right open-source licensing model for Boden should be. In the long run, development must be financed by a viable business model as Boden is not a hobby project. We’re considering adding a commercial option later, ending up with a dual GPL/commercial license similar to other projects. We’re happy to hear your thoughts about other licensing options!
I should have been a little clearer than my one line quip. I wasn't trying to say you should give it out for free :). It's just that GPL and LGPL (v3 specifically) are extremely hard or impossible to comply with in the mobile world.
Even if the software author complies with terms and provides full source or in the case of LGPL, enough to relink the app with a modified version of a LGPL'd component, you can't really swap the app for your modified one due to the "protections" in place on Android and iOS.
Personally, I'd suggest taking a look at how Qt does their commercial licensing.
Author here. The goal of Boden is very much that the applications should look and feel as if they were custom-coded for the specific platform. We also think that custom widgets often fall slightly short of the native feel, as other commenters have pointed out. While it is certainly possible to make them 100% consistent with other native apps on the platform, it is a lot of work to get all the details right. And not all frameworks manage to do that.
We wanted to try a different approach. Why not just use what the platform gives you and always get the right look & feel out of the box? That certainly creates its own challenges, like having to provide a good abstraction layer for the core application code. But you do not have to worry about look, feel, drawing performance, interactions with other OS features and the like. And when the OS changes something then the app is automatically up-to-date.
I like the idea of a protocol and that is pretty much what Boden attempts to achieve in the end. Having said that, the more I work on this project the more I come to believe that, at a certain point (level of detail), attempts at the unification of real native UX on different platforms become virtually impossible. To achieve real native cross-platform UX, you need to embrace and take care of the different aspects, behaviors, and quirks of each platform. Boden attempts to make that as easy as possible (and without forcing you to write JS).
[0] https://www.boden.io