Hacker News new | past | comments | ask | show | jobs | submit login
Coinbase Wallet to remove DApp browser to comply with Apple's policy (reddit.com)
124 points by EGreg on Dec 29, 2019 | hide | past | favorite | 70 comments



Apple and Google have complete control over the mobile market which is the dominant way humanity interacts with the internet in today's world, especially in developing countries. Having a policy which forbids arbitrary things like listing other apps for users to interact with is very dangerous as it effectively bans whole industries from competing on a level playing field.

This is a big problem for cryptocurrency especially as mobile web browsers cannot interact with blockchains and so users are forced to use custom apps that implement the web3 interfaces. This effectively bans wallets from providing a good experience to allow users to interact with dapps and since you can't fall back to using a web browser on mobile it might end up being a total ban on the use of dapps on mobile platforms unless each dapp makes their own app (which just opens a whole new can of worms).

I'm not really sure what the solution is here but something really needs to be done before it becomes a ceiling for dapp adoption. Perhaps the answer is government regulations mandating open access to mobile platforms which is looking more likely each year as the investigations into big tech are ramping up but I'd rather see mobile Chrome get extension support so people can at least fall back to metamask. I don't see that happening though. This will be a fun war over the next decade but I'm hoping for the best.


Cue the "But I like Apple running the app store with an iron fist! No malware and viruses!" comments. Unless the government forces Apple in the future to permit sideloading, this is never going to change.


> Unless the government forces Apple in the future to permit sideloading, this is never going to change

Granted. Convince me this is an issue best solved by a law specifically regulating side loading?


Well what else do you propose since iPhones comes with essentially a hard coded PC equivalent of secure boot that you can't disable. You can't even load your own keys onto the device and sign your own software or OS. At which point you don't even own the computer since you have limited say as to the software you can run on it.

I don't see Apple planning to stop restricting users rights anytime soon. Same applies for phone manufactures who sell android devices.


At what point does a PC become an appliance?

We don’t force appliance makers to allow side loading. We don’t enforce car makers to support engine warranties if you re-chipped your ECU. There seems to be no “user right” to receive ongoing support at manufacturer expense for a thing the user meddled with outside of parameters.

Along the ‘convince me’ lines:

1. Convince me the iPhone is not an appliance competing in a marketplace of appliances.

2. Convince me the market cannot decide what it wants this appliance to be able to do or not do.

3. Convince me a maker has no right to decide what user actions may void its future obligations to the user.


> Convince me a maker has no right to decide what user actions may void its future obligations to the user.

That's a completely different thing. This is a question of a manufacturer having complete control over what the buyer can do with the device. There is no "click here to void your warranty and enable root" button, if there was this would be a different conversation.


Don’t buy an iPhone? Problem solved.


Google doesn't have complete control. A significant number of Android devices ship without their store, and anyway, you can install apks with a checkbox in settings. Worst case, you ship to play store without this feature and mention in the support faq that you have to install the apk from a website download to have it.

Apple has slowly started to make things like that closer to being possible, but there are a lot more hoops, so it might be reasonable for a very niche app, buy anything you want thousands of people to use really needs to go through the app store.


In developing countries not everyone uses the Google Play Store


> Apple and Google have complete control over the mobile market

Apple does on the iOS market, Google doesn't on the Android market. Sure, they have most of the market, but there are decent alternatives like f-droid. Maybe if we can get enough people using alternative markets on Android we can think of pressuring Apple to allow third party apps, but until then it would be useless imo. Why aren't more people using f-droid?


F-Droid is solely for FOSS apps


Amazon and Samsung have their own stores too that are not limited to FOSS


yeah only wechat is allowed to have their own app store

https://techcrunch.com/2018/11/07/wechat-mini-apps-200-milli...


Lets be honest. Its the same for Alipay's app too. They both are their own ecosystem and they are going to be allowed without a doubt, if Apple was to touch either of these Apps it would be seen as an offense to the red flag and I could easily see the mainlanders boycotting it.


And could potentially leak into foreign politics.


Sounds like grounds for an antitrust case. You can point to special treatment of apps that risk Apple's position in foreign markets, where Apple is willing to bend its own rules to retain its market position.

Coinbase: please sue these cash fat rent-seeking clowns.


Does wechat allow users to make payments to each other? I wonder if that's what this is really about.


Yes, I would say that wechats #2 purpose is mobile payments.


But in traditional payment forms, correct? Not via digital assets?


Local currency digitally but no not anything like bitcoin.


You can buy ebooks on WeChat


This isn't entirely true. Kik had their own app store for years: https://dev.kik.com/#/home

It just wasn't very popular, it seems...


As this post doesn’t explain what a DApp is, for anyone curious it seems to be a “decentralized app”. I’m not sure how they work, or what the benefit of them are, but I guess they’re like apps-within-apps, kind of like the mini apps in WeChat (someone more knowledgeable please chime in).


