Challenge Overview
NOTE - This challenge has shorter phases and a fixed reviewer fee.
Welcome to the XPrize Visioneers Native iOS App API Integration Challenge.
In the last two challenges for iPhone and iPad, we have developed a functional prototype app. The app currently displays dummy data and we now want to hook it up to the backend API server.
Challenge Requirements
API Integration
In this challenge, you will use the existing app codebase which implements the iOS app prototype and hook it up to the backend API. Full details on the API and mapping to respective screens are available in the challenge forums.
The following screens/ sections are in scope
-
Login (Invitation Code is NOT in scope)
-
Sponsor Dashboard
-
Program Stats
-
Payment Information
-
Upcoming Activities
-
Program Team
-
Timeline
-
Timeline Event
-
Sponsor Prizes
-
Payments
-
Cash Status
-
Team Members
-
Program Team Member
We will be covering the remaining screens - Messages, Financials & News (Impact) in the next challenge.
Application Name Change
The application is currently named ‘Xprize Visioneers’. Please change it to ‘Xprize’
Authentication
You need to implement the oAuth2 flow as provided in the API documentation.
- Please add a ‘password’ field (should be masked) below the email field
- You do NOT need the Activation Code field for authentication
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.
-
However, please note that the auth flow on Android uses browser - which is WRONG. It is expected that the native login screen is used for authentication with the provided endpoint.
-
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