Create a simple game using React Native, you are expected to demonstrate your knowledge and proper use of basic react features, and your ability to utilize javascript as a programming language.
Some of the grading criteria is the same as A1, this is because ideas like having a modular structure, good coding styles and conventional commit messages are always expected from your code.
- React
- React Native
- Expo
- Use
expo init
to start a new React Native project - Start coding from
App.js
- View the app in a web browser or iOS/Android simulator
For the purpose of this assignment, your React Native project should be managed by Expo, ejection for further fine tuning is not only not required, you are recommended to keep your app within what Expo can manage and avoid ejection.
- Use React, React Native, and Expo
- Make sure your React Native's node module is setup properly using Expo's distribution
- Change your app's splash screen via Expo's
app.json
- Proper structuring of components
- Create a modular architecture by spliting the application into components
- Proper use of context, states, and props to share data between components.
- State and props should not rerender excessively - components that are not intended to re-render should be affected by unrelated changes to the web app
- At least one legitimate use of the useEffect hook
- Use 3rd party component library for app paging (e.g. Home Screen, Game Screen, etc.), you can use
react-router-native
orreact-navigation
- Good coding style, this includes having comments, proper indentation, self-explanatory variable/function names, etc.
- Git, and commit your code regularly.
- Use conventional commit messages. See: https://www.conventionalcommits.org/en/v1.0.0-beta.4/
- If you only have one commit in your git repo you will not receive any points for git. Commit often
- If you branched out to develop features and bug fixes, make sure you push these branches to the remote as well, these are good practices and will be take into consideration for your Git score.
- Use functional components for all components and hooks to manage all state
- Use a third party hook (hint: if you are using
react-router-native
orreact-navigation
, the use of their hooks is most probably inevitable) - Use useReducer or Redux