Key Information

Register
Submit
The challenge is finished.

Challenge Overview

Project Overview

Hone your iOS development skills by implementing a new iOS 8 API in the new programming language Swift.

Apple made a big splash last year when they announced the Touch ID Sensor for the iPhone 5S, and at this year’s WWDC Apple announced that they were opening Touch ID to developers to use in their apps. That API is the Local Authentication Framework, which exposes functions for checking that the user has access to the biometric scanner and subsequently authenticating against it. So your task is to write an app that uses this framework in combination with an OAuth Service.

On first launch of the app, the user should be presented with a screen to enter their credentials for OAuth. When authentication is successful, allow them to set a passcode and the thumbprint scanner (if capable) for more security. On subsequent launches, the user should be prompted for their thumbprint or passcode. If the user logs out of the app, or if their token is revoked for any other reason, the user should be brought to the original authentication screen.

Competition Task Overview

For this challenge, the following features are required:

  • Native/Universal/iOS 8+,  bundle ID is com.appirio.mobile.touchID

  • Implement OAuth 2.0 with either an existing platform or custom platform that the reviewers would be able to register for and access

  • When user has successfully authenticated, prompt them to enter a passcode, and if capable enable Touch ID on this app.

  • Implement a Passcode screen that accepts Touch ID. This screen should be displayed when the Application initially launches, provided authentication has occurred in prior uses.

  • If token is revoked, or user logs out, reset all authentication options of the app.

  • The main screen of the application should pull and display some data that requires these credentials for access.

UI

  • Login: Should be functional for authenticating with an OAuth 2.0 Platform

  • Set Passcode Screen: Let user specify a passcode, and enable Touch ID (if capable)

  • Passcode Screen: Screen that prompts for the passcode, and if user enabled Touch ID in this app, allows user to use Touch ID.

  • Main Screen: A Screen that displays some data that was pulled over an authenticated service.

    • Must display some data that is not publicly accessible, in order to prove that authentication is working.



Final Submission Guidelines

Technology Overview

  • iOS 8

    • ���Local Authentication Framework

  • Swift (Objective-C can be used where Swift does not support a specific feature)

  • OAuth

  • iPhone 5S 

NOTE: An iPhone 5S running the iOS8 Developer Preview will be required to verify the successful implementation of this challenge. Please do not register for review if you do not meet this requirement.

ELIGIBLE EVENTS:

2014 TopCoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30043422