On a desktop computer by far the most common "dApp browser" is MetaMask, which is merely a Chrome/Firefox extension. The mechanism is simply "a web browser" that gives the web page the ability (via some injected JavaScript object) to "request an Ethereum transaction be executed" (which costs money to do, and might even simply be the transfer of money). If it were possible to make browser extensions for MobileSafari people likely wouldn't bother making entire replacement browsers, as the experience is categorically worse.

Alternative browsers--built using Apple's browser--exist on the App Store; the issue here is that users are paying for something via a mechanism that isn't in-app purchases: Apple wants all payments in the world to flow through them, and so the idea of a decentralized payment future is incompatible with the App Store.


Wouldn't they remove regular Bitcoin and ethereum wallets too if they were trying to control payment flows


They did for quite a while. It was only relatively recently that Tim Cook reversed the policy and allowed crypto wallets to appear on iOS.


As far as I can tell, they model those apps like banking apps, or Venmo, or PayPal, which you will note are all also allowed. However, they model stuff you do with these dApp browsers as direct payments for a service. Apple has a rule in their App Store review guidelines that if you sell something, you must do it via in-app purchase.


Most dapps are more similar to investing like a tdameritrade, which is allowed in the app store. I guess that doesn't apply to all dapps though.


And yet you can purchase things in conventional e-commerce using a web browser on an iphone without Apple getting their cut.

How is this any different?


I am not defending Apple. I think Apple's behavior here should be illegal. I am merely stating what warped logic Apple seems to be locally applying here based on my understanding of the situation, from the perspective of their ludicrous, vague, and inconsistent policies.


E-commerce presumably falls under “physical goods” in Apple’s eyes, which is allowed.


Which seems rather arbitrary, it's not like you can't buy digital goods from Steam over the web.

This is yet another reason we must fight these proprietary app walled gardens. It's a clear regression from the open web.


For a while, you couldn't have Steam Link on iOS because it would be "bad" for Apple if you did buy a PC game through a live stream of your desktop.

https://9to5mac.com/2019/05/15/steam-link-ios-launch/


This is a fairly good explanation on stackexchange: https://ethereum.stackexchange.com/a/384

Excerpt (in the context of Ethereum, a smart contract platform):

> A DApp has its backend code running on a decentralized peer-to-peer network. Contrast this with an app where the backend code is running on centralized servers.

> A DApp can have frontend code and user interfaces written in any language (just like an app) that can make calls to its backend. Furthermore, its frontend can be hosted on decentralized storage such as Swarm or IPFS.

> If an app=frontend+server, since Ethereum contracts are code that runs on the global Ethereum decentralized peer-to-peer network, then: DApp = frontend + contracts


How does the web3 or whatever js running in your web browser know what gateway to use to interface with the blockchain? What if that gateway goes down? How does it or any ETH or Bittorent node bootstrap in general?


The web3.js file doesn't pick your gateway. MetaMask uses a default gateway from Infura, but you can switch to another such as Cloudflare's gateway or a local node.


The web3 service host name is configurable by the user (with some defaults for batteries included user experience).


I made/am working on a DApp that does some stuff involving ANSI art as tokens with some additional properties that have rules that get enforced by the smart contract, which is essentially the back end. While the site sort of functions without being connected to the blockchain (there's a crappy database backed backend too), there is an entirely different set of data that's stored there that is not entirely in my control - only so much as the smart contract/backend coding permits once deployed to the Blockchain Virtual Machine.

Instead of talking to an API connected to a database, it's connected to an ABI talking to the blockchain. Someone could directly interface with that, or use my client, or build their own etc, it's open on the blockchain. Read operations are free unless specified, write operations generally have an implicit cost of the smart contracts currency at least with what I've used, which was Ethereum.


What is a "DApp?"


Decentralized App


You can create front facing software that only interfaces with blockchain(s). To create a wallet you create a pub + private key pair. You can then sign tx's with that. A DApp can enable transfer of assets between addresses, calling smart contract functions in deployed smart contracts, and the frontend keeps you updated on the tx statuses. Essentially they are created for privacy and security reasons, and to execute scripting code from a mobile app, which is stored at a deployed smart contract address. I'm not sure what Apple's motivation is here, compliance or legal issues would probably be their biggest complaint? Or is this their attempt to squash an app store within their App Store?


I believe Apple forbids running third-party code it hasn’t approved, with some exceptions for educational apps.


> I believe Apple forbids running third-party code it hasn’t approved, with some exceptions for educational apps.

Exceptions list:

1) Content served over HTTP(S) such as JavaScript.

2) WeChat.

3) ...


WeChat/LINE/AliChat etc all do their apps with JS in a webview, which apple explicitly allows.


Which is probably why Firefox Mobile on iOS can't have extensions, which is a shame.


I see, it's like when developers build automatic deployment into their apps to avoid app review.


Yeah but these apps are just html and JavaScript which is normally allowed.


