Collection of tutorials I have found and completed on the web and some I have added additional functionality to.
simple image viewer app with photo sharing functionality.
Focus: UITableView, UIImageView, FileManager, storyboards
User is prompted with a country to guess and given three flags to choose from.
Focus: Asset catalogs, UIButton, CALayer, UIColor, UIAlertController
Simple web browser app, allows user to select a choice from an alertView and prevents access to "unsafe" websites
Focus: loadView(), WKWebView, URLRequest, UIToolbar, UIProgressView, key-value observing
interactive story app for kids.
Focus: SpriteKit, animations, audio, zPosition, touch handling
Game. Make as many anagrams with a given word.
Focus: Closures, NSRange, method return values
Personal Contributions:
- added extra levels and option to restart once last level is completed
- changed functionality of hiding buttons so that they fade over a duration
- obtaining higher score was possible by entering answers via keyboard, fixed this by disabling user interation with answer's label
playing with labels to learn autolayout
Focus: NSLayoutConstraint, Visual Format Language, layout anchors
Grand Central Dispatch Tutorial
Focus: GCD
application utilizes "We the People" API and SwiftyJSON to deliver petitions to the user for viewing.
Focus: JSON, Data, UITabBarController, GCD
Save photos of people you meet and add their names to the profile pic to help remember them.
Focus: UICollectionView, UIImagePickerController, UUID, classes, UserDefaults, NSCoding, NSKeyedArchiver
remake of the popular game Color Switch
Focus: SKShapeNodes, SKActions, bit masks, SKCameraCode, UIBezierPath Personal Contributions: Randomize color once obstacle is passed
Try to destoy all the obstacles while avoiding bad slots at the bottom.
Focus: SpriteKit, physics, blend modes, radians, CGFloat, NSKeyedUnarchiver
Personal Contributions:
- Fix Y position so balls can only be created at the top of the screen.
- Randomize ball color
- Only allow 1 ball to be in play at a time
- Changed scoring to add score when boxes are destroyed
- Allow user to gain extra balls if the user's ball drops in a "good slot"
- Removed manual placing of obstacles in favor of auto generating obstacles when the level starts
- Impletemented functionality to offer player a restart option if the player runs out of lives or destroys all of the obstacles
Whack penguins that pop up from the ground, but don't hit the good ones!
Focus: SKCropNode, SKTexture, asyncAfter()
Personal Contributions:
- Randomized hide time to make the penguins more unpredictable
Playing around with Core Animation
Focus: Core Animation, CGAffineTransform
Extend Safari with a cool feature for JavaScript developers.
Focus: Safari extensions, UITextView, NotificationCenter
drawing shapes in SpriteKit while making a fun and tense slicing game.
Focus: SKShapeNode, AVAudioPlayer, UIBezierPath, custom enums
Learning about MKMapView
Focus: MKMapView, MKAnnotation, MKPinAnnotationView, CLLocationCoordinate2D
Launch fireworks and explode them using shake gestures
Focus: Timer, follow(path:), sprite color blending, shake gestures
Send reminders, prompts and alerts even when app isn't running
Focus: UNUserNotificationCenter, UNNotificationRequest, UNMutableNotificationContent, UNCalendarNotificationTrigger, and UNTimeIntervalNotificationTrigger
find and range iBeacons
Focus: CLLocationManager, CLBeaconRegion, CLProximity
Dodge space debris, sidescroller
Focus: Per-pixel collision detection, advancing particle systems, linear and angular damping
Multipeer photo sharing app
Focus: Multipeer Connectivity Framework
Tilt device to move marble and collect stars while avoiding vortexes
Focus: Core Motion, collision bitmasks, array reversing, compiler directives
Personal Contributions:
- refactored level creation method so it's easier to understand and maintain
- created new level txt file
- added logic to load a new level when player's marble makes contact with finish node
draw 2D shapes using Apple's high-speed drawing framework
Focus: Core Graphics
Save user data securely using hte device keychain and Touch ID.
Focus: Touch ID, device keychain