Live data from Hacker News

Electron apps cannot be submitted to the Apple store

david.dev

181–190 of 441 posts

Re: Electron apps cannot be submitted to the Apple store

#181
post #173
post #61

Earlier quoted context omitted.

How short are memories. I remember how Microsoft was vilified for supposedly having secret Windows APIs that allowed Microsoft apps to get better performance. That was mostly made up and even if such APIs existed, any program could have used it. Even at the height of corporate arrogance Microsoft didn't dream of banning developers for using undocumented APIs. Apple seems intent on becoming more evil than Microsoft ev…

Microsoft was vilified for many anticompetitive practices. I worked on an app that competed with a Microsoft app. Our app was actually winning in the marketplace. One year they release a new version of their app with some really cool features at the same time as the latest Windows release. Those features were based on some new APIs released with that version of Windows. Just gave their app a year leap. Another evil p…

As opposed to "here are some APIs that you can't use but we can, neener neener"?

Re: Electron apps cannot be submitted to the Apple store

#182

Earlier quoted context omitted.

> Microsoft didn't ban anyone for using undocumented private APIs because they couldn't, not because they chose not to. Sure they could have, they had a code signing platform since the mid 90s and could have locked API access only to apps signed by them. They didn't because it would have been pointless not because they couldn't figure out how.

Code signing does not do what you apparently think it does. They can’t block it unless it’s a windows store app/universal app, which is sandboxed. And that’s exactly what they do for those apps. Tim Sweeney ranted about this quite vocally!

I never said code signing DID do that. Of course it didn't, there were no secret high performance Microsoft only APIs in the first place. I said it COULD have easily been used to do that. E.g. make special API/syscall to unlock restricted APIs, Windows checks the signing status of the executable making the call and only grants permissions if it is signed by MS.

It's actually also not true that Microsoft only ever blocked things based on signing cert from the Windows Store/UWP platform. Windows Defender Smart Screen blocked/blocks apps from running without user intervention unless it was either extremely well known or was signed (and even then if it was new you might still get caught by it).

Re: Electron apps cannot be submitted to the Apple store

#183
post #179

Earlier quoted context omitted.

Again this shows a complete lack of understanding how software development works. If you have a public function “A” that is implement using private methods B,C,D. The implementor is free to change B, C, D or completely get rid of them to implement A. This is software engineering 101. Apple was able to make multiple cpu transitions doing this. Back in the PPC days, non native apps could run at near native speeds calli…

Put B,C,D on the other side of a privilege boundary. Most obviously, they can go in the kernel. They can go in a separate process, using the Mach messaging that Apple so loves. There are other designs, as seen in Multics and VMS, with semi-privileged libraries. One could implement semi-privileged libraries on ARM by switching to a different page table when an attempt is made to run the library code. For secured forms…

There is always a performance penalty when switching between “rings”. Private methods are an “implementation detail” that shouldn’t be depended on.

Would you write a C++ program that called private functions using pointers? Would you write a C# program that called a private method using reflection? Should the dependency maintainer have the expectation of people calling private methods and not break your code?

Every suggestion you have leads to performance issues.

Re: Electron apps cannot be submitted to the Apple store

#184

As a user I am glad. As is custom for all Electron discussions, someone must point out its flaws. Why the dislike, you ask? A picture is worth a thousand 64-bit words: https://imgur.com/a/XnCOHUD And mind you, GitHub Desktop is taking that much just for showing a mostly empty window! while Fork and Tower are displaying a lot more UI, more controls, trees, custom drawing, more text, and have overall more features (bes…

>Why the dislike, you ask?

Nobody is asking that, there's a crowd in here that restates the same three points about memory, performance and native UI about once a week.

I dislike waste, I have written assembly code for tiny processors. And yet, I run several Electron apps on my 8gb 2013 Macbook Air and it runs fine, especially VSCode. I am picking that over my previous choice which was native (vim), because I think it's better.

Re: Electron apps cannot be submitted to the Apple store

#185
post #173

Earlier quoted context omitted.

Microsoft was vilified for many anticompetitive practices. I worked on an app that competed with a Microsoft app. Our app was actually winning in the marketplace. One year they release a new version of their app with some really cool features at the same time as the latest Windows release. Those features were based on some new APIs released with that version of Windows. Just gave their app a year leap. Another evil p…

As opposed to "here are some APIs that you can't use but we can, neener neener"?

You are assuming that these Apple APIs are used to give Apple a competitive advantage somehow. From what I can tell, these specific APIs don't. What they do give Apple an advantage in ironically is in forcing more developers to develop using (Apple) native APIs.

The CA prefixed ones are core animation related. Some of the others appear to be drawing frame related. I am not sure what the remote one does. None of these are giving Apple a direct advantage. I bet Electron tried to access to them to draw web pages smoothly.

The Windows API availability window gave Windows apps market advantages.

There are other private Apple APIs that do give Apple an advantage against app developers. Those advantages are in accessing physical hardware and possibly associated software, background processing, and integration (iCloud, etc...) But these aren't the bone of contention.

Re: Electron apps cannot be submitted to the Apple store

#186
post #118

Earlier quoted context omitted.

> They do not ban you for removing some uses of private APIs, but missing others and resubmitting. Maybe not -- maybe you know something about how Apple operates. But clearly they ARE sending responses threatening to do exactly that.

Because in the past, developers have obfuscated their use of private APIs rather than removing them. They are threatening to ban people who abuse the platform. They aren't going to ban anyone making an honest effort to eliminate their use of private APIs.

Where as on Windows there is no such issue.

Re: Electron apps cannot be submitted to the Apple store

#187
post #48

Earlier quoted context omitted.

Presumably you can't check for violation yourself without submitting.

You can, and the rejection email even provides instructions for how to do so.

And where will you get the current list of all forbidden functions/APIs, not just those for this specific case with Electron?

Re: Electron apps cannot be submitted to the Apple store

#189

Earlier quoted context omitted.

> then tries to hide their use of private APIs rather than stop using them [...] Resubmitting the same thing and hoping that it doesn't get caught the next time isn't an honest mistake. This is missing the point of the post you are replying to. Say you identify five closed API dependencies and remove them. Do you resubmit? If you missed any others, you and all your apps might be banned.

How exactly do you miss a dependency?! If it's not your code, then it's a dependency that you need to look at.

Have you never run maven, sbt, gradle on a Java project, or PHP compose or .. anything in node? There are so. Many. Dependencies in some of the frameworks people commonly use. It can get pretty insane. We all remember left-pad, right?
Post reply on HN