Build your own YOUTUBE Replica with Swift!
3.7 (6 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
71 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Build your own YOUTUBE Replica with Swift! to your Wishlist.

Add to Wishlist

Build your own YOUTUBE Replica with Swift!

Create the same feature you see in the YOUTUBE application. For Beginners and Intermediates. IOS 10, Xcode 8, Swift 3
3.7 (6 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
71 students enrolled
Created by Bryan Okafor
Last updated 11/2016
English
Current price: $10 Original price: $195 Discount: 95% off
5 hours left at this price!
30-Day Money-Back Guarantee
Includes:
  • 10.5 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Create and customize Collection View Controller
  • Creata and customize Navigation and Menu Bar
  • Create a Settings Pop up View and its functionalities
  • Create Icons from scratch and add them correctly to Xcode
  • Create JSON files and call it from Xcode project
  • Swipe View Controller animations
  • Code efficiently, professionally and neat
  • Add and configure the AV Player in swift
View Curriculum
Requirements
  • Swift 2.3 and up (Majority 2.3)
  • XCode
  • Sketch
  • XAMPP
Description

YouTube Replica Implementation!

If you are a beginner in application development, or expert developer looking for some new tricks, you've come to the right place. In this course you will not only learn the basics in building a application from scratch you will also learn how to create a youtube replica main functionality:

  • How to create a full work application
  • How programmatically build an application
  • How to create a Collection View, Navigation View and Menu Bar
  • How to add a modal in your project
  • How to create a JSON file and parse it through your project
  • How to create images and icons through Sketch
  • ... and etc.



What are the requirements?

  • Xcode 7
  • At least a beginner knowledge in iOS programming with Swift
  • XXAMP (just for local drive access)

What is the target audience?

  • iOS developer who want to enhance their skills in coding Swift Language
  • iOS application designers
  • All level developers looking for something new!
Who is the target audience?
  • All programming levels!
  • Students looking for extra practices
  • Students eager to learn new tricks
Compare to Other iOS Development Courses
Curriculum For This Course
54 Lectures
10:22:00
+
Introduction and Project Essentials
2 Lectures 10:30

In this lecture I will tell you what XAMPP is, what we will be using it for and how to download it.

Preview 04:50

In this lecture we will discuss where you can download different versions of Xcode. We will also touch on the value of downloading Sketch.

Preview 05:40
+
Foundation of Application
7 Lectures 01:24:14

In this video we will start building our application. We will create a new Xcode project and start off the project by creating simple collection view cells. 

Introduction
12:18

In this video we will learn how to add our youtube items like thumbnail and subtitles. With these items we will programmatically constrain and size these items in the collection view.

Create Constraints
17:52

In this video we will add an extension to our code. Extensions add new functionality to an existing class, structure, enumeration, or protocol type. This includes the ability to extend types for which you do not have access to the original source code. We use this extension to reduce the repetitiveness in our constraints code.

Extension
11:02

Profile Image View
15:02

In this video we will clean up our error and also add the subtitle view item. We will also constrain and size the subtitle view.

Subtitle View
03:29

In this video we will add a profile and thumbnail image to our collection view. The image in place will help us tweak our layout of our images and text. We will tweak the code to make sure that our constraints are correct.

Tweaking Layouts
18:31

In this lecture we will be adding new groups and classes to our project. This video's main purpose is to clean up our code.

Create New Class Group
06:00

This is a quiz to increase your knowledge in extensions.

Extension Quiz
1 question
+
Navigation and Menu Implementation
9 Lectures 01:49:33

In this lecture we will add a icon item to our navigation bar.

Navigation Bar Item
12:32

In this lecture we will programmatically build a red navigation bar.

Create Navigation Bar
16:07

In this lecture we will create a menu bar right under the navigation bar. To do this we will have to create a new class. We will also add some cells in our menu bar to add some items in the next lecture.

Create Menu Bar
19:39

In this lecture we will be implementing the menu bar and its icons. We will focus on coding the sizing and constraint of the menu cells in our menu bar.

Menu Bar Icon Part 1
14:17

This lecture is a continuation from our previous lecture. We will be creating an array to store our menu icons and the shading of the icon when selected.

Menu Bar Icon Part 2
10:56

In this lecture we will learn how to create a modal. We will create a new group for this class.

Modal
12:31

In this lecture we will create a Channel Class in our modal. In the previous lecture we added Video to our modal. However the Channel class is going to be part of the Video class because every video is part of the a channel.

Channel
11:55

Resize Title Label
09:15

This lecture's purpose is to clean up our code and reduce the redundancy.

Clean up Code
02:21

This quiz will give you a better understanding of what an array is?

Arrays
1 question
+
REST JSON
4 Lectures 45:26

In this lecture we are going to learn how to grab our project items from our local drive using REST JSON. I will also show you how to show your json code in a better more readable format.

REST JSON
18:15

In this lecture we will continue working with our json code by including our channel items and information.

JSON Setup Channel
12:39

In this lecture will will add our UIImage json code to our extension file to reduce the redundancy.

UIImage Extension
05:24

In this lecture we will learn how to cache our images in our project. This practice will help reduce the data amount being used on the user's phone.

Image Cache
09:08
+
Settings Launcher Lectures
10 Lectures 02:04:21

This lecture is the introduction of our settings launcher. In this lecture we will begin working on the functionality of our setting button in our application.

Settings Launcher
13:45

In this lecture we implement the pop up functionality of our settings view

Setting Pop up View
12:21

In this lecture we will learn how to create our settings icon with Sketch. In the lecture I also give you the option to download the icons online.

Setting Icons with Sketch
13:26

In this lecture we continue creating our settings icons.

Setting Icons with Sketch Part 2
06:44

In this lecture we create cells in our pop view in order to add our setting icons and labels. We will code this cell implementation in a new class.

Setting Launcher Cells
16:42

In this lecture we will add all of our Settings Icons that we created in Sketch to our settings pop up view.

Add Icons to Setting Launcher
13:07

In this lecture will increase the sizing of our Setting Launcher in order to show all of our settings options. We will also configure the icons shade and background color once they are clicked.

Setting Launcher Sizing
09:34

In this lecture we will implement a slide in menu. This slide in menu will animate once we select one of our Setting Icons in our Setting Launcher.

Create Slide Menu
14:02

In this lecture we will continue to implement our slide in option but we will also fix up the cancel option functionality. We will learn how to cancel in two different ways.  The first way will be to click on the cancel option and the second way will be to click outside the setting launcher.

Setting Launcher Cancel Option
11:31

In this lecture we are going to enumerate our settings lecture implementation.

Enumeration
13:09

This quiz will give you a better understanding of what enumerations does.

Enumeration Quiz
1 question
+
Menu and View Controller Animation
9 Lectures 01:43:37

In this lecture we are going to learn how to hide our Navigation Bar once we scroll up.

Hide Navigation Menu
07:04

In this lecture we will implement a underline on selected menu bars.

Menu Bar Underline
13:33

In this lecture we are going to organize our code by adding a API Service Class. We are going to take our grab video json code from our HomeviewController and put it into our new API Service Class.

API Service
05:51

In this lecture we are going to learn how to add sections in our application to swipe between. We will start by adding 4 horizontal cells with different colors.

Slide Between Sections
13:04

In this lecture we will learn how to click between sections by clicking on our Menu Bar items.

Click Between Sections
16:01

In this lecture we are going to create a Feed Cell class to present our videos in the view controllers.

Video Feed View
10:14

The lecture is a continuation from the previous lecture.

Video Feed View Part 2
14:01

In this lecture we learn how to grab a different feed for each menu item. This means that we will have to create a different json file for each menu item.

Grab Multiple Feeds
08:45

This lecture is a continuation from our previous grab multiple feeds lecture.

Grab Multiple Feeds Part 2
15:04

This quiz will give you a better understanding of what an Application Programming Interface is.

(Application Programming Interface) API Service
1 question
+
Video Player Implementation
12 Lectures 02:13:21

In this lecture we will reduce the JSON code by making adjustments to modal class.

Reduce JSON code
09:33

This lecture is a continuation from the previous lecture.

Parse JSON to Reduce Code Part 2
11:10

In this lecture we are going to learn how to deal with our code if we have an added attribute in our JSON file.

JSON Added Attribute
10:02

In this lecture we are going to begin the implementation of our video player. We will create a Video Launcher class to input our code.

Enable Video Player
10:50

This lecture is a continuation from the previous video. We will grab our own video, place it in our local drive and play it through our application.

Play Video in Application
12:15

In this lecture we will start implementing our video player controls. The first video that we will do is our activity indicator.

Video Player Controls
12:25

In this lecture we will re-visit sketch and create a pause and play button icon

Create Play and Pause Button
03:43

In this lecture we will implement the functionality for pause and play in our video. Before we do this we will add our buttons that we created in Sketch.

Video Pause and Play Functionality
15:52

In this lecture we will add the uislider to our video container.

UISlider
11:14

In this lecture we will work on our uilsider functionality.

UISlider Functionality
13:36

In this lecture we will add the current time label to our video container. We will also add the gradient color to our video container.

Current Time Label and Gradient
12:07

In this lecture we will implement the functionality of our current time label and our uislider. When our video runs the uislider and current time will move in sync.  

Current Time Label Functionality
10:34
+
Upgrade: Xcode 8 Swift 3
1 Lecture 10:58

In this lecture we will learn how to upgrade how whole project to Swift 3 in Xcode 8.

Upgrade Entire Project
10:58
About the Instructor
Bryan Okafor
4.1 Average rating
9 Reviews
107 Students
3 Courses
Software Engineer

I am a Graduate from University of Houston. I received my degree in Computer Information System. After receiving my degree I accepted a job as a Software Deployment Engineer. At this position I trained software to my company's customer around the world. I have a passion in teaching people new things. On my free time I code and build new applications.