Hacker News new | ask | show | jobs
by kmf 3504 days ago
Pretty interesting - on the Dash blog in October[1], the developer said that open-source wouldn't be a great option because compiling iOS apps is difficult for most non-iOS developers.

It's a shame, IMO, that iOS apps only have two wide-distribution models: paid, with Apple, on the App Store, or open-source and, by that nature, free. There's a lot of really great software on OS X that is distributed outside the Mac App Store. Clearly there's no plan for something similar to that on iOS.

https://blog.kapeli.com/dear-dash-users/

4 comments

> that iOS apps only have two wide-distribution models: paid, with Apple, on the App Store, or open-source and, by that nature, free.

Please correct me if I'm wrong but I don't think that's true. Just because it's open source doesn't mean it's free, it just means that technical users could, if wanted, compile it from source. But, especially with iOS apps, this is not even true since you do need to have a developer license and a Mac to be able to compile and run it on an actual iPhone.

So in reality, while this is open source, only developers who pay Apple, are able to install this application, even if it's open source.

Here's the correction you asked for :)

You don't need developer account to build XCode projects on your phone anymore, you can just sign in with your Apple account and sideload it.

And resign it on your computer every 7 days? Not exactly a walk in the park.
From my experience apps only need to be re-signed once every 90 days. Not quite as much of a hassle but still one nonetheless
It used to be 90 days, but AFAIK it's now 7 days if you don't have a paid subscription (1 year if you do). Also there's a 10-app limit.

I discovered this recently as I wanted to install Kodi on my iPad. I'm not an iOS developer, and can't bring myself to pay an annual subscription just so I can install open source software on my own device.

Maybe I'm missing something but what do you mean? As far as I know you don't have any restriction. The only restriction is that you can't submit the result to the app store.
Even without a paid developer membership, you can install apps on your own devices, just not distribute them.
Yep, this is true. I should have been clear: two PROFITABLE distribution models.

There's always been apps on GitHub that you could compile and run on your device.

If you're looking to make an app your livelihood and Apple won't let you into the App Store (or, in this case, kicks out out), you're SOL.

You could develop a subscription based service and distribute a client for it, this model would let you collect money from users on your website and allow open source and free mobile apps.

Netflix, Evernote, Skype, Spotify all make money and have mobile apps, but make $0 on the apps themselves.

And for non mac users compiling iOS is not only difficult but also impossible without going through the pain of setting up a macOS vm. I guess I won't be updating dash on my iPhone anytime soon.
Doesn't this give the option for someone else to package it together, give it a new name, and then offer it for free on the App Store? If so, that could be a way around.
No, because you can't distribute GPLv3 licensed apps on the iOS App Store (the Store imposes restrictions that the GPL doesn't let you impose).
This I never understood, GPL doesn't allow you to impose the restrictions the app store requires, right?

Can't you just supply every user with a second copy of the software, which they are allowed to use under the GPL freedoms?

Specifically, you get one copy from the app store that is restricted by Apple's license. You cannot install it on other devices, it doesn't give you the right to the source code, etc.. Apple is satisfied.

Then you get another copy from the developer. It is compiled, but unsigned. You also get the source. You are free to install it on other devices [1]. GPL is satisfied because the person who recieved the first binary gets a binary they can run, and redistribute (although it is cumbersome and they have to sign it etc. to install - but again [1]). They also get the source.

Wouldn't this work?

[1] If this other devices allows it technically and legally - this restriction always applies. This is also the case if you have a GPL application that needs features from Windows Professional, but you only have a Home license. That doesn't mean you can't distribute the app under GPL.

You can do that if you're the copyright owner of all the code (or have some kind of CLA granting your licensing rights). Then you can distribute the app under one license on the App Store and under the GPL somewhere else.

But if you're the "someone else" who just got the code with the GPL license from the original devs, you can't redistribute it under any other license, hence the impossibility of putting it on the App Store.

Thats not what I mean. You are not the copyright owner, you take it (under GPL terms) and upload it to the App store. The uploaded version is restricted, as per Apples terms. Users do not yet have the rights you need to grant them according to the GPL. You fulfill your obligations, granting these rights, in the next step.

Then, outside of the App store, you give everybody an additional copy. The GPL is satisfied, since the user gets to distribute the binary, and gets the source.

You are not distributing it separately under two licenses, but at the same time over two channels.

It's like you have a locked-down computer in a high security room, and I want to send you a program. "A" enforces the security of the room and while you can download stuff to the computer, you can't copy stuff from it. "G" supplies the software to me, and says I can give it to other people, as long as I allow them to have the source and pass it on under the same terms. I would say you can satisfy both at the same time by giving the customer an additional copy at the same instant, say on a USB drive.

Ah, well, with the huge caveat that IANAL, I don't think that can work here. Maybe if the only right was the access and distribution of the source, but one of the GPL Four Freedoms is "The freedom to run the program as you wish, for any purpose", and the App Store terms restrict that.
I guess a brew cask package might be able to make it easy, along with ios-deploy