Cross-platform Mobile Development Skills Assessment
Repo Location: https://github.com/tim-lynn-clark/codechallenge-reactnative
This React Native code challenge provides each candidate a consistent
and fair
opportunity to demonstrate the skills they have developed and practiced over their years of software engineering.
Additionally, the challenge allows each candidate the ability to go above and beyond
to make sure the development manager and team can see their unique combination
of skills and abilities
and better understand why they should be the newest member of our amazing team.
The challenge is designed to test the development skills
, processes & procedures
, git workflow
, methods
, and problem solving
used on a daily basis during software engineering. It is anticipated that the majority of candidates will NOT
complete the entirety of this code challenge.
The extent of the requirements are simply there to provide candidates with options to move forward in the challenge if they become stuck on any one requirement. This also allows the same test to be used to assess developers with skill levels from entry to senior to architect.
Simply do your best to complete as many of the requirements as possible within the time allotted. Please document in your code when you get stuck, your thoughts as to why you became stuck, and what you tried to become unstuck before moving on to another requirement. This documentation can go a long way in helping the team understand why you did not complete a requirement, where we can help you develop as a professional, and your problem-solving methodology. Don't let this challenge stress you out, we simply want to see what you can do and just as important how you do it!
For this challenge, you will build a mobile application that utilizes a third-party RESTful API as its data source. The data supplied by the API is related to a few types of cancer and provides details about those cancers to for use within the client application you are building.
The data provided for each cancer are:
- Overview of the cancer
- Treatments
- Causes and Preventions
- Screening Methods
- Coping with Cancer
The basic application allows the user to select a cancer type and is then presented with the details listed above in a user-friendly and easy to digest manner. The focus is to make the application as easy to use as possible for users with low levels of technical skill; this means intuitive, accessible, and responsive. Just like pretty much every user out there, we don't like ugly user interfaces, so please, spend some time making sure the application is pleasing to the eye in addition to functional and easy to use.
We will keep this quite simple.
- Fork this repository to your own GitHub account
- Setup and initialize a new React Native application within the newly cloned repository
Note: You will be required to provide the repo URL to your fork of the code challenge. It is expected to be under your personal GitHub.com account. please make sure the repo is publicly accessible. Keep in mind, we want to see how you develop, this includes how you use Git in your development process.
Verify that the new React Native project:
- Builds
- Runs on either an Android or iOS device emulator, or both, it is up to you (must have a mac to build and run on iOS, NOT provided for this code challenge)
Use the Mock RESTful API as your application's back-end. NO modifications
are to be made to this back-end API during this code challenge, it is to be used AS IS
. It is found on GitHub at https://github.com/tim-lynn-clark/codechallenge-mock-api
Verify:
- Builds
- Runs and can be reached locally using http://localhost:8888
Where the fun really beings
- Development environment setup instructions
- Handle common errors associated with asynchronous API calls (i.e. HTTP error responses, failed API calls, etc.)
- Handle common formatting issues that arise when using a third-party API as a back-end (i.e. proper letter casing, empty strings, empty objects, missing data, extra spaces, etc.)
- Listing the cancers
- Making each cancer clickable so the user can select one to view
- Navigating to a details view, so the user can read the overview of the cancer they selected
- Listing the various items from the selected cancer
- Treatments
- Causes and Preventions
- Screening Methods
- Coping with Cancer
- Allowing the user to open and view linked external resources from within the mobile application
- Key functionality is well tested using unit tests