Autoplay
Autocomplete
Previous Lesson
Complete and Continue
The Bitfountain iOS 8 with Swift Immersive
Introduction
Course Introduction (6:01)
Course Resources (2:49)
Our First Project!!!
Downloading Xcode (1:41)
Opening XCode and Creating our First Project (7:58)
A Brief Tour of Xcode (10:25)
Exploring Storyboard (9:13)
Setting up a New View (6:01)
Navigation
Adding a Navigation Controller (4:55)
Adding a Title and Another Image (4:52)
Adding TextFields (3:30)
Adding a Button and a Label (3:13)
IBOutlets and Connections
Hooking up our View Objects (14:12)
Debugging Connection Errors (5:52)
Unhiding our Label (5:26)
Accessing Views in Code
Changing a Label's Text in Code (5:00)
Changing a TextField's Text in Code (1:36)
Moving our Label and Closing the Keyboard (4:39)
Multi Line Label (1:56)
Changing a Label's Color in Code (3:21)
Let's Update our Button (4:26)
Working with GitHub
Terminal (10:07)
Creating a Project on Github (2:26)
Saving our Project to Github (6:42)
Adding an Additional Commit (3:16)
Downloading and Opening a Project from Github (2:06)
First Challenge!
Challenge 1: Practicing with the Storyboard (2:25)
Challenge 1: Practicing with the Storyboard Solution (4:59)
Second Challenge!!
Challenge 2: Save your Changes to Github (0:48)
Challenge 2: Save your Changes to Github Solution (1:49)
Variable Types and Commenting
What is a Variable? (6:23)
Type Annotations (3:42)
Intro to Commenting (4:44)
Operations on Variables
Operations on Variables Ints (3:08)
Operations on Variables Floats (5:16)
Valid Variable Names (3:05)
Typealias (2:49)
Numeric Literals (1:46)
Strings
Strings and Characters (5:28)
String Interpolation (1:53)
Optionals Int (4:32)
String to Double (4:29)
Shorthand (2:01)
Constants (2:43)
Shoe Size Converter Project
Shoe Size Converter (12:24)
Refactor Shoe Converter (3:23)
Adding Women's Shoes (7:03)
Age of Laika
Age of Laika (1:14)
Age of Laika: Solution Part 1 (5:39)
Age of Laika: Solution Part 2 (3:07)
Control Flow
If Statements (6:51)
Bools (2:35)
If Statements Continued (4:44)
Numeric Type Conversion (3:10)
Age of Laika Assignment
Age of Laika: Control Flow Challenge (1:46)
Age of Laika: Control Flow Solution (5:51)
For Loops
For Loops (6:20)
Limitations of For Loops (3:26)
99 Sodas Challenge (1:03)
99 Sodas Challenge Solution (3:14)
Lions and Tigers .. oh my!
Intro to Object Oriented Programming (3:27)
What are Structs and Instances? (2:38)
Create a New Project and Storyboard Setup (10:05)
Make Your Own Struct (1:51)
Adding Properties to the Tiger (4:41)
Instantiating our First Struct (5:23)
Using the Tiger Instance (2:42)
Multiple Tigers (4:57)
Arrays
Introduction to Arrays (2:20)
Create an Array (3:42)
Two Cool Properties of Arrays (2:26)
Indexing into an Array and Iterating Over an Array (4:20)
Ranges and For in Loops (4:17)
For in Enumerate Loop (2:52)
Mutating an Array (9:35)
Generating a Random Number (4:14)
Adding Tigers to an Array (6:20)
Show a Random Tiger (3:13)
Animating our Tigers (9:08)
While Loops (3:57)
Recurring Tiger Bug (6:36)
Our First Function (3:37)
Our First Parameter (4:27)
Multiple Parameters (3:33)
Return Values (6:23)
Another Return Value and Other Function Calls (4:46)
Looking at the Current Functions (2:43)
The Tiger can Chuff (3:07)
Chuff a Number of Times and Self (13:08)
Self Continued (3:22)
Chuff a Number of Times with Control Flow (4:53)
Update Tigers Age Function (4:56)
Adding a Random Fact Function (7:55)
Switch Statement (4:07)
Challenge: 99 Red Balloons
99 Red Balloons Struct Challenge (2:19)
99 Red Balloons Storyboard Setup Solution (4:48)
99 Red Balloons Struct Solution (1:38)
99 Red Balloons Create Balloons Function Solution (7:11)
99 Red Balloons Update UI Solution (3:49)
Classes
Classes and Structs (3:03)
Creating a Lion (6:32)
Create a Lion Array (1:35)
Introduction to Tuples (3:17)
Switch Statement with a Tuple (3:04)
Update Current Animal (5:28)
Displaying both Lions and Tigers (7:08)
Lion Roar Function (1:12)
Accessing Properties in a Function (2:12)
Lion Random Fact Function (3:16)
Subclass
Subclass the Lion Class (3:40)
Override Function in LionCub Class (3:00)
Super Keyword (1:32)
Additional Function and a Female Lion Cub (6:36)
Displaying Lion Cubs (4:34)
Slot Machine Project!!!!!
SlotMachine: Introduction (3:13)
SlotMachine: Starting our New App (3:31)
SlotMachine: Setup ContainerViews (20:27)
SlotMachine: Finishing Setup ContainerViews (10:14)
SlotMachine: setupFirstContainer (6:09)
SlotMachine: setupSecondContainer (11:10)
SlotMachine: setupThirdContainer (7:12)
SlotMachine: Some more Labels in the ThirdContainer (5:53)
SlotMachine: Finish adding Labels to the ThirdContainer (7:09)
SlotMachine: Start Setup FourthContainer (16:05)
SlotMachine: Another Button in the fourth Container (7:19)
SlotMachine: Finishing the fourth Container (7:27)
SlotMachine: Adding a Slot Struct (1:45)
SlotMachine: Adding Assets (1:39)
SlotMachine: Factory Class (13:52)
SlotMachine: Create Slot (14:39)
SlotMachine: Implementing Create Slot (1:23)
SlotMachine: Slots Array (2:04)
SlotMachine: Showing Slots (3:15)
SlotMachine: Remove old ImageViews (5:24)
SlotMachine: hardReset (4:01)
SlotMachine: updateMainView (1:26)
SlotMachine: showAlertWithText (4:30)
SlotMachine: betOneButtonPressed (2:44)
SlotMachine: betMaxButtonPressed (2:53)
SlotMachine: Reordering Slots into Rows (7:01)
SlotMachine: computeWinnings (3:03)
SlotMachine: Check for Flush (4:58)
SlotMachine: Check for Three in a Row (4:19)
SlotMachine: Check for Three of a Kind (2:49)
SlotMachine: Finishing Touches (3:31)
Lemonade Stand Assignment
Lemonade Stand Assignment!!!
Lemonade Stand Solution Videos
Lemonade Stand: Storyboard Solution (11:22)
Lemonade Stand: Connection's Solution (7:36)
Lemonade Stand: Supplies Solution (4:22)
Lemonade Stand: Price Solution (1:02)
Lemonade Stand: Instantiating Price and Supplies Solution (3:25)
Lemonade Stand: Instantiating Tracking Values Solution (1:38)
Lemonade Stand: updateMainView Solution (5:11)
Lemonade Stand: showAlertWithText Solution (3:52)
Lemonade Stand: Use updateMainView Solution (1:19)
Lemonade Stand: startDayButtonPressed Solution (10:59)
Lemonade Stand: purchase IceCubes and Lemons Solution (4:36)
Lemonade Stand: unpurchase IceCubes and Lemons Solution (3:47)
Lemonade Stand: Mix Functions Solution (6:31)
Lemonade Stand: Clear Mix and Purchases Solution (1:35)
Add Weather
Lemonade Stand: Weather Properties Solution (1:58)
Lemonade Stand: Indexing into WeatherArray Solution (1:36)
Lemonade Stand: Using the Weather Array Solution (4:03)
Lemonade Stand: Add weatherImageView Solution (1:42)
Lemonade Stand: Adding Image Assets Solution (0:34)
Lemonade Stand: Displaying Weather Solution (1:46)
Task It Project!!
Task It: Setup Options (2:05)
Task It: Add a TableView (3:29)
Task It: Add a TableViewCell (3:02)
Task It: UITableViewDataSource and UITableViewDelegate (8:23)
Task It: TableView Outlet Hookup (1:19)
Task It: Updating UITableViewDataSource Delegate (2:26)
Task It: Setting up Prototype Cell (5:15)
Task It: Updating UITableViewDataSource (7:29)
Task It: Adding Labels to the TaskCell (5:19)
Task It: Adding Tasks (11:29)
Task It: TaskModel (2:18)
Task It: Implementing the TaskModel (4:20)
Task It: TaskDetailViewController (7:11)
Task It: didSelectRowAtIndexPath (2:54)
Task It: PrepareForSegue (8:04)
Task It: Updating the DetailTaskViewController (3:09)
Task It: Date Class (5:48)
Task It: Updating Dates (1:41)
Task It: NSDate to String (4:53)
Task It: Update DatePicker (1:04)
TaskIt: AddTaskViewController and Storyboard Changes (6:54)
Task It: Dismiss and Pop ViewControllers (7:57)
Task It: AddTaskViewController Setup (2:05)
Task It: Add a Task (4:39)
Task It: AddTask Segue (3:12)
Task It: ViewDidAppear (3:09)
Task It: Passing the ViewController to the TaskDetailViewController (1:19)
Task It: Pop the TaskDetailViewController (2:00)
Task It: Update Tasks (3:39)
Task It: Organize Tasks by Date (8:16)
Task It: TaskModel Completion (3:08)
Task It: Creating a BaseArray (2:34)
Task It: Updates with the Base Array (5:14)
Task It: Finish Fixing the Errors (3:51)
Task It: Adding Section Headers (2:01)
Task It: Completing Tasks (4:41)
Task It: Uncompleting Tasks (3:16)
TaskIt Coredata
Task It: Getting Ready for CoreData (1:25)
Task It: Setting up the CoreData Stack (9:36)
Task It: Setting up the new TaskModel (5:09)
Task It: Creating and Accessing a TaskModel (12:00)
Task It: Setting Up the FetchedResultsController (10:26)
Task It: Updating the UITableView DataSource Functions (6:37)
Task It: Updating prepareForSegue and Removing MainVC Properties (1:34)
Task It: Updating doneBarButtonItemPressed Function (2:46)
Task It: Adding Completion Sort Descriptor (3:49)
TaskIt: A Little Break
Exchange 'A' Gram
ExchangeAGram: Introduction
ExchangeAGram: Setup (5:15)
ExchangeAGram: Storyboard Updates (4:15)
ExchangeAGram: UICollectionViewDataSource (4:20)
ExchangeAGram: FeedCell (5:26)
ExchangeAGram: CameraController (9:56)
ExchangeAGram: Photo Library (6:27)
ExchangeAGram: didFinishPickingImage (4:06)
ExchangeAGram: Creating a FeedItem (2:14)
ExchangeAGram: Persisting a FeedItem (6:38)
ExchangeAGram: NSFetchRequest (6:05)
ExchangeAGram: Displaying the FeedItem (8:06)
ExchangeAGram: Photo Filters
ExchangeAGram: FilterViewController (1:53)
ExchangeAGram: didSelectItemAtIndexPath (1:52)
ExchangeAGram: Presenting the FilterViewController (2:56)
ExchangeAGram: Begin Creating a UICollectionView (7:33)
ExchangeAGram: Finishing the UICollectionView (1:33)
ExchangeAGram: FilterCell (7:25)
ExchangeAGram: Implementing our FilterCell (4:22)
ExchangeAGram: PhotoFilters (5:10)
ExchangeAGram: Properties of CIFilters (6:28)
ExchangeAGram: Composite Filters (4:31)
ExchangeAGram: Using the Filters (6:58)
ExchangeAGram: Implementing our Filters (4:08)
ExchangeAGram: Intro to GCD (8:25)
ExchangeAGram: Was that extra work in filteredImageFromImage worth it? (2:09)
ExchangeAGram: Upgrading to XCode 6.1 (5:12)
ExchangeAGram: Adding a ThumbNail to the FeedItem (4:31)
ExchangeAGram: Cleaning out the Old App (1:40)
ExchangeAGram: Creating and Saving a ThumbNail (1:57)
ExchangeAGram: Implementing our ThumbNail (1:48)
ExchangeAGram: Additional Optimizations (2:51)
ExchangeAGram: Cache (4:23)
ExchangeAGram: Cache Image (7:31)
ExchangeAGram: getCachedImage (3:58)
ExchangeAGram: Implementing Caching (2:28)
ExchangeAGram: Saving our Filter Choice (5:47)
ExchangeAGram: Adding a Profile ViewController (2:49)
ExchangeAGram: Adding Elements to the Profile ViewController (2:57)
ExchangeAGram: Adding Facebook Functionality
ExchangeAGram: Install the Facebook SDK (2:55)
ExchangeAGram: Obtain a FacebookAppID (3:13)
ExchangeAGram: Add the Facebook SDK (1:07)
ExchangeAGram: Setting up the PList (3:43)
ExchangeAGram: Bridging Header (3:26)
ExchangeAGram: Prep the AppDelegate with Facebook (1:36)
ExchangeAGram: FacebookLoginView (2:31)
ExchangeAGram: FacebookLoginViewDelegate (2:00)
ExchangeAGram: Delegate Prep (3:05)
ExchangeAGram: Hiding and unhiding our imageView and nameLabel (2:33)
ExchangeAGram: Finishing up our Delegates (4:54)
ExchangeAGram: Profile Segue and Testing (2:05)
ExchangeAGram: Advanced UIAlertController (5:48)
ExchangeAGram: Finishing UIAlertController (6:23)
ExchangeAGram: Refactoring didSelectItemAtIndexPath (3:14)
ExchangeAGram: Setup ShareToFacebook Function (1:15)
ExchangeAGram: Finish shareToFacebook Function (5:27)
ExchangeAGram: Call ShareToFacebook Function (0:36)
ExchangeAGram: Saving Captions (2:56)
ExchangeAGram: Testing this out (2:38)
ExchangeAGram: Adding MapKit
ExchangeAGram: Adding a MapViewController (6:24)
ExchangeAGram: Adding MapKit (2:09)
ExchangeAGram: CLLocationManager (5:29)
ExchangeAGram: Location Permission (5:16)
ExchangeAGram: Update Model (2:33)
ExchangeAGram: Saving the location (1:11)
ExchangeAGram: ProfileVC to MapVC Segue (0:56)
ExchangeAGram: Add an Annotation (5:46)
ExchangeAGram: Make Request For FeedItems (4:40)
ExchangeAGram: Display Photos (4:30)
ExchangeAGram: Testing the Map (1:16)
ExchangeAGram: Final Adjustments to our Model (4:29)
ExchangeAGram: Adding a Unique ID (1:44)
ExchangeAGram: Implementing our Unique ID (1:39)
ExchangeAGram: Fixing the Image Orientations (8:48)
ExchangeAGram: Adding Assets and Splash Screen (2:11)
ExchangeAGram: Updating the FeedViewController Background (2:12)
ExchangeAGram: Updating the Profile ViewController (4:10)
Auto Layout Demo
Auto Layout: What is it? (3:02)
Auto Layout: Pinning (3:47)
Auto Layout: Between Views (2:55)
Auto Layout: Basic Project, Part1 (5:33)
Auto Layout: Basic Project, Part 2 (1:44)
Auto Layout: Basic Project, Part 3 (1:52)
Auto Layout: Second Project, Part 1 (3:06)
Auto Layout: Second Project, Part 2 (3:31)
Auto Layout: Second Project, Part 3 (3:03)
Auto Layout: Second Project, Part 4 (6:35)
ExchangeAGram Final Touches
ExchangeAGram: Adding App Icons (1:25)
ExchangeAGram: Launch Screen (2:32)
ExchangeAGram: Auto Layout FeedViewController and MapViewController (2:54)
ExchangeAGram: AutoLayout ProfileViewController (5:41)
Task It: Advanced Functionality
Task It: Fix TableView Headers (7:19)
Task It: Fixing Task Completion (1:40)
Login Functionality Project
Login Project: Setup (9:27)
Login Project: Segue's (1:06)
Login Project: CreateAccountViewController (6:30)
Login Project: Create a Protocol in the CreateAccountViewController (5:49)
Login Project: Implement the Delegate (5:06)
Login Project: Use NSUserDefaults in the LoginVC (5:55)
Login Project: Use NSUserDefaults in the MainVC (3:27)
Task It: Advanced Functionality cont.
Task It: Setup the Settings ViewController (9:20)
TaskIt: Settings ViewController ViewDidLoad (7:47)
Task It: Capitalize TableView (9:31)
Task It: Complete NewTodo TableView (7:06)
Task It: Additional UITableView DataSource Functions (2:37)
Task It: SettingsViewController didSelectRowAtIndexPath (5:12)
Task It: AppDelegate Settings (5:30)
Task It: Implementing our Settings (3:23)
Task It: Protocol in the TaskDetailViewController (5:04)
Task It: Implementing the TaskDetailViewController Protocol (2:34)
Task It: Updating the taskDetailEdited function (2:50)
Task It: Protocol AddTaskViewController (2:23)
Task It: Implementing AddTaskViewController Protocol Functions (5:25)
Task It: App Icon (1:39)
Task It: Splash Screen (1:33)
Task It: Setting Background Colors (4:16)
Task It: Implementing our Icons (2:03)
Task It: Updating the ViewController with AutoLayout (4:21)
Mini Project: Size Classes (11:31)
Task It: Updating the Settings ViewController with Size Classes (10:30)
Task It: One Fix For the Settings ViewController (0:59)
Task It: Updating the DetailTaskViewController with Size Classes (5:31)
Task It: Updating the AddTaskViewController with Size Classes (10:10)
iCloud (Optional Section)
Task It: Setting up Developer Account (3:29)
Task It: A Look at the Member Center (3:16)
Task It: Using Xcode To Setup Certificates Provisioning Profiles and our Device (3:20)
Task It: Adding iCloud Capability (1:57)
Task It: Adding the ModelManager Class (3:10)
Task It: A Look at Model Manager (6:59)
Task It: Implementing NSNotification Center iCloud (3:13)
Task It: Refactor Using our Model Manager (4:03)
Food Tracker Project: Introduction with HealthKit and more!
FoodTracker: Lets Get Started (3:33)
Food Tracker: DetailViewController (5:06)
Food Tracker: Conforming to Protocols for the ViewController (7:54)
Implementing UISearchController
Food Tracker: Start Setting up the SearchController (3:47)
Food Tracker: Finish Setting up the Search Controller (4:19)
Food Tracker: Arrays for the DataSource (4:59)
Food Tracker: How Many Rows? (2:04)
Food Tracker: Show Some Food (2:59)
Food Tracker: filterContentForSearch (4:47)
Food Tracker: updateSearchResultsForSearchController (2:38)
Food Tracker: ScopeButtonTitles (1:34)
Our first API
Food Tracker: Nutrionix_API (7:41)
Food Tracker: MakeRequest Get Request (5:44)
Food Tracker: Execute HTTP Get Request (4:41)
Food Tracker: AppID and AppSecret (2:37)
Post Request
Food Tracker: HTTP Post Request (10:01)
Food Tracker: Setup our NSURLSessionDataTask (6:51)
Food Tracker: Test Post HTTP Request (2:19)
Food Tracker: Setup a DataController (2:58)
Food Tracker: Completing jsonAsUSDAIDSearchResults (12:43)
Food Tracker: Error Handling When Making a Request (4:10)
Food Tracker: Handling the JSON Response (2:58)
Food Tracker: apiForSearchFoods TableView DataSource (5:43)
Food Tracker: Update TableView With apiSearchForFoods (3:33)
Food Tracker: Selecting a Suggested Food (5:10)
Food Tracker: selectedScopeButtonIndexDidChange (1:49)
Food Tracker: Creating a USDAItem (5:44)
Food Tracker: start saveUSDAItemForId Function (4:22)
Food Tracker: Get the Correct Dictionary (2:54)
Food Tracker: Request USDAItems for idValue (5:32)
Food Tracker: Have we Already Saved this Entity? (2:34)
Saving USDAItems to CoreData
Food Tracker: Create a USDAItem (2:41)
Food Tracker: Start Updating the USDAItem (4:07)
Food Tracker: Saving our First Food Attribute (5:58)
Food Tracker: Saving Carbohydrates and Fat Total (5:01)
Food Tracker: Saving Cholesterol and Protein (3:57)
Food Tracker: Saving Sugar, Vitamin C, and Energy (6:58)
Food Tracker: Saving our USDA Item (0:38)
Food Tracker: Save a USDAItem (3:32)
Using our USDAItem
Food Tracker: Request USDAItems (4:02)
Food Tracker: Call requestFavoritedUSDAItems (1:28)
Food Tracker: Update UITableViewDataSource for Favorited USDAItems (1:38)
Food Tracker: Filter the FavoritedUSDAItems (3:53)
Food Tracker: Update UITableView DataSource for FilteredFavorited USDAItems (3:03)
Food Tracker: Add a USDAItem Property to the DetailViewController (0:58)
Food Tracker: Segueing from the Third ScopeButton (2:18)
Food Tracker: PrepareForSegue (2:26)
Food Tracker: Segueing from the Second ScopeButton (1:12)
NSNotificationCenter
Food Tracker: Post Notification with NSNotificationCenter (5:48)
Food Tracker: NSNotificationCenter in the ViewController (5:28)
Food Tracker: NSNotificationCenter in the DetailViewController (4:46)
Food Tracker: Deinit NSNotificationCenter and Test NSNotificationCenter (2:00)
Food Tracker: Setup createAttributedString (7:03)
Food Tracker: Show our USDAItem Title (2:56)
Food Tracker: Setup Additional Attribute Dictionaries (5:08)
Food Tracker: Begin Adding USDAItem Attributed Strings (7:12)
Food Tracker: Add Energy Fat and Protein attributedStrings (4:04)
Food Tracker: Add Sugar and VitaminC attributedStrings (4:19)
Saving our USDAItem to HealthKit
Food Tracker: Add HealthKit (1:58)
Food Tracker: HealthStore Class (1:44)
Food Tracker: Setup requestAuthorizationForHealthStore (6:46)
Food Tracker: HealthKit Authorization (3:33)
Food Tracker: Start saveFoodItem Function (4:33)
Food Tracker: Our First HKQuantitySample Energy (4:59)
Food Tracker: Adding HKQuantitySample Calcium and Carbohydrate (4:23)
Food Tracker: Adding HKQuantitySample FatTotal and Protein (2:41)
Food Tracker: Adding HKQuantitySample Sugar and Vitamin C (2:36)
Food Tracker: Adding HKQuantitySample Cholesterol (3:13)
Food Tracker: Saving HealthKit (5:29)
Food Tracker: Eating our Food and Testing Saving (2:19)
Food Tracker: Adding FoodMetaData and the Conclusion (3:06)
BitDate
BitDate: Introduction (2:26)
BitDate- Create a new Project (2:18)
BitDate- Create a CardView Class (12:23)
BitDate- CardView Constraints Part 1 (8:00)
BitDate- CardView Constrains Part 2 (8:15)
BitDate- Create SwipeView Class (6:19)
BitDate- SwipeView Constraints (4:59)
BitDate- Create CardsViewController (6:35)
BitDate- Add a frontCard and backCard (5:58)
BitDate- Add a PanGestureRecognizer to the SwipeView (6:31)
BitDate- Make the SwipeView Move (3:16)
BitDate- Add a Function to Reset the SwipeView's Original Position (2:15)
BitDate- Using UIPanGestureRecognizer's State (5:28)
BitDate- Adding a Rotation to our SwipeView (8:06)
BitDate- Fixing our Rotation Animation (1:35)
BitDate- Track Direction (4:06)
BitDate- Reset vs Animate ScrollView (2:03)
BitDate- Defining the SwipeViewDelegate (5:56)
BitDate- Calling our Protocol Function (6:04)
BitDate- Implementing our Protocol Functions (3:49)
BitDate- Decoupling CardView from the SwipeView (5:03)
BitDate- Adding a Card Struct (4:21)
BitDate- Refactor using the Card Struct (2:15)
BitDate- Create a Parse Account (5:54)
BitDate- Adding the Parse Framework (5:30)
BitDate- Setup the Bridging-Header File (4:11)
BitDate- Create a Facebook App (7:51)
BitDate- Install Cocoapods (3:15)
BitDate- Install Facebook SDK with Cocoapods (4:10)
BitDate- Test Parse (7:04)
BitDate- Facebook Login Handling in App Delegate (3:32)
BitDate- Create a Login ViewController (3:50)
BitDate- Logging in with Parse and Facebook (6:08)
BitDate- Adjusting the User on Parse (1:54)
BitDate- Saving User Details to Parse (10:41)
BitDate- Present Cards ViewController from LoginViewController (5:23)
BitDate- Updating the AppDelegate to be Dyamic (5:45)
BitDate- Create a User Struct (6:15)
BitDate- Decoupling the App Delegate (0:55)
BitDate- Create a ProfileViewController (5:39)
BitDate- Download a Profile Picture (7:21)
BitDate- Update User Class in Parse (2:47)
BitDate- getPhoto with a Nested Function (4:28)
BitDate- Updating the Profile ViewController (6:22)
BitDate- Making the ViewController a PageViewController (3:59)
BitDate- setViewControllers in the PageViewController (5:09)
BitDate- Update Before and After ViewController (2:44)
BitDate- Add the PageController to the AppDelegate (1:04)
BitDate- Changing Transition Styles (2:11)
BitDate- Adding our Assets (5:01)
BitDate- Updating NavigationItems in the ProfileViewController (4:54)
BitDate- Updating NavigationItems in the CardsViewController (3:05)
BitDate- Go to Next and Previous ViewController (5:06)
BitDate- Implement Transition From NavigationItems (2:47)
BitDate- Adding New Users to Parse (5:16)
BitDate- Query for new PFUsers (6:32)
BitDate- Fetch Users in the CardsViewController (2:25)
BitDate- Adding a Name and Image property to our CardView (2:05)
BitDate- Update createCards function and Add popCard Function (5:16)
BitDate- Creating cards with the popCard Function (5:35)
BitDate- Switching Cards (4:39)
BitDate- Starting an Overlay View (2:46)
BitDate- Finishing our Overlay (6:57)
BitDate- Save a Skip (4:25)
BitDate- Challenge - Saving a Like (0:22)
BitDate- Challenge - Solution Saving a Like (3:26)
BitDate- Fetching Users without an Action (6:29)
BitDate- Adding a nah and yeah Button (4:19)
BitDate- Implement nah and yeah Button Actions (3:50)
BitDate- Saving Matches (7:26)
BitDate- Adding a MatchesTableViewController (5:10)
BitDate- Add a Label and Image to the UserCell (3:51)
BitDate- Styling the UserCell and Updating the NavBar in the MatchesTableViewController (5:02)
BitDate- Presenting the MatchesTableViewController (2:43)
BitDate- Fetch Matches (6:48)
BitDate- Return a Matches Array (6:09)
BitDate- Fetching our Matches (2:22)
BitDate- Updating the TableViewDataSource Functions (6:31)
BitDate- Adding JSQMessagesViewController (3:12)
BitDate- Create a ChatViewController (4:41)
BitDate- Start Implementing the ChatViewController (5:05)
BitDate- Choosing a Bubble Color and Sending a Message (6:23)
BitDate- Presenting and Testing the ChatViewController (3:32)
BitDate- Introduction to Firebase (3:45)
BitDate- Install Firebase (1:50)
BitDate- Create a Message Struct (5:26)
BitDate- Adding Helper Functions to Message (4:22)
BitDate- Save a Message to Firebase (4:38)
Fetching our Messages from Firebase (7:52)
BitDate- Displaying and Testing our Fetched Messages (2:48)
BitDate- Create a MessageListner Class (7:06)
BitDate- Implement our MessageListener (3:12)
Still Adding Content
Congratulations! Next Steps + Resources
New Lecture (5:09)
Login Project: Implement the Delegate
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock