ico-arrow-big-left

Hercules React Native to XRE - Connection handling and new examples

Key Information

Register
Submit
The challenge is finished.
Show Deadlines

Challenge Overview

Describe what you want to accomplish. 
 

This challenge is part of a new project involving React Native.  The eventual goal is to have a way to build React Native apps for Hercule's embedded devices that communicate with the device over websockets, using the proprietary XRE messaging protocol.  They would like to see if we can build a React Native piece that sits on a server and communicates with clients, sending them XRE messages to draw the React Native components.

Basically, we are going to stream apps to a client and update the client based on actions that raise events from the client to the server.

Background

We have an existing codebase that implements some portions of what we are eventually going to want to see.  This challenge will clean up and formalise some parts of it and will also add a few new features.

Requirements

These tickets compose the requirements for this challenge:

https://gitlab.com/hercules-react-xre/react-xre-poc/issues/1 
https://gitlab.com/hercules-react-xre/react-xre-poc/issues/2
https://gitlab.com/hercules-react-xre/react-xre-poc/issues/3
https://gitlab.com/hercules-react-xre/react-xre-poc/issues/4

Background

The server side "screens" will be implemented in React Native, using React classes. 
The goal is to make sure the React Native definition is generic, not custom to XRE.  The normal React Native development process will apply on the server.

Client

In the forum is the XRE specification.  It has a section called "Establishing the XRE Connection" that should be followed for the connection flow.  In addition, you can use Charles to see the messages sent back and forth between the HTML XRE Receiver provided and the remote server to get an idea of the flow as well.

Native validation

To prove out the solution, we need to ensure that a native mobile build of an app matches what is displayed in XRE.  Please provide documentation on how to compile each example and run it in Android or iOS, and please also provide this information as part of your submission video.

Submission

Your submission should be a patch file in Git against commit hash 
685ad2c9960e18f6bbd9927b85a4b63d9934d5c6

NOTE:  You are free to change, reorganize, and refactor the code as you see fit.  You are not required to stick to any past decisions on architecture.

Please make sure your updated README covers:

1.  How to deploy the server-side to Heroku
2.  How to configure the client XRE receiver to connect to the server and work with the different apps available
3.  What the React Native app looks like

A video is required, but it only needs to cover the validation (XRE and native), not the setup.  Having the setup details only in the README is fine.

Links:


https://facebook.github.io/react-native/���
https://www.youtube.com/watch?v=hDviGU-57lU

Final Submission Guidelines

Please see above

Reliability Rating and Bonus

For challenges that have a reliability bonus, the bonus depends on the reliability rating at the moment of registration for that project. A participant with no previous projects is considered to have no reliability rating, and therefore gets no bonus. Reliability bonus does not apply to Digital Run winnings. Since reliability rating is based on the past 15 projects, it can only have 15 discrete values.
Read more.

REVIEW STYLE:

Final Review:

Community Review Board
?

Approval:

User Sign-Off
?

CHALLENGE LINKS:

Review Scorecard

?