Yeah Apple explicitly states that in their guidelines. Why would they ban it?


dApp is kind of a flexible word, but the typical unifying feature is that the user has custody of a private key they use for signing transactions on a distributed ledger.

Most dApps (at least the ones you access through a dApp browser) have UIs built using regular web technology, and served over http.

As for why Google/Apple are doing this, I can only imagine that it threatens their walled garden by giving web users more access to payments that they'd rather monetize.


Why is the iPhone so often associated with innovation? It’s always the thing that prevents innovation and substitutes banks (ultimately) manipulating individuals.


If you ever tried to develop software on phones before the iPhone, you'd understand. A buddy and I developed a pretty cool 'Cocktail App' for the Danger Hiptop.

After many months of frustratingly going back and forth, we were not able to get it onto the Hiptop app store because the carrier (T-Mobile) did not want to be responsible for someone using a recipe to make a simple bar drink and then going off and killing someone. They eventually added a 21+ category and we still couldn't get it onto the store. Never mind the fact that someone could just use the installed web browser to view the same exact content.

Of course you'd think that we should have known that we might get rejected... but the issue was that Danger couldn't even talk to the carrier until the app was written and they could physically show it to them. So it was one of those things where we knew the app might get rejected, but we took the risk anyway. It was a good learning experience.

So yes, this weird stuff around getting software onto phones has been going on for a long time. Apple was one of the first to take the control away from the telco. I don't know if that is better or worse, but it changed the economics substantially.


> So yes, this weird stuff around getting software onto phones has been going on for a long time. Apple was one of the first to take the control away from the telco. I don't know if that is better or worse, but it changed the economics substantially.

The legal burden is no longer on the telco's but on Apple in this case.


Correct. At the time, there was no way to even talk to the telco. All communication had to go through a single person at Danger who was overloaded with their job and barely had time to respond to people who were not guaranteed to make it into the store. Luckily I had friends that worked at Danger and could help a little.

It took a while and went through a lot of growing pains, but at least now, Apple has the financial resources to hire staff to respond to support tickets. If we are comparing literal apples to lemons... I'd much rather deal with someone at Apple than someone at a telco.


Because it was innovating... 13 years ago.



All distributed apps should be built for the desktop first. Everything else will be censored.


There's nothing stopping you from throwing a DeFi interface on a local web server. Built for web doesn't mean web exclusive.


That's true, but it's just more difficult to distribute.


You're right, it is inconvenient. There are some desktop dapp browsers such as shadowlands (supports uniswap and makerdao) but nobody is really using these (yet). https://github.com/kayagoban/shadowlands


Apple taking giant craps on less powerful companies, is becoming routine. After all this publicly available information on their behavior, if the supreme Court sides with apple on app store policy, I think we'll have Google and Microsoft immediately pivoting to this model of fingering developers and end users


I remember hearing about this portion of the App Store policy before - where "mini app stores" are essentially banned. Can anyone link to this specific portion of the policy? Curious to see what it actually says.


The language around this changes constantly and currently says something about not emulating multi-app widget experiences.


It would be helpful if the post explained what this is and means. What is "DApp browser?"


Remember when Microsoft sued OpenOffice for building a functional free competitor? Or when Sun sued Python?

I feel it's time to ramp up support for Ubuntu Touch.


> Remember when Microsoft sued OpenOffice for building a functional free competitor? Or when Sun sued Python?

They never did. They never did.

Both companies did some evil things in the 90s and 00s (Microsoft arguably much worse than Sun) but not what you described here. There were some worries from words that Microsoft might sue OpenOffice users. Sun never sued "Python" (you cannot sue a programming language, for starters).

..and why specifically Ubuntu Touch? There are other FOSS options available. Ubuntu Touch never took off, and is now a community project. Even Windows Phone failed. I put my money on Sailfish OS as platform #3 (if we ignore KaiOS) which is partly FOSS. Why SFOS? Because it will get adoption in non-Western markets such as Russia and India. Countries don't want to be dependent on US proprietary code because it isn't auditable, and these companies in the end do what the US government asks or demands them to do. I'm also curious what is going to happen with the Chinese Android fork led by Huawei.


Sailfish is definitely my next phone OS, and even though walking away from Google / Apple tentacles is one incentive, by far the biggest for me is that it runs Linux, complete with terminal etc. Oh the joy of just being able to grep, rsync, ssh...

I always felt like that wasn't a lot to ask, but evidently, I couldn't be further away from the truth.


What do you feel about the pinephone?


I haven't looked much into it yet, but I really, really like what they do with Pinebooks. Heard only good things about them. Looking at the announced specs[0], the phone is very promising to me.

I'll probably wait for a general release (apparently the "Brave Heart" edition is for devs and very-early adopters). It's definitely on my radar.

[0] pine64.org/pinephone/


Termux on Android and you can install Debian, Kali, etc.


I did try that but there's way too much going on between these and low level, it was slow and just not a great experience to me.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: