
Show HN: ReactNativeAutoUpdater – support dynamic updates for React Native apps - yurisagalov
https://github.com/aerofs/react-native-auto-updater
======
potomushto
There are also two alternatives: [https://apphub.io/](https://apphub.io/) and
[https://microsoft.github.io/code-push/](https://microsoft.github.io/code-
push/). Works for me in the real app very well, even in a synchronous mode in
some cases.

~~~
yurisagalov
One difference between this library and the two you linked to is that ours is
fully self-contained -- no accounts/3rd party hosting required :)

~~~
arbesfeld
The AppHub client is also open source [1] and can be configured to point to
any backend [2]. We also support asset updates, and the client has been tested
in many production apps.

With CodePush, AppHub, and this, it would be nice to have the community
converge on a shared auto-updating client. Perhaps down the road we could see
this functionality integrated into React Native itself.

[1] [https://github.com/AppHubPlatform/apphub-
ios](https://github.com/AppHubPlatform/apphub-ios)

[2] [http://docs.apphub.io/docs/self-hosting](http://docs.apphub.io/docs/self-
hosting)

Disclosure: I created AppHub

------
arasmussen
The most interesting part is that Apple seems to be cool with this:

> Does Apple permit this?

> Yes! Section 3.3.2 of the iOS Developer Program allows it "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."

I really, really hope this doesn't go away.

~~~
maz-dev
I use this feature with a Meteor app and it's really nice. Just be sure to not
load a corrupted or crashing bundle, else your user will need to reinstall the
app.

Apple is allowing this because JS is sandboxed, so I guess it's here to stay.

~~~
martinald
I wouldn't be so sure. If this starts getting real traction then it is a
_huge_ leap over the native development process. Which ironically is all
Apple's fault for it taking so long for them to approve updates.

Having said that Apple seems slightly more chilled now Cook's in charge.

Also, this is react native, so it is only sandboxed in the way any other app
is. The JS->ObjC bridge can do pretty much anything a native app can do so I
don't think the JS thing makes much difference.

I think really it's in there so people can update webviews of content without
having to resubmit the whole app. I don't think this is the spirit of that
rule. Would be pleasantly surprised if not though.

------
joneil
As somebody building my first react-native app at the moment, and planning to
submit to the app store this week - thank you!

2 questions:

1\. If you don't ask the user to update immediately after it is downloaded,
when will the update apply? The next time the app is opened?

2\. Is it possible to handle events around the update process from from
Javascript? (For example an `onBeforeUpdate` or `onAfterUpdate` event.)

------
marvel_boy
This is great, I guess that Apple is now deciding what to do with your app.

~~~
harperlee
From the link:

    
    
        > Does Apple permit this?
        > Yes! Section 3.3.2 of the iOS Developer Program allows it "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."

------
urvader
Just use a webserver with correct 304 handling (like s3) and publish your
bundle there. It works both for React Native and Cordova.

------
morenoh149
Android support ? :(

~~~
andy_ppp
Seems like codepush supports react-native android at least.

[https://github.com/Microsoft/react-native-code-
push/blob/mas...](https://github.com/Microsoft/react-native-code-
push/blob/master/README.md#android-setup)

~~~
lostintangent
Yep we do! We don't support updating assets on Android yet but we will as soon
as the necessary platform support is released (should hopefully be in RN
0.19.0)

