Register
Submit a solution
The challenge is finished.

Challenge Overview

���Description 

The Beacon iOS app is something that will be used by cable technicians to identify faults and materials needed for cleanup after a natural disaster like a hurricane.  

This challenge will add iPhone support to the app.  This will involve adding build support to the project for iPhone and adding new screes provided below for the iPhone layout.

General requirements

This challenge will focus only on the portrait iPhone screens.  You can see them in marvelapp here: https://marvelapp.com/5810ejj    To see all screens, click the grid button in the bottom left.  The goal is to have the screens work on all recent iPhones, including 8, 8 Plus, and X.

We will target the latest version of Swift and XCode for this challenge.

Integration

We will integrate these screens over the existing functionality of the app, found in Gitlab.  Access will be granted through the forum.  The app will not be fully functional (layers won't work), because it requires VPN access, but it will run.

The report screens can be found by clicking the "+" icon in the header to add a report.


ARCGis

This challenge will require some basic interactions with ARCGis.  The codebase will load the library via CocoaPods when you first set it up.

You can see lots of samples here:
The current storyboards show using Apple Maps, but we are going to use the existing ARCGis maps the app already uses.

UI

The UI must be implemented as storyboards in XCode.  Since this is a prototype conversion, we must make sure that all elements are properly hooked back into controller classes and referenced in a way that will make it easy to fill in the prototype will real data in the future.  Please don't make one big storyboard if it makes sense to split up the functionality into smaller individual files, which makes it easier to manage in the future.

Your UI definition must properly support the resolutions of the newest iPhones with @2x and @3x files created for any images.

Components

Note that we can use the iOS standard components for:

* Camera
* Photo library 

ArcGIS

ArcGIS has been known to be problematic on iOS 10.3 and older iPads.  Please make sure to test on iOS 10.3 and older iPhones as well.  If you run into any issues, please report them in your README or the forum.

Keyboard

Note that the keyboard will show in spots in the UI, but this isn't taken into account in the storyboards.  You are responsible for ensuring that the keyboard doesn't overlap or hide the text entry cells.  The screen should slide accordingly, ensuring that the user can always see the text they are entering.  Submit and navigation buttons also should not hide when the keyboard is shown.

Functionality

All functionality should match what's already there in the iPad version.  We're just adding a new build target for iPhones and new UI for the report screens.  The screen elements should be pretty much the same between iPhone and iPad.

Image selection

The image selection should work as expected using the photo roll and camera iOS SDKs.  This should already be done in the iPad functionality - just make sure it works in iPhone and doesn't break in the iPad build with the new changes.

Swift compile time

Note that Swift can be sensitive to code structure that can make compile times very long for specific files.  Please make sure that your Swift code compiles quickly.  https://github.com/fastred/Optimizing-Swift-Build-Times#slowly-compiling-files

Submission

Your submission must include these files:

* A patch file against the existing codebase (git commit hash d39fedd9fac5665193757de27f345ddcc999a25b in the develop branch)
* A README describing how to set up and run the updated code
* A Verification document describing the steps take to validate the prototype matches the storyboard
* A link to a video that shows a walkthrough of your submission  
 

 



Final Submission Guidelines

Please see above

ELIGIBLE EVENTS:

2018 Topcoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30065867