Challenge Overview
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. One piece we're working is the list and scroll view classes. This challenge will implement a React Native app or set of apps that cover the requirements below.
Note
This challenge is *only* React Native. We will do work to translate it to the XRE stuff later, so all you need to do is implement the React Native requirements covered below. Note that your solution should cover different cases and combinations of options, not just the explicit items mentioned below.
Requirements
This challenge will focus on ListView and ScrollView.
* https://facebook.github.io/react-native/docs/listview.html
* https://facebook.github.io/react-native/docs/scrollview.html
We want examples that cover all the different options of both classes. Your examples should be relatively rich, with text and images.
Code quality and documentation
The code will be used as an example and in developer documentation. It's important that your code is clear and well documented to ensure that it isn't confusing for future developers.
Navigation
Your sample app must be navigable completely through the keyboard as well as touch. Up, down, left, right buttons, "backspace" to go back, and "enter" are all usable. If there are places where this isn't a practical requirement, please mention that in the forum.
Best practices
The code should follow React Native best practices, and we expect the code to be clear and concise as it will be used in documentation and for validation in the future. We will use the output of this challenge to build in the additional handling into our XRE layer, making sure to compare the output from XRE to the output displayed in this sample app.
Submission
Your submission should be a React Native app that can be built and installed on an Android or iOS device or simulator, meeting the requirements laid out above. Your README must clearly describe how to build and test the app.
Just the app running and some validation is all that is required for the video. You don't need to cover the entire build in your video.
Note
This challenge is *only* React Native. We will do work to translate it to the XRE stuff later, so all you need to do is implement the React Native requirements covered below. Note that your solution should cover different cases and combinations of options, not just the explicit items mentioned below.
Requirements
This challenge will focus on ListView and ScrollView.
* https://facebook.github.io/react-native/docs/listview.html
* https://facebook.github.io/react-native/docs/scrollview.html
We want examples that cover all the different options of both classes. Your examples should be relatively rich, with text and images.
Code quality and documentation
The code will be used as an example and in developer documentation. It's important that your code is clear and well documented to ensure that it isn't confusing for future developers.
Navigation
Your sample app must be navigable completely through the keyboard as well as touch. Up, down, left, right buttons, "backspace" to go back, and "enter" are all usable. If there are places where this isn't a practical requirement, please mention that in the forum.
Best practices
The code should follow React Native best practices, and we expect the code to be clear and concise as it will be used in documentation and for validation in the future. We will use the output of this challenge to build in the additional handling into our XRE layer, making sure to compare the output from XRE to the output displayed in this sample app.
Submission
Your submission should be a React Native app that can be built and installed on an Android or iOS device or simulator, meeting the requirements laid out above. Your README must clearly describe how to build and test the app.
Just the app running and some validation is all that is required for the video. You don't need to cover the entire build in your video.