Challenge Overview
NOTE - This challenge has shorter phases and a fixed reviewer fee.
Welcome to the XPrize Visioneers Native Android App Resources Implementation & Bug Fixes challenge.
In the earlier challenges, we’ve built the various screens for this app and then hooked it up to the client API. The code is available on our Github repository (request access via forums). Now, we want to implement the pending screen for Resources and fix some issues found in client feedback.
Challenge Requirements
The scope of this challenge involves
A) Client Feedback bugs
We’ve provided a slide deck in the forums which lists out the app issues based on client review
B) Implement App Caching
We need to implement caching behavior in app as per the following rules
1. The user must be able to login offline and all data must be retrieved from the app cache
2. Create the following values in app settings. Set default cache values to the following (in minutes)
· "Cache Expiry (minutes)" - 1 Day
· "Interval for Checking New Messages" and set that default to 30 mins
· "Reset Cache on Next Launch"
3. Caching Rules:-
Rule for all screens should be the same. The data received from server must be cached until the ‘Cache Expiry’ parameter is hit. Caching should not prevent new data from coming in (i.e. messages)... Caching should only apply to existing data.
-
Setting ‘Reset Cache on Next Launch’ - should clear the cache for all data for tabs for the next app launch
C) Other Fixes
1) Need to add option to “Refresh Data” on the User Profile Page. This should be the first item, above Terms & Conditions. This should invoke the corresponding API again.
2) List the app version number under settings. Use v0.1 for this version
3) Integrate the provided app icons
4) Background image for the prizes should change when a new prize is selected and still appears to be hard-coded. They should be using the api/sponsor/{id}/prizes field prizeBannerImageURL for the background image.
5) Need to add privacy policy on the login screen (attached in forums)
6) When going offline, we are still getting a "No Internet Connection Screen". This screen should not appear. The cached data should be displayed and if no cache data is available then display “No Internet Connection Available”.
General Notes
Note the following :
- The app remains locked to portrait mode
- We’re open to using Retrofit, Volley and okhttp. If you need to use another library/ framework, please ask for approval in the forums to ensure there are no license violations
- Make the Server URL configurable, do NOT hardcode any parameters directly in your code
- Make sure all your code is well-documented using Javadoc comments. All public methods and attributes must have valid Javadoc comments.
Final Submission Guidelines
- Android Studio project
- Deployment guide with configuration & verification steps. Describe all config params and include steps to run
- Demo video (Mandatory and will be scored down if not provided)
- Winner will be asked to raise a merge request on the repo