Creating a Cloud-based Swift iOS Chat App with Firebase

Firebase has become one of the most popular cloud based databases. This course will teach you how to build a Swift iOS chat app by utilizing Firebase.
Course info
Rating
(19)
Level
Intermediate
Updated
Jan 26, 2017
Duration
3h 40m
Table of contents
Course Overview
Exploring the Components of Firebase
Connecting Your App to Firebase
Scene Layout
Firebase Plumbing and Chat UI Build Out
Email and Password Authentication
Authentication and UI Polishing
Photo Uploading
RemoteConfig �_ Updating Your App On The Fly
Description
Course info
Rating
(19)
Level
Intermediate
Updated
Jan 26, 2017
Duration
3h 40m
Description

Having an intelligent and easy to use cloud-based storage service for your iOS app is critical when real-time, reliable communication is necessary. In this course, Creating a Cloud-based Swift iOS Chat App with Firebase, you'll see how Firebase comes to the rescue and satisfies the need for reliability and real-time interaction. First, you'll create a Swift based chat app and at the core of this app will be Firebase. Next, you'll learn how to integrate Firebase into an iOS app. Finally, you'll explore the schema structure of Firebase, which is key to fully understanding iOS/Firebase integration. By the end of this course, you'll know how to integrate Firebase with iOS to create a real-time chat application.

About the author
About the author

Brett Romero is Founder of Bitesize Business School, author of three books and seven iOS applications.

More from the author
Swift iOS UI and Unit Testing
Beginner
1h 41m
May 17, 2017
More courses by Brett Romero
Section Introduction Transcripts
Section Introduction Transcripts

Course Overview
Hi everyone, my name is Brett Romero, and welcome to my course, Creating a Cloud-based Swift iOS Chat App with Firebase. I'm a software developer consultant and founder of Bitesize Business School. The cloud is everywhere nowadays, and it's the perfect place to centralize and distribute your data. That's where Firebase comes in. In this course, we're going to build a Swift-based chat app that leverages Firebase's database and real-time interactive capabilities. Some of the major topics that we'll cover include, learning about the key components of Firebase such as storage, authentication, real-time interaction, and its database capabilities, also how to integrate Firebase with an iOS app, push and pull data from Firebase for real-time chatting, and finally, provide a great overall look for your chat app's interface. By the end of this course, you'll know how to integrate Firebase with iOS to create a real-time chat application. Before beginning this course, you should be familiar with Swift and iOS programming. I hope you'll join me in this journey to learn how to create an iOS Firebase chat app, with the Creating a Cloud-based Swift iOS Chat App with Firebase course, at Pluralsight.

Email and Password Authentication
Hi, my name is Brett Romero, and in this module we're going to create our User class and integrate it, then we're going to start retrieving data from our Firebase web app. I'm going to give you an overview of what we're going to be doing in this module in a little bit more detail. All right, so we're going to start off with creating our User class, this is going to allow us to then have a user that we can always point to, that is logged on, authenticated, it's the one that is the main user for sending text messages, retrieving text messages at that point in time. It's also the user that when you go to the profile settings, that's the user that we're going to manipulate. We're going to create a ProfileManager, which is going to be the second screen you see, so after you log in you'll see the ProfileManager, it'll have the various users that have sent text messages to our user, and our user has sent text messages to them. Then we'll get into wiring up that particular view, the Profile view, and making it interactive. So we'll have our Firebase integration, as well as the actual users coming out of the Firebase web app. Then we'll get into how you build up data in Firebase starting from scratch. This is really going to allow you to see how data is constructed in Firebase, and really give you a good idea of what's going on when we retrieve data using the Firebase SDK. And then finally, we want to display that data inside of our app, it's going to be the final part of our initial web app integration, and getting that data to come through and display inside of our app. So let's go ahead and get into this module.

Authentication and UI Polishing
Hi, my name is Brett Romero, and I'd like to go over what we're going to cover in this module. This module is all about creating a log on for our users to log into, creating a way for them to create their own accounts, and then log on as that user. Then we're going to do some polishing in our profile and our Chat Views. So to give an outline of what's going to happen, the first thing we're going to do is wiring up the login, which is to take our UI elements and bind them to the controller sitting behind that UI. Then we're going to do a CreateAccount function in the FirebaseManager, which is going to create user accounts in the Firebase web app, we'll automatically log those users in, since we know they'll be authenticated at that point, and let them go into the application. Then we're going to bind our UI components in the Chat View, so that we can actually type in text messages and then let them go into Firebase and display inside of our Chat View as well. We're going to clean up our Profile View by adding in a profile image for users, and we're going to have a couple of UI elements on the profile, TableViewCell, so we're going to bind those to the code behind TableViewCell as well. In our Chat View, we're going to create the background where the text messages come through, so it's going to be a little bit of gray, it's going to let it stand out more. We're going to round the corners of that particular section where the text is appearing. We're also going to have it dynamically increase to accommodate for more text. So that is an overview of what we're going to be doing in this module. Let's go ahead and get into our first lesson.

Photo Uploading
Hi, my name is Brett Romero, and in this module we're going to integrate the ability to upload photos. And I'd like to go over what we're going to cover. So we're going to start by doing profile image function integrations, which are going to be the back-end functionality that's going to allow us to start uploading our photos. We're going to have to wire up our scenes, which we haven't done yet, so we have labels and buttons that we're going to need to tie in to the back-end code. Then we're going to bring in our Firebase functionality that's going to allow us to actually grab the image and send it to our Firebase app. And we're going to end with verifying that we're able to do the uploads, we're going to check it in Firebase, and see how it's also storing those photos.

RemoteConfig �_ Updating Your App On The Fly
My name is Brett Romero, and in this module we're going to go over how to integrate remote configuration. And we're going to start off by preparing for remote configuration, which means we're going to make some changes in our Firebase app, then we're going to start doing the integrations in our iOS app. And to do that we're going to start off by setting some defaults, so just in case there isn't anything in the remote app at least we're going to supply values to the different UI components that are actually looking for data from Firebase. Once we move a little bit further along with our function integrations in our iOS app, we'll begin pulling those configuration values out of Firebase. We're going to do this by starting up the app and letting it refresh from Firebase, and get those values. Once we see that's okay, we're going to then see how do you update an app that is running and get it to refresh with the new values during that app session, without the user having to restart it. A lot of interesting integrations going on, so let's go ahead and get into this module.