Swift Language Fundamentals
- Types, Variables and Logic
- Control Flow
- Loops, Part 1
- Loops, Part 2
- Strings, Part 1
- Strings, Part 2
- Arrays, Part 1
- Arrays, Part 2
- Optionals
- Dictionaries
- Sets
- Functions, Part 1
- Closures, Part 1
- Enumerations (Enums), Part 1
- Enumerations (Enums), Part 2
- Structs
- Classes
- Structs and Classes Wrapup
- Initialization
- Encapsulation
- Reverse a String, Find the String with the most a's in an Array
- Optionals and Dictionary
- Sets
- Dictionary and Closures
- Closures and Implementing a custom map function
- Enums
- Pushing a Local Repository to Github
- Types, Variables and Logic
- Control flow
- Introduction to Optionals
- Loops, Part 1
- Loops, Part 2
- Strings, Part 1
- Strings, Part 2
- Arrays, Part 1
- Arrays, Part 2
- Optionals
- Dictionaries
- Sets
- Functions, Part 1
- Closures, Part 1
- Enumerations (Enums), Part 1
- Enumerations (Enums), Part 2
- Structs
- Classes
- Structs and Classes Wrap up
- Initialization
- Reverse a String, Find the String with the most a's in an Array
- Optionals and Dictionary
- Sets
- Solving algorithms and Pair programming
- Dictionary and Closures
- Closures and implementing custom map
- Enums
- Using readline() and macOS Command Line Tool to create a Text Adventure app
- TriviaGame, Part 1
- TriviaGame, Part 2
- TriviaGame, Part 3
- TriviaGame, Part 4
- Daily labs on Swift Fundamental Topics
- Text-Based Adventure
- Hangman CLI
- Calculator CLI
iOS Development with UIKit
- Introduction to iOS Development with UIKit - MyFirstApp
- Recipes app using MVC Architecture
- Protocols
- Delegation with UITextField - GuessingGame
- Big O Notation
- Autolayout
- App Life Cycle and UIControls
- TableViews, basic built-in cell, table view sections, UITabBarController
- DatePicker, Date, Unwind Segue
- FellowCountries - Resizing cells, Custom cells, Dynamic type
- ZooAnimals - Custom cells using the Storyboard Scene
- Scheduler Version 1 - Modifying (insert, delete, reorder) table view rows
- Introduction to iOS Development with UIKit
- Introduction to MVC Architecture
- Protocols
- Delegation through UITextField
- Big O Notation
- Autolayout, Part 1
- Autolayout, Part 2
- Autolayout, Part 3
- App Life Cycle Methods and UIControls in UIKit, Part 1
- App Life Cycle Methods and UIControls in UIKit, Part 2
- App Life Cycle Methods and UIControls in UIKit, Part 3
- Autolayout, Part 4: Size Classes
- Introduction to UITableView
- UITableView Sections, Part 1
- UITableView Sections, Part 2
- UITableView Sections, Part 3
- DatePicker, Date, Unwind Segue, Part 1
- DatePicker, Date, Unwind Segue, Part 2
- DatePicker, Date, Unwind Segue, Part 3
- FellowCountries - Resizing cells, Custom cells, Dynamic type, Part 1
- FellowCountries - Resizing cells, Custom cells, Dynamic type, Part 2
- ZooAnimals - Custom cells using the Storyboard Scene, Part 1
- ZooAnimals - Custom cells using the Storyboard Scene, Part 2
- ZooAnimals - Custom cells using the Storyboard Scene, Part 3
- ZooAnimals - Custom cells using the Storyboard Scene, Part 4
- Scheduler, Version 1 - Modifying (insert, delete, reorder) table view rows, Part 1
- Scheduler, Version 1 - Modifying (insert, delete, reorder) table view rows, Part 2
- Scheduler, Version 1 - Modifying (insert, delete, reorder) table view rows, Part 3
- Three Card Monte
- ColorGuessingGame
- TextTwist - UITextField, UITextFieldDelegate
- TicTacToe
- Autolayout-Lab
- CardGenerator - UIControls, e.g UIStepper, UISegmentedConrol
- TableView-Sections-Lab
- Multiple-MVC-Lab (segue and pass data between view controllers)
- ZooAnimals - custom cells, subclassing UITableViewCell, push segue
- Game of Thrones - table view sections, push segue
- UpdatingFont - using unwind segue to update the cell label fonts of a previous view controller), modal presentation segue
- GroceryList - editing table view rows (insert, delete, reoder) in a sectioned table view, modal presentation segue
Networking in iOS - Parsing JSON, RESTFul Web APIs, Concurrency and GCD, URLSession
- Introduction to the Internet and JSON Parsing in Playgrounds
- TopStories - Parsing Local JSON from the App Bundle
- ChallengeCalculator - Introduction to Unit Testing, XCTest
- RandomUserApp - Test-driven development (TDD)
- Using URLSession to fetch Web Data
- Introduction to Concurrency and Grand Central Dispatch
- URLSession Wrapper - NetworkHelper
- ARC - Memory Management
- AstronomyPhotos - Image handling in cells
- RecipeSearch - API Authentication using API Keys
- LabQuestions - Making POST Requests (Uploading Data to a Web API)
- Introduction to the Internet and JSON Parsing in Playgrounds - Part 1
- Introduction to the Internet and JSON Parsing in Playgrounds - Part 2
- Parsing Local JSON from the App Bundle - Part 1
- Parsing Local JSON from the App Bundle - Part 2
- UISearchBar, UISearchBarDelegate - Part 1
- UISearchBar, UISearchBarDelegate - Part 2
- Fetching an Image with a given URL, URLSession, Result type, Escaping Closures, GCD
- Introduction to Unit Testing - Part 1
- Introduction to Unit Testing - Part 2
- Test Driven Development (TDD)
- TDD and Parsing a Heterogeneous JSON data type
- Using URLSession to fetch Web Data
- Introduction to Concurrency and Grand Central Dispatch
- URLSession Wrapper - NetworkHelper - Part 1
- URLSession Wrapper - NetworkHelper - Part 2
- ARC - Memory Management
- Image handling in cells - Part 1
- Image handling in cells - Part 2
- API Authentication using API Keys - Part 1
- API Authentication using API Keys - Part 2
- API Authentication using API Keys - Part 3
- API Authentication using API Keys - Part 4
- Making POST Requests (Uploading Data to a Web API) - Part 1
- Making POST Requests (Uploading Data to a Web API) - Part 2
- Making POST Requests (Uploading Data to a Web API) - Part 3
- Making POST Requests (Uploading Data to a Web API) - Part 4
- Making POST Requests (Uploading Data to a Web API) - Part 5
- Making POST Requests (Uploading Data to a Web API) - Part 6
- Making POST Requests (Uploading Data to a Web API) - Part 7
- Making POST Requests (Uploading Data to a Web API) - Part 8
- Parsing JSON - Weather, Color, Random User API
- SongsSearchBar
- Introduction to Unit Testing Lab - Jokes API, Star Wars API, Trivia API
- StocksPeople
- Concurrency - Country list, flag, Exchange rates, Weather
- Image and Error Handling - Comic viewer, Pokemon cards, Random user
- Comic
- Making GET requests - Shows, Episodes
- Airtable - Project tracker Projects
- Podcast search and favorites
Making README's and Gifs, Working with .gitignore, Custom table view cells using .xibs, Swift Package Manager, UIScrollView, SFSafariViewController
Data Persistence, Collection Views, UIImagePickerViewController, Stacks, Generics, Queues, Recursion, Animation
- UserDefaults-Demo, UITableViewController
- CollectionView-RandomDogs
- Generics, In-Out Functions, Stacks
- Scheduler Version 2 - FileManager and Docuements Directory
- UIImagePickerController, Custom Delegation and Persistence
- Recursion
- Scheudler Version 3 - Custom-Delegation-UITabBarControlller
- Programmatic UI
- Programmatic UI, Xibs and Storyboards
- LinkedList
- UIKit Animations
- UIScrollView, UIImageView, Zooming
- UIKit Gestures
- Keyboard Handling
- NYTTopStories
- Persistence with UserDefaults, Part 1
- Persistence with UserDefaults, Part 2
- UICollectionView using UICollectionViewFlowLayout, Part 1
- UICollectionView using UICollectionViewFlowLayout, Part 2
- UICollectionView using UICollectionViewFlowLayout, Part 3
- Generics, In-Out Functions, Stacks
- Scheduler, Version 2 - FileManager and Documents Directory, Part 1
- Scheduler, Version 2 - FileManager and Documents Directory, Part 2
- Scheduler, Version 2 - FileManager and Documents Directory, Part 3
- ImagePicker - UIImagePickerController, Custom Delegation and Persistence Part 1
- ImagePicker - UIImagePickerController, Custom Delegation and Persistence Part 2
- ImagePicker - UIImagePickerController, Custom Delegation and Persistence Part 3
- ImagePicker - UIImagePickerController, Custom Delegation and Persistence Part 4
- ImagePicker - UIImagePickerController, Custom Delegation and Persistence Part 5
- ImagePicker - UIImagePickerController, Custom Delegation and Persistence Part 6
- Recursion, Part 1
- Recursion, Part 2
- Scheduler, Version 3 - Using an enum to manage the edit state of a view controller
- Scheduler, Version 3 - Persist updating an object, creating a new git branch
- Scheduler, Version 3 - Subclass UITabBarController Inject its view controllers with dependencies
- Scheduler, Version 3 - Using custom delegation with UITabBarController
- Recursion, Part 3
- Programmatic UI, Part 1
- Programmatic UI, Part 2
- Programmatic UI, Part 3
- Programmatic UI, Part 4
- Programmatic UI, Xibs, Storyboards
- Linked List, Part 1
- Linked List, Part 2
- UIKit Animations, Part 1
- UIKit Animations, Part 2
- UIScrollView, UIImageView, Zooming
- UIKit Gestures, Part 1
- Keyboard Handling, Part 1
- Keyboard Handling, Part 2
- UIKit Animations, Part 3
- UIKit Animations, Part 4
- UIKit Animations, Part 5
- NYTTopStories, Part 1 - Setting up UITabBarController and UICollectionView programmatically
- NYTTopStories, Part 2 - Adding unit test, create model, API client, .gitignore
- NYTTopStories, Part 3 - Custom view cell, integrating API client
- NYTTopStories, Part 4 - Setting up Detail View controller and segue
- NYTTopStories, Part 5 - Segue programmatically, data persistence and delegation
- NYTTopStories, Part 6 - Congiguring number of items per row in a collection view, empty states
- NYTTopStories, Part 7 - Programmatically setting up a UIButton, custom delegation, Action sheet
- NYTTopStories, Part 8 - Delete from documents directory, UIPickerView in code
- NYTTopStories, Part 9 - Using UserDefaults to keep track of user's News Section
- NYTTopStories, Part 10 - Programmatically setting up a long press gesture and transition animation
- NYTTopStories, Part 11 - Searching, dismissing the keyboard when scroll is detected
Local Notifications, CoreLocation, MapKit, Firebase, CoreData, KVO
- Local Notifications, Part 1
- Local Nofifications, Part 2
- CoreLocation, MapKit, Part 1
- CoreLocation, MapKit, Part 2
- CoreLocation, MapKit, Part 3
- MapKit, Part 1
- MapKit, Part 2
- CocoaPods, Part 1
- CocoaPods, Part 2
- CocoaPods, Part 3
- Introduction to Firebase and Authentication
- Firebase Firestore, Part 1
- Firebase Firestore, Part 2
- Firebase Storage, Part 1
- Firebase Storage, Part 2
- Firebase - users collection, delete item
- Firebase - setting the comment UI
- Firebase - comments, sub-collections
- Firebase - querying a collection, favoriting an item
- Firebase - fetching and presenting favorites
- Firebase - show a specific user's items, custom delegation
Repo Link CoreData - Number Facts
Data Structures and Algorithms
- Reverse a String, Find the String with the most a's in an Array
- Optionals and Dictionary
- Sets
- Dictionary and Closures
- Closures and Implementing a custom map function
- Enums
- Big O Notation
- Generics, In-Out Functions, Stacks
- Recursion
- LinkedList
- Queues - Implementation using an array
- Bubble sort
- Insertion sort
- Quick Sort
- Merge Sort
- Binary Search
- Binary Tree - Breadth-first traversal
- Reverse a String, Find the String with the most a's in an Array
- Optionals and Dictionary
- Sets
- Solving algorithms and Pair programming
- Dictionary and Closures
- Closures and implementing custom map
- Enums
- Big O Notation
- Generics, In-Out Functions, Stacks
- Recursion, Part 1
- Recursion, Part 2
- Recursion, Part 3
- Linked List, Part 1
- Linked List, Part 2
- Queue implementation using an array
- Bubble Sort
- Insertion Sort
- Quick Sort
- Merge Sort
- Binary Search
- Binary Tree - Breadth-first traversal