
In this lecture, I walk you through a demonstration of the Music Video App that you are going to build within the 32 coding sessions. Discuss all the libraries and frameworks that you are going to learn in this course.
In this lecture, I give a special dedication to the person who inspired me. I go over my background and talk about why I decided to put this course together.
In this lecture, I discuss the big picture (goals of the class) of what you are going to learn when you complete this course.
In this lecture, I give you detail explanation of why you should take this course. What makes this course unique and stand out from other online courses?
Updated - April 8, 2016 - In this lecture, I walk you through the Roadmap of the course. Discuss tips for success and layout the course journey.
In this lecture, you are going learn all about REST-APIs. Why this is great opportunity for developers?
In this lecture, you are going learn
What is JSON?
How to read it?
What is a JSON Editor?
Walk through some examples?
Discuss interview Questions regarding JSON.
In this lecture, you are going to learn all about the iTunes REST-API.
In this lecture, we are going to discuss a website that goes over thousands of REST-APIs for you to pick from for your first challenge.
Explore object-oriented programming principles by comparing procedural and event-driven patterns, and master classes, objects, inheritance, polymorphism, encapsulation, and abstraction for a Swift/iOS context.
Define classes as blueprints for objects, with properties and methods, and instantiate bank account objects to perform deposits, withdrawals, and balance inquiries.
Explore inheritance by creating a retirement account that inherits from bank account, reusing base functionalities while adding a financial advisor and age properties and a new adviser method.
Learn polymorphism by overriding withdrawal behavior in a retirement account without changing the base class. A 10 percent penalty applies when age is under 70, illustrating subclassed behavior in Swift.
Learn how encapsulation protects data integrity by hiding the bank balance with private access and a get-only property, and enforce updates through deposit and withdrawal methods.
Explore abstraction in Swift: focus on what an object does, not how it does it, hiding complexity to see the big picture. Compare abstract classes and encapsulation to guide design.
Explore how object oriented programming powers iOS frameworks and Foundation, using UIKit to build user interfaces quickly in Xcode with prebuilt components and documentation.
Master the model-view-controller design pattern, where the model handles data and logic independent of the UI. The view renders the interface and the controller acts as the brains.
Explore how the model-view-controller communicates through target-action, outlets, data source, delegation, and notifications in a blind, structured flow, with practical examples and upcoming coding demonstrations.
Learn how delegation and protocols form contracts for controllers, implementing mandatory methods while optional ones remain, using data source protocol and search results updating in iOS apps.
Explore the singleton design pattern by showing how a class returns a single shared instance, global to the app, like the shared application, and why you avoid multiple instances.
Explore the iOS application lifecycle from launch to termination, learning how UI application and its delegate manage state transitions via the main run loop, singleton, and notifications.
Explore the view controller lifecycle from storyboard instantiation to view did load and view did appear, with on-screen transitions in a music video app demo, plus source control integration.
Explore Git basics on the command line, including distributed version control, master and feature branches, commits with messages, staging, merging, and using a remote repository for team development.
Apply git basics to add a repository to an existing Xcode project, ignore the user state file, and use branches and merges, then prepare for remote repository and Xcode integration.
Learn how to set up a GitHub repository, generate RSA SSH keys, and securely push code to a public remote using git commands such as git push origin master.
Learn how to manage source code with Xcode and GitHub, including creating branches, committing changes, merging into master, and syncing with a remote repository.
Create a free GitHub account, set up a repository, and practice push, pull, and commit while connecting local work to remote repositories for collaboration and version control.
Learn backend processing with an API manager and music video model, parsing JSON via a completion handler on a background thread while the UI updates on the main queue.
Configure your Apple ID in Xcode and set up a git repository with branches for each session. Connect to a remote repository using SSH keys and follow model-view-controller patterns.
Set up an iOS swift project in Xcode for a music video app, organize with model–view–controller groups, and initialize a git repo with ssh remote and Part 1 branch.
Develop a color API manager to fetch the iTunes API with NSURLSession, handle completion, dispatch to the main queue, and display results via a UI alert controller.
Part-2 NSURLSession source code
Convert the NSData to JSON using Swift 2.0 error handling and JSON serialization to transform API data into a dictionary or array, with allow fragments, and inspect the results.
Part-3 NSJSONSerialization source code
Create a music video data model by parsing json into class properties with a custom initializer that takes a dictionary, enabling data encapsulation and ready-to-display UI data.
Part-4 Create class with custom initializer source code
Exercise source code
Part-5 Completed custom initializer source code
Recap the back-end concepts, bridging Objective-C to Swift, and prepare to build the user interface while reviewing APIs, MVC, and Git workflow.
Part-6 Call Custom initializer to build array source code
Bridge Objective-C libraries into a Swift app by importing Reachability, creating a bridging header, and using Wi-Fi, no internet, and cellular constants to monitor network state.
Part-8 Obj-c Reachability App Delegate source code
Part-9 Objc Reachability view controller source code
Learn practical debugging tips in iOS 9 and Swift 2 by using exception breakpoints, conditional breakpoints, and step-by-step techniques to diagnose reachability, notifications, and API manager interactions.
Reinforce backend and API skills by building a new app that consumes an API, creates a fresh class, and types code from scratch for front-end integration.
Transform backend music video data into an iOS interface via a table view with custom cells, enabling navigation, search controller use, and settings controls.
Compare table view and table view controller in iOS 9 and Swift 2, explain when to use each, and outline data source and delegate roles with reusable cells.
MusicVideo App Part11 Source Code
MusicVideo App Part12 Source Code
Music Video Part-13 Source Code
Build a custom cell in an iOS app by importing a resource image, displaying rank and music title in two labels, and pulling the top 200 from the iTunes API.
Music Video Part-14 Source Code
fetch images from a url in a background thread, cache them in an array, and update the user interface on the main thread to enhance performance with cell reuse.
Enable app transport security and allow arbitrary loads to fetch images from the iTunes API, demonstrate background image loading, and compare array data versus network calls for performance.
Learn to implement preferred fonts for a flexible UI, updating fonts dynamically in table view cells and other screens via observers when content size changes.
Select one of five APIs, register for a token if needed, and build an app that consumes the API, structures its data, and presents it in a UI table.
Create a music video detail screen in storyboard, linking a detail view controller to the navigation flow, and lay out image, labels, and toolbar per design specs.
Tap a table row to pass data to the detail screen, populating the image, name, price, and studio for the selected music item via a music detail segue.
Updated 4/8/2016 - In this lecture, we will discuss how to implement different screen layout for all iPhones in landscape orientation and different look for all other devices.
Learn to implement dynamic fonts using UIContentSizeCategory and observers so fonts update automatically on the detail screen and table view, with proper adding and removing observers.
Create a settings page in an iOS app using a static table view with six rows, labels, switches, and a slider, including an about/feedback flow and Touch ID security.
Create a settings table view controller, connect it to storyboard, and wire outlets to support dynamic font changes via a preferred font observer and disable table scrolling.
Store and retrieve small user preferences with NSUserDefaults, including a security Touch ID switch and a slider setting, so choices persist across app launches.
Use a slider with NSUserDefaults to persist settings, setting min and max values, saving the slider as an integer, and restoring it on app launch for a smooth user experience.
Open the app in the simulator, add a new about screen in the storyboard, and create a push segue from the about page; then explore images, labels, and auto layout.
In this lecture, I discuss how to stream and play video over the web.
In this lecture, I discuss how to refresh the data from the API by pulling down on the table list.
In this lecture, I discuss how to share information through social media.
In this lecture, I discuss how to setup in-app e-mail for customer feedback.
In this lecture, I discuss how to use touch id for added security before sending information through social media.
Explore building a robust search feature in an iOS app using a programmatic UI search bar, filtering data with a filtered array, and applying MVC with clean code.
In this lecture, I discuss how to setup search using UISearchController.
In this lecture, I discuss how to code our string matching for our search using the Swift filter.
Explore class and protocol extensions in a Swift iOS app, move protocol implementations to separate files, and expand search with multiple attributes while testing behavior with intermittent internet.
Tune the app to adjust image quality based on reachability; wifi uses 600x600, cellular or off to 300x300, and disable Touch ID security when unavailable, with an explanatory label.
Emphasis on solid theoretical background, design principles, app architecture, best coding practices, monthly new videos and updates.
34 coding sessions, 4 challenges, 4 exercises, 3 quizzes and interview questions
NEW - refer to the bonus section
The goal is for everyone to take the skills learned throughout this course and apply them to the challenges. This will allow you to gain more experience through actual work and collaboration.
This is not just a course but a growing community to constantly push the limits and share and collaborate.
Have you taken an iOS development course that has left you with more questions? Do you have the basic fundamentals, but want to take your knowledge to the next level? If so, this course is for you!
You can Step It UP using REST-APIs. Through this interactive course, you will have the opportunity to use available APIs to build apps that are specific to your interests and build incredible mobile apps.
With each of the 77 lectures building off of the proceeding one, you’ll build a music video app from scratch following the model-view-controller design pattern and best coding practices. You will have the opportunity for hands on practice to apply the newly acquired skills to your own concept through challenges and exercises.
After the completion of this course our journey just begins. You will have the opportunity to continue your education by watching a new lecture presented every month. Your feedback will determine the direction of additional content in the bonus section.
I look forward to taking this journey with you.