We've been able to make a lot of progress on the client consumption experience in the last few months (thanks to all of the amazing feedback we've received), but we definitely have a lot more work to do! The following is a list of pending ideas/todos that we know we need to do, and plan on tackling over the next couple of months (in no particular order):
-
Add support for the plugin being run within the context of the React Native Playground runner, so that devs can easily prototype an app that uses CodePush.
-
Expose the presence of an available update that requires updating the app from the store. This would accommodate both
checkForUpdate
andsync
, and allow the developer to choose whether they wanted to prompt the end user to update from the store, as opposed to simply not getting the update. -
Add an NPM post install hook that uses RNPM to do much of the iOS/Android installation automatically. This will make setting up new apps much easier.
-
Add a declarative way to enable calling
sync
automatically on app start, resume, on an interval, etc. Possibly a newInfo.plist
property and an extra constructor parameter for Android? -
Enable displaying the update prompt after the download completes when calling
sync
, instead of before attempting the download. This way the dialog can determine whether the end-user wants to restart immediately or not, as opposed to deciding whether or not to perform the download/installation. This would enable another common app update experience that some apps use (e.g. VS Code). -
Enable configuring basic throttling when calling the
sync
method so that you can delay showing update prompts after binary installations, prevent showing update prompts too frequently, etc. -
Add a new property to the
LocalPackage
object returned bygetCurrentPackage
that indicates whether it represents the current update because a newer update crashed and was automatically rolled back. -
Add a native API for reloading the app so that hybrid React Native apps (e.g. Android app with some embedded RN screens) can refresh their RN components programmatically.
-
Support publishing the Android component of our plugin to a Maven repository