Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Thursday lab #8

Open
wants to merge 16 commits into
base: master
Choose a base branch
from
Open

Thursday lab #8

wants to merge 16 commits into from

Conversation

robert-hatfield
Copy link
Owner

@robert-hatfield robert-hatfield commented Mar 30, 2017

User Stories (MVP)

  • As a developer, I want to utilize UIKit to build out an application to help work towards a better understanding of Apple's primary UI framework.
  • As a developer, I want to use gestures in my application, to provide additional "surprise and delight" to my users.
  • As a user, I want to be able to post the image I filter to Twitter, to share with my followers.
  • As a user, I want to see each photo pre-filtered before applying it to my image, to better understand what each filter does.

Technical Requirements

  • Implement collection view on the HomeViewController to display all available filters already pre-applied to the image.
  • Create an additional UICollectionViewCell subclass that has a label to display info about the filter being previewed.
  • Show / Hide filterCollectionView in place of Action Sheet.
  • Selecting a filtered image applies that filter to the current Image in the primary image view.
  • Implement a pinch gesture recognizer on GalleryViewController, that affects the collection view layout.
  • Create a custom protocol and use delegation to send back the image selected from FiltersPreviewViewController to the HomeViewController for editing.
  • Use SLComposeViewController to share images to one of the supported social networks.
  • If you didn't complete in class 13 lab, refactor the HomeViewController to make the UIAlertController logic more DRY.
  • Rewrite the imagePickerControllerDelegate methods to be in an extension.
  • Use the //MARK: comments to make it easier to navigate your code.

Stretch Goal:

  • Alter the existing post button, or add another one, that allows the user to choose whether they post the filtered images to CloudKit in the public database or private database. Following this, you should implement a 3rd tab on the tabBarController that displays all the images posted to the public database, as a feed.

I also cleaned up commented-out code & print statements used while debugging.
I'll need to adjust this to display a user-friendly name for each filter.
I made lots of little UX tweaks (alternate animation durations, adjusted logic of how & when the preview collection view may be dismissed, disabled filter button if user has not loaded an image) that should have been committed separately.
The filter actions are no longer on an action sheet, but since the assignment called for a refactor, actions when tapping on the main image view should now be more modular. With only 3 possible actions, this only saved about 2 lines of code.
Also added more marks for extensions
This keeps user-friendly names and CoreImage names together.
@robert-hatfield
Copy link
Owner Author

Resolves #9

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant