Tired of boring button-centric UI? Well...in iOS it's easy to implement interactive gestures and fun animations to give your UI some well deserved pop! In this lab you'll build an app that allows users to interact with characters from the iconic video game, Mario Kart, panning, scaling, rotating and then sending them zooming off the screen! 🏎
- Tier 1 (Demo project on master branch)
- User can move karts around the screen using a pan gesture.
- User can adjust the size of a cart using a pinch gesture.
- User can rotate a cart using a rotation gesture.
- User can double tap a kart to make it zoom (animate) off the screen.
- User can long press the background to reset the karts.
- Tier 2 (Demo Project on tier 2 stories branch)
- User can use pinch and rotation gestures simultaneously.
- While panning, karts slightly scale up and back down to simulate being picked up and put back down.
- When a user double taps a kart it
- Animates backwards slightly before racing off to simulate winding up.
- Pops a wheelie by rotating up and back down as it races off.
- After finishing racing off the screen, the kart fades back in it's original position.
- User can triple tap the background to make all karts on the track zoom (animate) off at different speeds.
- Tier 3 (Demo Project on tier 3 stories branch)
- When a user triple taps to initiate a race sequence, a character with a stop light floats down, animates through the lights (gif sequence) ending on green to signal the race. The karts then go racing off.
- In a race sequence, each kart races off at different speeds and the winner is presented in a winner card that drops in from the top of the screen.
- In the winner card, the winner is shown in an animated gif sequence.
- The user can tap or pan the winner card to dismiss the card and return to a reset version of the game.
- After a race sequence, the karts drive into position from off the left side of the screen.
- Assets
- Adding images to Assets folder
- Adding images from Media Library to Storyboard
- Gesture Recognizers
- Objects
- Pan, Pinch, Rotation, Tap, Long Press
- Actions
- Creating gesture actions in IB, working with the sender
- Properties
- Location, rotation, scale
- States
- Began
- Objects
- View Animations
- Working with view animation methods.
- Asynchronous execution
- Initial & destination states of animated views.
- Working with view animation methods.
- View Properties
- Resizing views in IB
- Adjusting view hierarchy in IB
- Content Modes
- Aspect Fit
- Transform
- Rotation, scale, identity
- Simulator
- Working with gestures
- Gesture Recognizers
- Properties
- Translation
- States
- changed, ended
- Delegate
- Setting gesture delegate in IB, delegate methods
- Properties
- View Animations
- Working with view animation methods.
- completion handlers, animation settings
- Working with view animation methods.
- View Properties
- Programmatic wiew hierarchy modifications
- Subviews
- Swift
- Outlet collections
- Iterating through collections
- Accessing item index while iterating
- Generating random numbers


