Challenge Overview
INTRODUCTION
This is the first in a series of challenges to develop an iPad tablet app for HARMAN which allows consumers to demo OMNI speakers in a retail environment. Please visit harmankardon.com to learn more about the OMNI product line.
This challenge will focus on developing prototype functionality based off of the provided designs.
REQUIREMENTS
Implement all views as designed and stub functionality as necessary. Screens should display as referenced in the designs. All necessary source assets, design layout references and videos are located in the omni-pos folder in the designs repository. Include mock data for three speakers as presented in the designs, as well as create one for the new OMNI BAR to be released soon (details here).
Demo Screen
-- Follow the layout in designs 01/02
-- The demo screen should be displayed while the app isn’t being used by a consumer (design 01)
-- Screen should automatically appear after 60 seconds of idle time (no interaction from the consumer)
-- Stop any music playback when this screen appears
-- Automatically loop the demo video (Overview V7) when this screen is displayed
-- Remove the Pause button - instead place a banner area at the top of the screen with the phrase “Touch to Begin”
Speaker/Options Navigation
-- Follow the layout presented in all designs
-- This navigation area is always present on the right side of the screen
-- Allow scrolling for an unlimited number of speakers - speakers should always appear at the top of the list
-- For this challenge, include the four speakers and mock data referenced above
-- Scrobbling does not need to be included in this area
-- Following the list of speakers, add options for Party Mode and Configuration
-- Tapping Configuration should display the admin login screen (design 13) if not logged in, or the Configuration screen (design 15) if logged in
Music Library
-- Follow the layout in designs 03/04/05/06/07/08/09
-- This is the default view to display once the demo screen is dismissed
-- Display a list of all music currently available on the device (design 03)
-- Album art for the track along with title and album should be the main touch point
-- Selecting a track displays enlarged playback and speaker selection options (design 04/05) while shifting the other content to fill
-- Selecting Party Mode from the right navigation or track details view turns playback on to all available speakers (design 06)
-- Deselecting Party Mode turns playback off only to the speakers not selected prior to turning Party Mode on
-- Tapping a single speaker in the right navigation shows the speaker details overlay (design 10)
-- If Party Mode is enabled when a single speaker is selected, the selected speaker is turned on/off
-- Multiple speakers may be selected at once (design 08)
Learn About OMNI
-- Follow the layout in designs 11/12
-- Video playback should be displayed at the top of the screen
-- Use videos Product Video V8 and Re-Streaming v0 in the designs repository
-- Functionality for enabling/disabling Party Mode should be included over the video
-- Bottom section should be able to be scrolled horizontally with paging as necessary to allow for an unlimited number of videos
Track Details View
-- Follow the layout in designs 04/05/06/07/08/09
-- View should be displayed when selecting a track from the Music Library view
-- Shift the unselected content cells around to fit this view, which should fill up a 2x2 grid
-- Include track playback functionality, as well as enabling Party Mode
-- Include functionality for selecting speakers to turn broadcasting on or off
-- Bottom section should be able to be scrolled to allow for an unlimited number of speakers
Speaker Details Overlay
-- Follow the layout in design 10
-- Top section displays details for the currently selected speaker
-- Middle section should be able to be scrolled, allowing the user to select any available speaker and display details
-- Bottom section displays details for the currently playing track, including playback, volume controls, Party Mode and scrobbling capabilities
-- If a track is not currently playing, the bottom section of the screen should be empty (no track info/playback controls)
-- Scrobbling means adjusting the advancing or reversing the time of the song, like fast forward or reverse - add a white circle control to the playback progress bar to allow this
-- Stub functionality where appropriate for all buttons
Configuration Login Screen
-- Follow the layout in design 13
-- For this challenge, have Sign In automatically take the user to the Configuration screen
-- Stub functionality for displaying the error message
Configuration Screen
-- Follow the layout in design 15
-- Stub functionality for all Config buttons as well as Sign Out
SETUP
-- Send an email to harrywynn and request to be added to the Project Gewitter team on Gitlab
-- Once added to the team, fork the omniPosApp repository and work off of the prototype branch
-- Add harrywynn as a member of your forked repository
-- Reference the prototype designs located in the omni-pos folder in the designs repository
-- Download the HARMAN SDK to become familiar with the API. Feel free to make any design/functionality suggestions that you think would be beneficial to the app after reviewing the available API features.
Final Submission Guidelines
-- All code should be written in Swift and be well commented
-- Code must compile with Xcode 6.3 against iOS SDK 8.3, deployment target of iOS 8.0
-- Develop for iPad only, with orientation locked to landscape
-- Use storyboards for all views and navigation
-- Use Core Data for local device storage
-- Upload your source project as a zip
-- Include your Gitlab username and URL of your forked repository in your documentation
-- User with the winning submission will be required to do a merge request in Gitlab