News for hackers. Stuff that matters.
Re:AppHub – Update React Native Apps Without Re-Submitting t... by benthehenten on Wednesday August 12, 2015 @11:39AM (#10048299)
AppHub co-founder here, we realize that this is something that would seem to be prohibited by Apple, but updating JavaScript code is explicitly permitted by the iOS Developer Agreement [1]. This same technology is used by Meteor [2], Trigger.io [3], and Adobe Hydration [4], and also used by Facebook and Palantir [5] in their apps.

[1] https://developer.apple.com/programs/ios/information/iOS_Pro...

[2] http://info.meteor.com/blog/apple-hot-code-push-mobile

[3] https://trigger.io/

[4] http://docs.build.phonegap.com/en_US/tools_hydration.md.html

[5] https://medium.com/@clayallsopp/a-dynamic-crazy-native-mobil...

Re:AppHub – Update React Native Apps Without Re-Submitting t... by doe88 on Wednesday August 12, 2015 @12:29PM (#10048751)
> but updating JavaScript code is explicitly permitted by the iOS Developer Agreement [1].

With the following caveat though:

[3.3.2] provided that such scripts and code do not change the primary purpose of the Application by providing features or functionality that are inconsistent with the intended and advertised purpose of the Application as submitted to the App Store.

Re:AppHub – Update React Native Apps Without Re-Submitting t... by andrewljohnson on Wednesday August 12, 2015 @12:49PM (#10048882)
Yep, "feature flipping" can lead to app rejections and getting booted from the store.

* If the AppHub founders think this is a real danger, then you'd expect bold and strenuous documentation.

* But, I wonder if the AppHub authors believe that people should ignore this rule, because practically speaking it's hard to get caught. They wouldn't say so, of course, because encouraging people to break Apple ToS is illegal.

Re:AppHub – Update React Native Apps Without Re-Submitting t... by habitue on Wednesday August 12, 2015 @01:34PM (#10049261)
Is it illegal? I would expect it to maybe break the ToS or something contract related, not be criminal.
Re:AppHub – Update React Native Apps Without Re-Submitting t... by derefr on Wednesday August 12, 2015 @04:58PM (#10050575)
It feels like it might be some sort of crime specifically to misrepresent your product as being capable of X and sell it to people who you know will try to use it for X, when X is disallowed by the ToS of the platform. Con-artistry of a sort.
Re:AppHub – Update React Native Apps Without Re-Submitting t... by eloisant on Wednesday August 12, 2015 @05:17PM (#10050677)
You could see that as "false advertising", but considering they link to the Apple TOS they're not really hiding everything.

And actually, merely adding features doesn't seem to be forbidden as long as the features you add are not "inconsistent with the intended and advertised purpose of the Application as submitted to the App Store"

So let's say you release a file manager and later, surprise! It's also a SNES emulator! Well, then yes, I can see that against the TOS. But if you're just making improvements to your app, I don't see a problem.

Re:AppHub – Update React Native Apps Without Re-Submitting t... by andrewljohnson on Wednesday August 12, 2015 @05:37PM (#10050803)
I think illegal is the correct word there. I won't comment on the statutes (IANAL).

It was just a hypothetical though. AppHub has plenty of legit use cases under Apple rules, and it's probably not all that dangerous even if you "mis-use" it slightly. AppHub would have to explicitly encourage people to break the rule to run afoul, or Apple would have to organically notice a bunch of apps doing a bunch of outlandish feature flipping.

Re:AppHub – Update React Native Apps Without Re-Submitting t... by jaegerpicker on Wednesday August 12, 2015 @09:31PM (#10051849)
With the way the CFAA is enforced, you look at a computer in a way someone with money doesn't want you to and it's federal prison worthy. I'm sure an over eager DA could and would try and make the case.
Re:AppHub – Update React Native Apps Without Re-Submitting t... by madeofpalk on Thursday August 13, 2015 @12:10AM (#10052213)
The 'AppHub' stack looks good and can solve lots of problems.

However I think advertising it as a mechanism to get around the App Store review process is a quick way to get noticed by Apple, and not in a good way.

Re:AppHub – Update React Native Apps Without Re-Submitting t... by murukesh_s on Wednesday August 12, 2015 @12:15PM (#10048609)
"Use git push to update your app without re-submitting to Apple." - That's the prominent tagline in your home page. Isn't that too direct? One suggestion - wording it without being too obvious could prevent your from a possible ban, and an even worser outcome of Apple changing their policies.
Re:AppHub – Update React Native Apps Without Re-Submitting t... by teacup50 on Wednesday August 12, 2015 @03:01PM (#10049885)
Apple aside, doing this kind of thing silently sucks for users -- one of the benefits of native applications over the web is having control over when updates containing potential regressions are inserted into your workflow.
Re:AppHub – Update React Native Apps Without Re-Submitting t... by awinder on Wednesday August 12, 2015 @08:35PM (#10051664)
Couldn't this also aide in correcting regressions at the same time?
Re:AppHub – Update React Native Apps Without Re-Submitting t... by teacup50 on Thursday August 13, 2015 @11:11AM (#10054778)
Yes, but as a developer, you're less likely to ship regressions in the first place if your deployment process involves more structure (beta testing, internal code freezes, release branches containing only bug fixes, etc) than 'git push'.

Of course, that runs counter to the "continual deployment" idea popular in web circles, but that's the entire point.

Re:AppHub – Update React Native Apps Without Re-Submitting t... by awinder on Saturday August 15, 2015 @11:40AM (#10065657)
This doesn't prescribe which branch you do the git push to though. I'm sure you could just as easily set up a branching scheme where you went through testing and internal releases, and launched new code off a stable branchline
Re:AppHub – Update React Native Apps Without Re-Submitting t... by robmcm on Thursday August 13, 2015 @04:28AM (#10052827)
Yes it's a double edged sword, in most cases I would favor the ability to update and fix the application without having to force users to manually install an update.
Re:AppHub – Update React Native Apps Without Re-Submitting t... by mokkun on Thursday August 13, 2015 @04:31AM (#10052835)
Totally agree with this. As a dev it might sound like a cool thing, but as a user it sucks. Many, many times I found myself not updating an app because I won't agree with the changes (UI, new features, etc) or new permissions that were required.
Re:AppHub – Update React Native Apps Without Re-Submitting t... by hharnisch on Wednesday August 12, 2015 @12:02PM (#10048488)
It looks like you're sending the whole JS bundle when doing a deploy, do you think you'll support async loading? Would help with massive applications and other speed related optimizations.
Re:AppHub – Update React Native Apps Without Re-Submitting t... by vjeux on Wednesday August 12, 2015 @12:40PM (#10048830)
Right now React Native packager bundles everything in one file but we're actively working on splitting it into many different files and supporting require.ensure() in order to asynchronously load modules.
Re:AppHub – Update React Native Apps Without Re-Submitting t... by Touche on Wednesday August 12, 2015 @03:11PM (#10049955)
Oh, so you're only going to support WebPack? That's disappointing.
Re:AppHub – Update React Native Apps Without Re-Submitting t... by skrebbel on Wednesday August 12, 2015 @03:27PM (#10050053)
They take pull requests
Re:AppHub – Update React Native Apps Without Re-Submitting t... by spicyj on Wednesday August 12, 2015 @04:23PM (#10050368)
No one said anything about webpack. If you have another async module loading syntax you'd prefer I'm sure we'd be happy to look at it.
Re:AppHub – Update React Native Apps Without Re-Submitting t... by Touche on Wednesday August 12, 2015 @04:40PM (#10050477)
Webpack is the only loader that does require.ensure to my knowledge. To answer your question; there's also System.import() (SystemJS) and require([]) (any AMD loader like requirejs) that are async module loading.
Re:AppHub – Update React Native Apps Without Re-Submitting t... by spicyj on Wednesday August 12, 2015 @04:49PM (#10050525)
React Native has its own packager, at least for now.
Re:AppHub – Update React Native Apps Without Re-Submitting t... by arbesfeld on Wednesday August 12, 2015 @12:11PM (#10048566)
Great question! Our iOS SDK asynchronously downloads new JS bundles and images, and then loads the updates when your app is restarted. There are definitely some speed optimizations that we can make in the future, such as using diffs to apply updates.

We're excited to open source the iOS SDK in the future so that everyone can take a look and contribute.