Added IB event handlers to present UIActivityView for the corresponding sharing option.
Added UIActivityViewController implementation for iPad.
Created “MAFLinkedInActivityLibrary” Static Library, configured demo app (MAFLinkedInActivity) to link against the Library, created LinkedInUIActivity class, and imported the library class header to test the Library.
Added .pch file to version control, added Static Library to demo app Target Dependencies.
Added custom UIActivity “MFLinkedInUIActivity” required subclass methods and passed it to the UIActivityViewController presenting the activity view.
Added initial authentication interface to MFLinkedInUIActivity.
Refactored MFLinkedInUIActivity to remove authentication UI code from prepareWithActivityItems: method to new class “MFLinkedInAuthenticationViewController”. Created new class “MFLinkedInAccount” to manage LinkedIn’s access token and user account information.
Set MFLinkedInAuthenticationViewController as the authenticationWebView delegate, added delegate method to intervene the URL redirect, and added a method to extract the redirect state and authentication_code.
Added methods to  MFLinkedInAuthenticationViewController to request the access token and parse the JSON response into a Foundation object. Successfully got the “access_token” and “expires_in” values. Values are ready to be stores in a keychain.
Added UICKeyChainStore Library using CocoaPod. Created MAFLinkedInActivity .xcworkspace to bundle all .xcodeproj files together. Removed MAFLinkedInActivity target dependency on MAFLinkedInActivityLibrary since by having all .xcodeproj files in the same .xcworkspace, all dependencies between targets will be found implicitly.
Override MFLinkedInAccount’s getter and setters to use UICKeyChainStore wrappers to store the access_token and expires_in values in keychain. Added UIActivity LinkedIn icons. Added method to remove all items from keychain.
Check if access_token needs to be refreshed; Added tokenNeedsToBeRefreshed (and helper methods) method to MAFLinkedInAccount. Moved image resources from demo app to library.
Added Custom TableViewCells to present the story text, story image, and story links. Added property to MALinkedInActivity class to hold a reference to the activityItems array. Updated MFLinkedInComposeViewController to add logic to determine which custom TableViewCell to present.
Added AutoLayout to custom TableView cells MFStoryCell and MFTargetAudienceCell. Renamed TargetAudienceCell class to MFTargetAudience, and replace attributedText code with with text and font properties.
Fixed Auto Layout on MFStoryImageCell and MFStoryLinkCell, iPhone only.
Added helper methods to compose post using LinkedIn Share API. Most of the implementation of the MFLinkedInComposeViewController helper method (postStory) is still pending. After learning about the required LinkedIn Share API requirements, the Demo app needs to be updated to pass the required items to the custom UIActivity. The postStory method has  some test values to demonstrate that the post functionality works.
Update MFLinkedInComposeViewController to intelligently prepare the post based on the items in the activityItems array. Update Demo app to pass required LinkedIn parameters to activityItems array and meet Library Specifications.

Created the following Library specifications (for library clients):
“When initializing the UIActivityViewController with it's initWithActivityItems:applicationActivities: method, the number of objects passed to the activityItems array MUST be [4] and the objects must be in the following order:
object at index 0: title    (Title of shared document)
object at index 1: description           (Description of shared content)
object at index 2: submitted-url         (URL for shared content)
object at index 3: submitted-image-url   (URL for image of shared content)

 SPEC NOTE 1: the "submitted-url" is required by the LinkedIn Share API, if you don't provide this property, http://www.linkedin.com will be used by the library, so make sure you provide one at activityItems index 2.

 SPEC NOTE 2: If there is one or two properties out of these four (with exception of "submitted-url") that you don't intent to use for your project, just pass an instance of the NSNull class (since an Objective-C collection doesn't take a nil value) to the activityItems array.
Implement new Compose solution; refactor Library Specs code, create MFLinkedInActivityItem model class to encapsulate Share API properties, and update MFLinkedInUIActivity and MFLinkedInComposeViewController to use this new approach. Added #warning directive to areas that more code.
Added Storyboards for to handle the Post/Compose operation. Added MFLinkedInVisibilityViewController to set the LinkIn post target audience. Added MFLinkedInComposePresentationViewController and MFTransitionDelegate to prepare the overlay view (this still needs work). Note: when the modal presentation style is set to custom on iPad, the compose view doesn’t show (it show on a sample project because the view was being presented from a button on the view hierarchy, this time it’s being presented from the bottom navigation bar), this needs to be researched.
Started implementing token refresh process, still needs work