Challenge Overview
INTRODUCTION
This is the third in a series of challenges to incorporate design with the framework built out in Jim Bowie. This challenge will focus on building the UI for the local info listing, detail and map screens.
REQUIREMENTS
You’ll be utilizing the PSD design in the repository branch you’ll be working with to build out the views defined below.
Local Info Listing - Restaurants, Things to Do, Events (Houston… PSD groups)
-- Call the consolidated data call on load and when user refreshes and cache locally (detail below)
-- Data for display is contained in the LocalInfo object
-- Add functionality for adding an event to the device’s calendar
-- Implement filtering functionality
-- Selecting “Map View” will display the map screen (below)
-- Reviews data DOES NOT need to be implemented
On the “Things to Do” tab
-- Type__c = "Things to Do"
-- Remove and DO NOT implement: star to favorite, ratings and reviews, “Sort by Rating” text, all sort functionality including from the bottom menu
-- Replace the star ratings with website links - business URL & reviews URL
-- Replace categories with the description
-- Add a phone icon to call the business
On the “Restaurants” tab
-- Type__c = "Restaurant"
-- Remove and DO NOT implement: star to favorite, ratings and reviews, “Sort by Rating” text, all sort functionality including from the bottom menu
-- Replace the star ratings with website links - business URL & reviews URL
-- Replace categories with the cuisine type
-- Include the description below the cusine type
-- Remove the distance from the filter
-- Replace “Category” with the cusine type
Local Info Detail (RestaurantDetail PSD group)
-- Details for all local info objects should follow the same design pattern as laid out in the restaurant detail
-- “Show Map” should load the map screen (below)
-- “Make a Call” should dial the number associated with the location (if available)
-- REMOVE reviews, star to favorite, $$, hours of operation and categories, “Sort By” from the bottom menu
-- ADD cusine type, business URL, reviews URL
Map (Houston-Map PSD group)
-- Use MapKit for map functionality
-- Display the selected location as a blue pin on the map
-- Display all surrounding locations as green pins on the map
-- Selecting a pin will show the detail overlay
-- Selecting the detail overlay will load the Local Info Detail screen (above)
-- Selecting “List View” will display the Local Info Listing screen (above)
-- Display the user’s current location on the map
-- Implement filtering
FAQ
-- Items where Type__c = “FAQ”
-- Display the question (FAQ_Question__c) and the answer (FAQ_Answer__c)
-- Email to use for “Contact Us” is briefing_center@bmc.com
All Views (where applicable)
-- Stub out functionality for opening the menu (top left icon), alerts (top right icon) and search
Data (where applicable)
-- Cache copies of the API JSON responses locally for offline access
-- Update the cached copies when the app becomes active
-- Use these cached copies for displaying data in the UI
Final Submission Guidelines
SUBMISSION GUIDELINES
-- All code should be written in Swift and be well commented
-- Use the workspace setup in the repository for development
-- Code must compile against iOS SDK 8.0 with a deployment target of iOS 7.0
-- Use auto layout and size classes to fit all classes of iPhone device (4”, 4.7” and 5” screens)
-- Use storyboards for all views and navigation
-- Only portrait orientation needs to be supported
-- Upload your source project as a zip
-- Include your gitlab username and URL of your forked repository in your documentation
-- Provide a video overview of your submission
SETUP
-- Send an email to lazybaer or harrywynn and request to be added to the Project Alamo team on gitlab if you are not already a member
-- Once added to the team, fork the repository if you haven’t already and work off of the SamHouston3 branch
-- Add harrywynn and lazybaer as members of your forked repository.
-- Send an email to lazybaer or harrywynn for an API user email and PIN to request authorization if you do not already have one. Include your Topcoder user name in the request.