Current Location
Enroll in Course to Unlock
Introduction |
Opening XCode |
Label Use |
Buttons |
Colors |
UITextField |
UINavigationController |
Resources |
What is A Variable? |
Intro to Commenting |
Operations on Variables |
Logging into the Console |
Valid Variable Names |
Tokens |
Converting Units Part 1 |
Converting Units Part 2 |
Age of Laika |
Age of Laika Part 1 |
Age of Laika Part 2 |
If Statements |
BOOLS |
If Statements Cont'd |
Age of Laika Control Flow |
For Loops |
For Loops Part 2 |
99 Sodas |
Create A New Project |
What are Classes and Objects |
Make Your Own Class |
Header File |
Implementation File |
Properties |
Instantiating an Object |
Import |
Instantiating an Object Cont'd |
Setting Properties |
Methods |
Implementing our Methods |
Methods with Arguements |
Self Properties |
Self Methods |
Methods with Multiple Arguments |
Methods with Return Values |
Review (weekly recap) |
The Challenge |
Methods Solution |
ADD SOME FLARE (UI ELEMENTS) |
Multiple Dogs |
NSMutableArray |
Documentation |
Multiple Dogs Continued |
EC: Animation (strictly for Extra Credit) |
The Challenge |
Recuring Dog Pictures |
Inheritance |
Subclassing MBFDog |
Implementing a Superclass Method |
Super |
The Difference Between Objects and Primitives |
NSString |
Iterating through an Array |
What's Really Going On Properties |
NSArray Initializer and Embedded Array |
CGPoint |
Embedded If Statements |
Buttons and AlertViews |
Property of a Custom Class |
Introduction to nil (video) |
Pirate Assignment |
Pirate Game Introduction |
Pirate Storyboard Setup |
Hooking up the View |
Creating our tile object |
Factory Object |
Factory Explained |
Setting up the Initial Tile |
Hiding our Buttons Dynamically |
Navigating Between Tiles |
Add a Story and Images |
Review (week2 wrap) |
You did it! |
Weapon and Armor Class |
Creating a Character Class |
Create a Character |
Adding a Character to the Application |
Updating the Tile Model |
Implementing our Action Changes |
Finishing our Action Changes |
Create a Boss |
Implementing our Boss |
Alerting the User |
Clean up and a Reset Button |
Pirate Assignment Solution |
Terminal |
Git Part 1 |
Git Part 2 |
MVC Overview |
Communication between the View Controller and Model/Views |
Communication from the View and Model to the View Controller |
Practice Using UITableView |
New Project |
A Quick Look at our Data Source |
NsIndexPath |
NSIndexPath Cont'd |
Having our TableView display our Model |
Model |
NSDictionary |
Utilizing our new Model |
NSNumber |
#define |
Literals Review |
Class Methods |
Section 3 Review |
The Challenge |
UITableViewController Solution |
Making a SpaceObject Class |
Literals Cont'd |
Custom Initializers |
Lets Create and Use Space Objects |
The Challenge: User Data Model |
Solution Part 1 |
Solution Part 2 |
UINavigationController |
Push Segue |
Setting up our Second View Controller |
UIScrollView - A Closer Look |
Setting up our UIScrollView |
Zooming |
Setting our ViewController as a Delegate |
The Challenge |
UIScrollView Solution |
Passing Data Forward |
id and introspection |
Implementing Introspection and Passing the Data |
Passing information to Proxy Properties instead of Outlets |
The Challenge |
Passing Information to another ViewController Solution |
Adding another UITableView Part 1 |
Adding Another UITable Part 2 |
Writing the Logic behind our Space Data Table View Controller |
Adding a Method from our UITableViewDelegate |
Performing the Segue |
The Challenge |
UITableView Solution |
Review |
Chance of us Discovering a New Planet |
Designing our New View Controller |
One more Segue! |
Protocols in Objective-C |
Our Own Protocol Part 1 |
Our Own Protocol Part 2 |
Our Own Protocol Part 3 |
Our Own Protocol Part 4 |
Our Own Protocol Part 5 |
Reload Data |
Loose Ends |
Solution - No More Mercury |
Lazy Instantiation |
The Challenge |
Protocols and Delegation Solution |
Protocols and Delegation Extra Credit |
Persistence Overview |
NSUserDefaults |
Getting our Space Objects into Tip Top Property List Shape |
Back to our NSUserDefaults |
Retrieving our Data |
Deleting some Cells from out UITableView |
The Challenge |
NSUser Defaults, Segues and Protocols Solution Part 1 |
NSUser Defaults, Segues and Protocols Solution Part 2 |
NSUser Defaults, Segues and Protocols Solution Part 3 |
NSUser Defaults, Segues and Protocols Solution Part 4 |
NSUser Defaults, Segues and Protocols Solution Part 5 |
NSUser Defaults, Segues and Protocols Solution Part 6 |
Review |
.PCH File |
TextView and the Keyboard |
NSDate, Datepicker, NSDataFormatter and TimeInterval |
Insert and Remove Objects from a NSMutableArray |
Overdue Task List Assignment |
Setting up the Storyboard Part 1 |
Setting up the Storyboard Part 2 |
IBOutlets |
Setup our #defines |
Creating a Task Model |
Implement the Custom Initializers |
Protocol for the Cancel and Add Task Buttons |
Call the Delegate Methods in the Cancel and AddTask Actions |
An Array to hold the Tasks |
Implementing the Delegate Methods and Saving the Task |
Segue to the AddTaskViewController |
Access NSUserDefaults to Setup the taskObjects Array |
Setup the ViewController's TableViewDataSource |
Color Coding the UiTableViewCells |
Completing a Task |
Delete a Task |
Displaying Information in the DetailViewController |
Reorder Tasks |
Persisting the Reorder |
Setting up the EditViewController |
Saving the EditViewController Changes with a Delegate |
Implementing the EditViewController Delegate |
Implementing the DetailViewController Delegate |
Make the Keyboards Go Away! |
Overdue Task List Solution |
Subviews |
Difference between a View's Frame and Bounds |
A Deeper Look into a View's Frame and Bounds Part 1 |
A Deeper Look into a View's Frame and Bounds Part 2 |
Adding a UIView Programmatically |
Adding UIButton Programmatically |
Target Action |
The Challenge |
Custom Views Solution |
Explore Autolayout |
Demo Autolayouts Part 1 |
Demo Autolayouts Part 2 |
View Controllers Lifecycle |
Custom Views |
Drawing with UIBezierPath Part 1 |
Drawing with UIBezierPath Part 2 |
The Challenge |
UIBezierPath Solution |
Switch to an iPad Application |
More UIBezierPath |
Creating our Path |
Create a PathView Class |
How Storyboard Files are Saved |
Talk about Code Snippets |
Finishing our Mountain Path |
Gesture Recognizers |
Pan Gesture Recognizers |
Detect a UIBezierPath Hit |
NSTIMER |
Adding a Score |
Finishing Touches on our Maze |
Memory Management Detour |
Object Ownership Strong and Weak |
Retain Cycle they are Bad |
Beginning a New Journey |
Starting our New Application and the App Delegate |
Adding a Storyboard and a UITableViewController |
Core Data an Initial Light Dusting |
Updating our xdatamodel |
Adding a New Album with UIAlertView |
UIAlertViewDelegate |
It;s Alive! Creating our First NSManagedObjectSubclass |
Nsmanage ObjectSubclass a Quick Review |
Finally Creating an Album |
Querying our Database for Objects |
Review Accessing Objects from our Database |
A Quick Refactor |
UICollectionViewController |
Getting a Photo on those Slides |
UIImagePickerController |
UIImagePickerController Delegate |
Grabbing our Photo from UIImagePickerController |
Adjust our Core Data Model |
Filling out our TWPIctureDataTransformer |
Creating and Storing our Photos |
Implementing, Creating, and Storing the Photos |
Prepare the Segue Practice |
Querying the Photos and Debugging |
Adding a Photo DetailViewController |
Deleting a Photo from Core Data |
Fixing the Bug |
Adding a CollectionViewController for the Filters |
Creating Filters |
CollectionView DataSource Methods |
Adding our Filters |
Through our Filters |
Saving our Filters |
Why is our App Slow |
GCD and Threading Overview |
Blocks |
Creating a Block and Implementing it |
GCD Example |
Fixing our Bug |
Install Ruby and Ruby Gems |
What is CocoaPods and Installation |
Sign Up for Parse |
What is Parse and Why use it |
Installing Parse |
Installing Parse The Hard Way |
Is Parse Working |
Testing Parse Storyboard Setup |
Creating PFObjects |
Saving PFObjects |
Querying for the PFObjects |
Matchedup |
Setting up Parse |
Sign up and Setting up Facebook |
Integrating Facebook |
Installing Facebook the Hard Way |
Login Functionality |
PFUser |
Saving User Information |
A Deeper Look in Facebook's API |
Global Constants |
Implementing Our Constants |
Prep to Save a Photo Creating Constants and a URL |
Saving the Image with a PFFile |
Hitting the URL |
Implementing NSURLConnection Delegates |
What if the User is Already Logged in? |
Adding a Picture to the ProfileViewController |
Wireframes |
Storyboard Refactor |
Add a HomeViewController |
Add a SettingsViewController |
Add a EditProfileViewController |
Add a ProfileViewController |
Refactor Login View Controller |
Setting up the HomeViewController |
Downloading the Home Photo |
Updating the Home View's Information |
Loading the Next Photo |
Save a Like |
Save a Dislike |
Check for Likes |
Check for Dislikes |
Implement our Helper Methods |
Doing a Initial Query for Likes |
Creating Global Constants for the HomeViewController |
Implementing Constants in the HomeViewController |
Creating a Test Users |
Implementing the ProfileViewController |
Global Constants for the Settings Page |
Setting Initial Values and Preparing the Slider and Switches |
Sliders and Switch Changes |
Loading the EditProfileViewController |
Saving the TagLine |
Logging Out |
Storyboard Setup Match |
Storyboard Setup Matches |
Storyboard Setup Chat |
Check for Users Likes |
Create a ChatRoom |
Prepping the MatchViewController |
Implementing the MatchViewController |
Adding a Delegate to the MatchViewController |
Finding Available Chats |
Presenting Available Chats |
Adding a Picture to the Chat List |
Selecting a ChatRoom |
Prepare the ChatViewController |
Getting Started Implementing Chats |
didSendText |
messageTypeForRowAtIndexPath |
bubbleImageViewWithType |
Additional Methods |
Optional Methods |
Required |
Check for Chats |
Refreshing our Chat |
Testing Chats |
Setup Defaults Settings |
Allow Photo Helper Method |
Implement the Allow Photo |
Constants for ChatRoom and Chat |
Implementing Constants |
Asset Library |
Setting a Global Nav Bar |
Assets Login ViewController |
Asset Home ViewController |
Assets Profile ViewController |
Finishing up the Profile ViewController |
Assets Matches ViewController |
Update the ChatViewController |
Assets Setting ViewController |
EditProfile View Controller |
MatchViewController |
Create a Transition Class |
Conform and Implement UIViewControllerTransitioningDelegate |
Getting Started with MixPanel |
Implement MixPanel |
Using MixPanel |
You did it! |
MVC Review Part 1 |
MVC Review Part 2 |
MVC Review Part 3 |
MVC Review Part 4 |
Introduction Libraries and Learning Goals |
Dependencies and Libraries |
Storyboard Setup |
Model Adding Entities |
Model Adding Relationships |
Adding a PrimaryAttributeKey |
Subclassing MMRecord and keyPathForResponseObject |
Subclassing AFHTTPSessionManager |
foursquare ClientID and ClientSecret |
Imports and MagicalRecord Setup |
Customizing TCFourSquareSesssionManager |
Making our First Request |
Displaying the Information |
Current Location |
Venue Setup |
Setting up the Map |
Finishing up our MapViewController |
Updating the MapViewController |
Setting up the Directions ViewController |
Location Manager a Quick Review |
Getting Directions |
Using our Directions Method |
Getting the Route |
Adding a Latitude and Longitude Offset |
Drawing our Overlay |
Setup the DirectionsListViewController |
Segue To The DirectionsListViewController |
Setup the List of Directions |
Adding a TableViewHeader |
Adding Map Snapshots |
Installing a Facebook style Menu with MMDrawerController |
Adding a MenuViewController to the Storyboard |
Update the App Delegate |
Setting Drawer Attributes |
Adding Animations to our Menu |
Adding a Menu Button |
Setting up the MenuViewController |
Adding our ListViewController to the Menu |
Selecting our Menu Item |
Adding some More ViewControllers |
Adding our new ViewControllers to the Menu ViewController |
Adding Menu Buttons to the Favorite and Add Venue ViewControllers |
Adding Favoriting |
Save using MagicalRecord |
Displaying our Favorite Venues with Magical Record |
Creating our a custom Venue with Magical Record |