Challenge Overview
Welcome to the XPrize Visioneers Native iOS iPhone App Prototype Challenge.
The goal of this challenge is to take the provided UI Design in Sketch and convert it to a native iOS application prototype. This is the first in a series of challenges to build this iOS app so now is a good time to get involved!
Challenge Requirements
In this challenge you will develop a iPhone app that has all screens provided in the provided design. Note the following:
- We have provided the Sketch source files in the forums
- All design assets, fonts are provided in the forums
- The design is very detailed to show all variations. If there is anything not clear please post questions in forums.
- Use JSON files/ data classes for mock data. The objective is that it should be possible to easily stub out these calls with actual backend API in subsequent challenges.
Screen Requirements
Only the screens listed below in the Sketch design are in scope, refer to them and and let us know in the forums if you have any questions. The notes below are to help understand some screens/ elements better but aren’t exhaustive.
04_Login
-
Implement all validations and modal dialogs as shown
-
Use spinner as shown
05_Dashboard
-
Implement slider as shown
-
Clicking phone and mail icons to invoke respective applications
-
No action is required on clicking Skype icon for now
06_Financials
-
Use an open-source chart library
-
You can mock the chart data for now as long as the charts match the design in terms of visualisation
08_News
-
Implement carousel as shown
09_Messages
-
Swiping right to left should shown delete option in listview
-
Implement all elements on all screens as shown
11_Profile
-
Clicking Logout should redirect user to login screen
-
Clicking Camera icon should allow user to click a picture or choose from gallery
12_Empty_States
-
Add a flag in the plist file called isEmpty
-
If isEmpty is true, then show these screens to simulate the no network condition
13_Assets
-
Contains all needed assets
General Notes
Note the following :
- The app will be locked to Portrait mode
- Only iPhone device is in scope. We’ll run another challenge for iPad support. App should support all devices above from iPhone 5
- App must support 1x, 2x and 3x assets and retina devices
- App must support iOS 10.x
- The implementation must be a native application, native controls must be used wherever possible
- All code must be written in Swift and the project must use latest XCode version (10.3.2). Do not use Objective-C or Bridging approach
- Use of pods is permissible. We’re not keen on using Carthage - if you think there’s a compelling reason to do so, please raise it in the forums
- 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
Deliverables
- 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)