Challenge Overview
NOTE - This challenge has shorter phases and a fixed reviewer fee ($200).
Welcome to the XPrize Visioneers Native iOS App Cache Implementation & Other 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) Implement caching for the app
-
Add the following 3 settings for app (Under Settings -> XPrize in device settings)
-
Cache Expiry (minutes)
-
Cache Expiry for Messages (minutes)
-
Delete Application Cache Now (toggle)
-
Delete Message Cache Now (toggle)
The rules to implement caching are as follows
-
For tabs/ screens other than messages, the data received from server must be cached until the ‘Cache Expiry’ parameter is hit
-
For messages, the data received from server must be cached until the ‘Cache Expiry for Messages’ parameter is hit
-
Setting ‘Delete Application Cache Now’ - should clear the cache for all data for tabs other than messages
-
Setting ‘Delete Message Cache Now’ should clear the cache for messages tab
B) Bug Fixes - Both iPhone & iPad
-
When losing internet signal, the following screens show a “No Internet Connection” Screen (Dashboard, Financials, Resources, News). However, the Messages screen just shows the messages layout with no messages (There is no error message/screen).
-
On the login screen, email address should be cached.
-
On the login screen, change the label of “Re-send Invitation code” to “Reset Password”.
-
After clicking on the “Re-send Invitation code” the error message is incorrect. Should be “Your new password has been sent”.
-
Need to add privacy policy on the login screen (attached in forums)
-
On the login screen, the “Reset Password” link needs to be connected to the API: PUT User/{id}/sendNewCode
-
After logging, when I try to log back in, it won’t allow in. An error message pops up with the message “Login Failed. No network connection”
-
New Message Detail screen – Please add the phone button and the email button. It should carry over the behavior if sending an email or making a phone call from the Bio Screen.
*Screenshot below
Current Screen Updated Screen
-
On the financials screen, the financial filter should not treat quarter and year as separate options, but should concatenate them so they are treated as one option so as to prevent users from selecting periods with no data.
-
When there is no financial information, the “no data” screen should be displayed. It should not be displaying the financial screen with no values.
-
When there is no news information, the “no data” screen should be displayed. It should not be displaying a blank news page.
-
Financial Screen needs to be updated. Add “*Totals shown above are for the entire program”
See Screenshots below.
Current Screen Updated Screen
13) In the user profile, hide avatar/picture functionality. Align names left where picture used to be. Add user’s full name above company name in the same style as company name. *See Screenshot below
Current Screen Updated Screen
C) Fix the following issues (iPhone only)
14) Need to remove back arrow on the login screens
15) Under user profile, hide App Tutorial
D) Fix the following issues (iPad only)
16) In the program team profile, there should NOT be a phone icon for the iPads that do not have ‘Cellular’ capabilities. If iPad is cellular enabled, then the icon should be displayed.
17) Under user profile, change “Help” to “App Tutorial”. Then hide “App Tutorial”.
General Notes
NOTES
-
Both iPhone and iPad screens are in scope. There should be NO hardcoding of data on respective screens once above mentioned APIs are implemented.
-
We have already run the corresponding Android challenge last week. The code for that challenge is available on our Android Github repo (request access via forums) so you can check it for reference purposes.
-
All source code changes must be well commented and MUST follow existing coding conventions
-
If you face any API issues or have doubts related to request response for any API, please raise it in the forums so it can be clarified by client.
-
The app works in both portrait and landscape modes
-
App must support 2x and 3x assets and retina devices
-
App must support iOS 10.x
-
All code must be written in Swift and the project must use latest XCode version. Do not use Objective-C or Bridging approach
-
Please ask in the forums if you wish to use any open-source third-party libs to ensure there are no license violations
Final Submission Guidelines
- XCode Project with all source code that addresses the requirements
- 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 to the repo