Realtime apps with Swift & Firebase acquire impressive skill

Build a chat app that works in real time using Firebase and Swift, be the best developer impress your boss and friends
3.7 (125 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.
686 students enrolled
92% off
Take This Course
  • Lectures 72
  • Length 17 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 10/2015 English

Course Description

  • *** The next bonus section... is up to you!!! Enrol now and help us decide ***
  • *** added BONUS section selected by the students "Security & Rules on Firebase" ****
  • *** added BONUS section "Displaying online and offline users with different Avatars" ****
  • *** added BONUS section "How to add and use JSQMessageVIewController pod, make your app look like the iMessage iPhone app" ****

Why do our courses have fewer students than most courses on Udemy - because we do NOT try to mislead our new students.

  • 100% real and paid students - We do not believe in the practice used by many instructor on Udemy that offer their courses on blackheads sites to inflate their numbers, our students are real, they participate on the course, help each other other .
  • 100% real reviews - We have never bought any review from other sites like fiverr or similar, which is another very common technique among instructors on Udemy.

What to look for when buying a course on Udemy:

  • Look for the questions on the course during the free preview, the time it took for it to receive an answer, the quality of the answer, how happy the student was with the answer.
  • Look for the instructor profile on LinkedIn, and other places.

Take a tour in the course. Get to know your future instructor before making a decision. After all, it's your future on the line!

I am sure you will make the right choice so I will see you inside!

As applications get more and more complex, clients demand faster interaction. They want to receive a post, a notice, an event as soon as it happens. They want to know if a friend is online or offline in a chat application as soon as the other party changes their status. They want to know these things as soon as they happen, in other words, in Real-Time.

Implementing real time systems can be very costly, complicated, and time consuming. This is where Firebase comes into play to save the day.

Firebase starts with a FREE tier that can be used even in your commercial applications. It also comes with a very simple to use API that can be use for iOS (including Swift), Android, and JavaScript so you don't have to worry about compatibility. It also comes with a very easy to use dashboard web interface.

You will learn:

  • proper and elegant error handling in Swift
  • proper and elegant code refactoring in Swift
  • proper and elegant use of enum in Swift
  • proper and elegant use of inheritance in Swift
  • how to import the JSQMessageViewController and use it to send and receive messages
  • how to make or app look like just like the iMessage from iPhone, including sound
  • Firebase Security and Rules

The qualifications I have that I believe will help me teach you?

  • I have received my first certification in programming in 1987 when I was only 10 years old in an apple II
  • I have been a professional developer for over 20 years
  • I am an active member on StackOverflow, and I am always helping members on the site. Helping people is the passion that brought me to create this course.
  • I currently rank as top 10% for Swift Help in StackOverflow
  • I currently rank as top 20 % for iOS Help in StackOverflow
  • I am dedicating a lot of time to this course so you can be sure you will have plenty of support in your journey.

What will you get from this course?

  • How to Authenticate to Firebase using email and password
  • How to read and write data in real time to and from Firebase
  • Develop iOS apps with real time data transfer
  • Learn the complex concepts of Swift necessary to build a real app
  • How to integrate Firebase in your Swift iOS App
  • Over 31 lectures and 4 hours of content!
  • Explore the Firebase administrative dashboard and dive into the development of a real-time link sharing app
  • Develop iOS apps with real-time data transfer
  • Add user accounts to your Firebase app and grant access to them with ease
  • Grasp the different ways to structure your Firebase data to be scalable and maintain performance

Who is the target audience?

  • This video course is for anyone with basic iOS experience who wishes to learn how to add real-time functionality to their apps with Firebase

What are the requirements?

  • A Mac running Yosemite or latest version of Mac Os
  • Xcode 6 or latest
  • Basic knowledge of iOS

What are the requirements?

  • A Mac running Yosemite or latest version of Mac Os
  • Xcode 6 or latest
  • Basic knowledge of iOS

What am I going to get from this course?

  • Explore the Firebase administrative dashboard and dive into the development of a real-time link sharing app
  • Develop iOS apps with realtime data transfer
  • Add user accounts to your Firebase app and grant access to them with ease
  • Grasp the different ways to structure your Firebase data to be scalable and performant

Who is the target audience?

  • This video course is for anyone with basic iOS experience who wishes to learn how to add real-time functionality to their apps with Firebase

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Introduction to Firebase
A little about me your future instructor
Section 2: Installing and Configuring CocoaPods
What is Cocoapods and how do I install it
If you are having security problems installing CocoaPods
Section 3: First Steps with Firebase

Learn all the necessary steps necessary to create a Firebase account

Firebase dashboard
Section 4: Creating your first project with Firebase

Learn few tips and tricks to create a new Firebase application, also a brief explanation about the options avaliable for us iOS developers.

How to create and setup an Swift project to work with Firebase using CocoaPod.

In this lesson we will

  1. Create the Podfile
  2. Execute the Pod installation
  3. Import the necessary Bridge Headers from Firebase


How to create and setup an Swift project that works with Firebase Framework.

In this lesson we will:

  1. Find it in the Firebase website, download
  2. Import to our project with all the necessary dependencies.

The code in the end of this lecture will the offered as a boiled plate, in case you want go direct to coding.

Section 5: First steps with Firebase and the Console

In this lecture we will create a reference to Firebase for both project (the one setup with Cocoapods and the one setup using the Framework)

Writing a simple value to Firebase
Section 6: Bring Firebase to the iPhone UI
Displaying the value in Firebase in a Label in realtime
Sending the value from a Text Field to Firebase

We can create some more descriptive nodes in Firebase (Json) in this example we will create a node users with users inside with name, last name, is online flag, email among others, all the fields are update in real time in the XCode console for testing.


In this lecture we will learn how to create a node for the users and append the username also append the user last name and set a flag "isOnline" that will indicate if the user is logged or not, all the code will be done in the Swift side.


In this lesson we will move the instructions to set the user details to inside the action for the UIButton, we also will start to send the value inside the UITextField.


In this lesson we will learn how to set the username to the UILabel in real time, so as the user changes its username all the devices get update at the same time


In this lesson we will learn how to set the background color to red or green depend on if the user is offline or online as the user change his status all the apps get the colors update instantaneous.

"I commit a little error in the class that I decide to live in the video as I think many students can learn from it" Icaro


In this lecture we will learn:

  • the different type of authentications in Firebase
  • how to activate the email and password in and
  • how to create create a login screen
Section 7: Creating our data structure

In this lecture we will learn how to create a new class to associate with the loginviewcontroller we create before hand and we will associate the outlet (UITextfield) and actions (UIButtons) to this new UIViewController class


In this lecture we will learn how to create a new user in Firebase, authenticate this user and capture its authorization data with Firabase


In this lecture we will learn how to create alert views to display messages to the users when something goes wrong in cases of login and sign up


In this lecture we will learn how to add a segue to the new UITableViewController after authenticate user with Firebase

Section 8: Data Structure
Understanding Firebase flattened architecture (NoSQL)
Creating a flattened structure to our data

In this lecrature I will share with you all knowledge about Signup screens and the science behind it, how they work and why. We also will learn how to display a alertdialog to request the user a username in case he is Signup for the first time.

Adding new User Node
Keep the user logged in and logout functionality
Section 9: Sending the Message
Create the modal ViewController to enter the message
Populating MessageViewController
Sending the message to Firebase
Receive new messages in real-time from Firebase
Displaying new messages in the tableView
Section 10: Bonus: Now let's make This app even Better

Use this section to let us know what do you think would make this app better, just post your comment in the discussion board!

Section 11: Bonus Section - Adding JSQMessage and making our app look like the iMessage app
Note - This section is currently under construction, read this!

In this lecture we will see how to modify the podfile to add the JSQMessage pod command to it so we can import the necessary files to make use of this frameworl.


In this lecture we will see how to "redirect" the segueways that use to go from the loginViewController to the NavigationViewController to the new JSQMessageViewController


Sometimes we can run into some inexplicable errors, find here some tips and tricks in how to find the reason for this exceptions.


Sometimes can be trick find out how to hide an field or a button in a third party applications, specially if it was written in Objective-C, in this lecture I will show you how you can easily find out most of the time how to archive this task without any headaches.


In this lecture we will see what is and how to use the JSQMessagesBubbleImage, JSQMessagesAvatarImage and its factories


In this lecture we will star to implement the delegates from UICollectionViews so the application can display the messages correctly for each user


In this lecture we will finally see the final result of our efforts to setup JSQMessageViewController


In this lecture we will send the messages typed by the user up to Firebase


In this lecture we will see how to retrive the old messages already existing in Firebase


In this lecture we will learn how to observe the post nodes in Firebase for new added messages


In this lecture we will learn how to retrieve the users username and pass it to the JSQMessageViewController


In this lecture we will see how to create avatar on the fly for new users that enter the conversation

Section 12: Displaying Online and Offline Users

In this lecture we will learn how to set the value of the flag "isOnline" for a user as soon as this user authenticates to Firebase.


In this lecture we will learn how to logout the user as soon as the application loses connection with Firebase


In this lecture we will see how to set the user offline in Firebase when the user close the application


In the last lecture we unwrap some user data before check if the we had a user logged into the system, if that wasn't the case the application could crash. In this lecture we will see how to avoid this to happen using the "if let" statement in swift


In this lecture we will see how to add observers for the users, "observeSingleEventOfType(FEventType.Value)" that capture all the values once at first run and "observeSingleEventOfType(FEventType.Value)" that capture changes in the user state

Section 13: Sending Photo as Message

Early in the course we decide to hide the Accessory button as we wan't using it, in this lecture we will unhide the Accessory button and override the function didPressAccessoryButton that is called when the button is pressed 


In this lecture we will learn how to create an alertView so the user can select between take a new photo or use one from the iPhone gallery


In this lecture we will learn how to select between the Camera or the Gallery in the iPhone and display the appropriate picker when available.

Implement the delegate method to Get the Image or Cancel Operation​​

In this lecture we will learn about Static Helper Class, we will create one to to resize the Image and understand why we should do this.

Section 14: Understanding Security and Rules when using Firebase

Firebase offers tools to easily create, configure, test and maintain the Security and Rules of our database, in this lecture we will see where we create and test this Security and Rules


In this lecture we will learn about two very important rule types .read and .write

.read    Describes if and when data is allowed to be read by users.
.write    Describes if and when data is allowed to be written.

String is one of the primitive types most used and is very important lear how to validate this kind of string, in this lecture we will learn how to validate if a key as a valid string, if it has a valid length, (greater than, smaller than, greater or equals than, smaller or equal than, or equal some value).

We will also learn how to use operator such as AND and OR to create rules such as greater than zero and smaller than 160 character and much more


Learn how the secure rules set in a Parent affect its children  


Some informations in our app we want everybody to read, other information we want to limit just to users that is logged to the app and yet other we want some very specific users only to be able to access. 

For example in your chat app we may want everybody to be able to see the list of users in the app, but just logged users to see read the user profile and finally just the owner of that profile should be able to modify the details for that specific profile 

Section 15: Tell us what you learned
3 questions

Show us what did you learn

Section 16: Resources
Files / Links / Resources
Share your GitHub repository and/or projects

In this lecture of the course you will find links to the apps created by the students in this course, if you publish your app as well send the link to us and we will add it here with the others.

Section 17: Students Q & A
Section 18: Bonus tracks

How to upload your code directly from your XCode project to GitHub, how to fork and download interesting projects and make those projects part of your own repository so you can change it and upload back, how to suggest changes to the original author and more. All you need to know to get start with GitHub, Commit, Push, Refresh Status, Pull, it is all here.


Sorry guys it seems that you have beens learning farster that we have been teaching... more material still to come we will let you know as soon as it is avaliable.

Section 19: Others

This is my new promo video and I would love to hear your feedback on it!

Swift Quick Reference eBook
1 page

Check out now! Exclusive deals inside for limited time!

Section 20: Claim your discount here
50% OFF new Firebase course

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Icaro Lavrador, Swift Expert|Senior iOS Developer|Udemy Premium Instructor

  • I am an "eternal student", I start programing when I was just 10 years old and to this day I still learning new things every day.
  • Because of my passion in learn new things I developed a passion to teach as well, I start helping people at Stackoverflow where I am ranked as the top 10% Developer Help for Swift and top 20% Developer Help for iOS.
  • You will not see my name in many app as I am the go to guy to fix problems, I offer my work mainly as a contractor solving problem that the others professional cannot solve.
  • I start develop software and consultancy when I was 15 years old and never stop, today I want to help people because I read every day the code produced by the professionals in the field and I can honest say they are mostly JUNK.
  • One of my clients try to use an Udemy iOS course to argue about some strategies he took in his code. After see so many WRONG explanations, so many BAD advice I decide to create my own courses. I watch over 15 top rated courses at udemy and out before decide to take action
  • My courses are create to make YOU the best in the field, I can guarantee that if you take my courses you will drop jaws in interviews, companies are desperate looking for good developers and they will pay you over $100k/year to work for them.
  • But you have just one shot to impress, so make it the right one, learn right, learn it once, make money forever.

Ready to start learning?
Take This Course