Challenge Overview
Project Overview
Hone your iOS development skills by implementing a new iOS 8 API in the new programming language Swift.
We’re challenging you to implement the new Extensibility APIs from iOS 8 using Swift. Specifically, we’d like you to create a “Share” extension that can be accessed from other Apps to share a link to a web-page, or an image on Salesforce Chatter. Your extension should determine what type of media is being shared, be it a link or a file (image, video, doc, etc), and adjust the UI accordingly. The extension should also use the Salesforce Chatter REST API to post the shared item when the user posts the item.
Competition Task Overview
For this challenge, the following features are required:
-
Native/Universal/iOS 8+, bundle ID should start with "com.appirio.mobile."
-
Implement Salesforce OAuth Authentication
-
Implement base Chatter features in main app
-
Share of Link post
-
Share of File Attachment post
-
-
Implement a “Share” Extension Target
-
Should determine what media is being shared, and provide a slightly different UI depending.
-
Should be able to share a Link Chatter Post
-
Should be able to share a File Attachment Chatter Post
-
Posts to Salesforce when user finalizes their Share
-
UI
-
Login: Should be functional for authenticating with Salesforce
-
Post Link in App: UI Should reflect the ability to post a link in the Application.
-
Show the link being shared (editable)
-
Allow the user to name the link
-
Allow the user to say something about the link
-
-
Post File in App: UI Should reflect the ability to post a file (image, video, document, etc) attachment in the Application.
-
Use a standard UIPhotoPicker to allow the user to select an image to upload.
-
Show thumbnail of file (Show a default thumbnail if not capable of rendering a thumbnail. Bonus points for supporting thumbnails on more than images!)
-
Allow the user to say something about the file.
-
Submissions with support for files other than images (video, documents, etc) will be considered more complete, but these submission types are not part of the minimum requirements.
-
-
Share Extension: Application Icon should show as a valid option when tapping the share button in Apps like Photos or Safari
-
Post Link in Extension: UI Should be tailored for posting a Link to Chatter.
-
Show the link being shared (read only, provided by the sharing app)
-
Allow the user to name the link
-
Allow the user to say something about the link
-
-
Post File Attachment in Extension: UI Should be tailored for posting an Attachment to Chatter
-
Disable extension in the event of multiple file selection
-
Show thumbnail of file (Show a default thumbnail if not capable of rendering a thumbnail. Bonus points for supporting thumbnails on more than images!)
- Allow the user to say something about the file.
-
Final Submission Guidelines
Technology Overview
-
Swift (Objective-C can be used where Swift does not support a specific feature)
-
Salesforce OAuth
-
Salesforce Chatter REST API
-
iPhone or iPad
���Important Note For Reviewers
This is a Proof-Of-Concept assembly challenge. Please be lenient of any minor flaws with submitted code, or documentation. If the UI isn't spiffy, don't be harsh. If it just doesn't work, feel free to be harsh.
Important Note for Submitters
There are Salesforce requirements for this challenge. In order to make sure that reviewers are able to test this effectively please be prepared to do either of the following:
- Provide explicit instructions on how to set up a suitable development org. This would include:
- What type of user is needed.
- What type of records will need to be created.
- Any other customization that is necessary as part of your solution.
- Set reviewers up with user accounts in your development org. This would include:
- Setting up a user that sends to their email address, but has a dummy username.
- Setting up test data for that user.
- Ensuring that the reviewer is able to receieve their own validation emails from Salesforce.