Phase 1: Install pop via CocoaPods

1. Install cocoapods
2. Create Podfile
3. Install pop with pod install
Phase 2: Create UIButton subclass

Make it IB_DESIGNABLE
Overrides intrinsic content size to add some horizontal padding
Update storyboard to use the new custom class
Phase 3: Makes the button bouncy

Import POP
Create 2 zoom methods, and add pop animations to them
Wire it up with a configure method
Call the config method from initialisers
Add some specific config settings to the spring animation
Phase 4: Adds Tweaks to configure the animation

Update Podfile
Install pod
Replace the main window with a shaky one
Create some tweak values for the bouncy button
Phase 5: Custom animations on "do not press"

Create utility methods for shaking and hiding views
Update the button handler
Add manual hiding to viewDidLoad
Phase 6: Presentation Controller to manage the chrome

Create UIPresentationController subclass
Specify the size of the overlay
Create TransitioningDelegate - specify the presentation controller
Update prepareForSegue to use the new delegate
Update presentation controller to add dimming view
Phase 7: Custom presentation animation

Create an animator
Implement the custom animation using pop
Update the delegate to produce one of these new animators
Update the presentation controller to provide the frame correctly
Phase 8: Tap to zoom the images in the collection

Create a new UIImageView subclass
Add method to toggle between different zoom sizes
Add gesture recogniser to perform toggle
Update the collection to use the new subclass