Challenge Overview
���Description
The Beacon iPad 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. We have an existing proof of concept, but a bunch of new UI features are going to be added.
This challenge will implement the initial prototype conversion, based on storyboards we've recently created through Studio.
General requirements
This challenge will focus only on the landscape screens. You can see them in marvelapp here: https://marvelapp.com/8edej4h/. To see all screens, click the grid button in the bottom left.
There are a number of customer-requested tweaks and you will find those described below, but note that the big change is that the distance measurement screens and functionality are *not* in scope for this challenge.
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.
We will add a new "+" icon to the header to add a report and go into the prototype screens. We can hide the header and footer after "+" is clicked to get as close to the screens as possible.
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 iPads with @2x files created for any images.
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.
Test Data
All data shown in the prototype UI should be dynamic. We will have this data stored in one or more JSON files for the prototype, ensuring we can easily tweak things shown in the UI for testing, and to make sure that the hooks for UI elements work properly. Do *NOT* hardcode anything that will be dynamic in the final version of the app. This includes all material icons, names, and descriptions, location search results, and location details.
Image selection
The image selection should work as expected using the photo roll and camera iOS SDKs.
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
Scope clarifications
The customer has made some requested changes - mainly just removing specific things shown in the prototype. These changes are in scope for this challenge and are detailed here:
https://gitlab.com/hercules-bcn/existing_code/issues/9
Please ask questions in the forums if you need further clarification.
Submission
Your submission must include these files:
* A patch file against the existing codebase (git commit hash c3958fb9b3ca9d71c3cba4954819229ab942a1e6)
* 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
The Beacon iPad 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. We have an existing proof of concept, but a bunch of new UI features are going to be added.
This challenge will implement the initial prototype conversion, based on storyboards we've recently created through Studio.
General requirements
This challenge will focus only on the landscape screens. You can see them in marvelapp here: https://marvelapp.com/8edej4h/. To see all screens, click the grid button in the bottom left.
There are a number of customer-requested tweaks and you will find those described below, but note that the big change is that the distance measurement screens and functionality are *not* in scope for this challenge.
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.
We will add a new "+" icon to the header to add a report and go into the prototype screens. We can hide the header and footer after "+" is clicked to get as close to the screens as possible.
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:
- https://github.com/Esri/arcgis-runtime-samples-ios
- https://developers.arcgis.com/ios/latest/swift/sample-code/sample-code.htm
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 iPads with @2x files created for any images.
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.
Test Data
All data shown in the prototype UI should be dynamic. We will have this data stored in one or more JSON files for the prototype, ensuring we can easily tweak things shown in the UI for testing, and to make sure that the hooks for UI elements work properly. Do *NOT* hardcode anything that will be dynamic in the final version of the app. This includes all material icons, names, and descriptions, location search results, and location details.
Image selection
The image selection should work as expected using the photo roll and camera iOS SDKs.
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
Scope clarifications
The customer has made some requested changes - mainly just removing specific things shown in the prototype. These changes are in scope for this challenge and are detailed here:
https://gitlab.com/hercules-bcn/existing_code/issues/9
Please ask questions in the forums if you need further clarification.
Submission
Your submission must include these files:
* A patch file against the existing codebase (git commit hash c3958fb9b3ca9d71c3cba4954819229ab942a1e6)
* 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