4.35 out of 5
4.35
25 reviews on Udemy

iOS with Swift & Firebase

Developing a complete iPhone App with Swift in XCode and with Firebase backend
Instructor:
Amir J
2,986 students enrolled
iOS interface Design
Database Structure local and cloud
Firebase Backend

Throughout this course, we will develop a complete iOS application using XCode and Swift programming language. In this course, we will develop a shopping list application with both local and remote databases. During the development, we will discuss topics such as interface design, databases and data structures as well as user authentication through Firebase MBaaS. 

This course is useful for a variety of users. It can help if you wish to strengthen your development understanding with XCode or if you want to learn more about data structures, reading and writing local and remote databases.

Introduction

1
Introduction to This Course

In this lesson, we will look at the course ahead of us. We will explore the different aspects of the course and what we are about to develop.

2
Starting a New Project and Testing Simulator

In this lesson, we will start a new app in XCode and test our simulator.

Lists View Controller and Storyboard

1
Designing Our Lists Storyboard

In this lesson, we design our outlets and also name them as well the name for our table view cell

2
Connecting Our Storyboard Outlets to the Code

In this lesson, we will add a new View Controller through storyboard called ListsViewController. We'll also connect the data source and delegate for our table view in storyboard and add the necessary protocols. We should make a button outlet for the profile button.

3
Table View Data Source
In this lesson, we will add the only two absolutely necessary methods of our data source, we will also test our data source.
4
Understanding Our Data Structure
In this non-programming lesson, we will look at how our data is structured.
5
Adding Item Class
In this lesson, we will add our Item Class.
6
Adding User Class

In this lesson, we will add our User Class.

7
Adding Grocery List Class
In this lesson, we will add our List Class.
8
Adding App Data Class

In this lesson, we will add our App Data class's starting elements. We would need to introduce and initialize our Current Lists as well as a dummy current user. We will also add an override init for future use

9
Preparing First List

In this lesson, we will add our first list, we will not however write it to disk as we still don't have that function.

10
Testing Out the Initial List

In this lesson, we want to access the newly created initial list.

11
Adding a New List
By now, we have a list view interface where we can view our basic starter lists. Now let's try and add a new list. In here, once everything work, we will face a new issue and that is our app will not maintain its data between two sessions of the application. We will address that in our next section.

Data Handling

1
Understanding Data

In this lesson, we will have a quick look at why we have to record our data on the disk and what component we should add to do so.

2
Conforming User Class to NS Coder

We need to conform our custom class to NSCoder to be able to save it to disk using plist file.

3
Convert Methods

In this lesson we will add a convert class to convert between bools and dates and strings.

4
Conforming Item and Grocery Class to NS Coder
We need to conform our custom class to NSCoder to be able to save it to disk using plist file.
5
Read Write Data Methods

In this lesson, we will add a new method to our app data where all of our lists get written to the disk using a json serialization. To write data, we will also introduce a new OfflineLst.

6
Reading Data Method Part 1
In this lesson, we will adjust our list view to properly read and write data to the disk. We will also make sure if we make a new list, it gets written to the disk.
7
Deleting a List by Dragging

In this lesson, we will learn how to delete a list by dragging it.

Items View

1
Items Interface

In this lesson, we head back to our storyboard and design our items interface.

2
Items View Controller
In this lesson, we add a new view controller and connect it to our storyboard and connect the different outlets to their functions and outlets.
3
Segue to the Item View Controller

In this lesson, we will code the navigation to and back from Items View Controller.

4
Cur List
In this lesson, we will introduce our curList which is the list that we have clicked on in the Lists Activity. We will pass an argument through our PrepareForSgue.
5
Items Table Data Source
In this lesson, we will add the data source and delegate connections through this storyboard and also add the necessary protocols and the two required methods of number of rows and get cell.
6
Clicking on an Item
In this lesson, we change the status of an item by clicking on it, we also write our data to disk after doing that.
7
Dragging to Delete an Item

In the previous lesson, once we set everything correctly to delete and item, we realize that the Lists View Controller doesn't update its table view properly. That we will take care of in this lesson.

8
Adding a New Item
In this lesson, we will learn how to add an item by pressing the done button on the text field.
9
Understanding What Happened

In this lesson, we will look back at everything we have done so far and we try to make sense of everything we have done so far and how we could build on those.

Backend

1
Introduction to Backend

In this lesson, we will look at our backend data and why we would need them.

2
Firebase Console

Once we install the pods based on Firebase, we will re-open the project through the workspace and add the google plist

3
Setting Firebase Rules
Once we install the pods based on Firebase, we will re-open the project through the work-space.
4
Initializing Firebase in AppData

In this lesson, we write the code for our Firebase connection as well as our new OnlineLST

5
Alert Show Method
In this lesson, we will add a new method to show messages to user.
6
Testing Out Firebase
We will do a quick test on Firebase in this lesson to make sure it works properly.
7
How to Use the Assets

In this lesson we will have a quick look at our assets and how we could use them.

8
Profile Action
In this lesson, we will learn how to add the various profile actions to our login button.
9
Register Alert View

In this lesson, we will add an alert dialog for when the register button is pressed.

10
Register Method

In this lesson, we will learn how to actually register our user on Firebase back-end.

11
Set Local User

In this lesson and after registration, we will discuss how to change the local user.

12
Save User Main Values on Cloud

Once user is created, we should write its main data to our backend.

13
Save All User Lists Online
In this lesson, we will learn how to save an entire list to our online back-end.
14
Login Alert View
In this lesson, we will write the alert view for our login menu. This code is little too long and also trivial, so we will use a little cheat in here,
15
Login Method

In this lesson we will use our Authentication to login our user to Firebase back-end.

16
Reading Data Method Part 2

In this lesson and after logging in, we continue with reading data.

17
Reading Online Data
In this lesson we introduce the OnlineLST array and we also write the code to read the online lists in our App Data.
18
Compare Lists Method

In this lesson, we will look at the course ahead of us. We will explore the different aspects of the course and what we are about to develop.

19
Reading Data Method Part 3

In this lesson, we will start a new app in XCode and test our simulator.

20
Setting Profile Button
Through setting our profile button, we can give our user a little feedback on whether they are online or offline.
21
New List on Cloud

In this lesson, we will learn how to add a new list on cloud.

22
Delete List on Cloud

In this lesson, we will learn how to delete a list from cloud.

23
Save a New Item on Cloud

In this lesson, we will learn how to add an item on cloud.

24
Change Item Status on Cloud

In this lesson, we will re-write our items once they are tapped on.

25
Delete Item on Cloud
In this lesson, we will learn how to delete an item.
26
Logging Out From Cloud
In this lesson, we will code our log out method.
27
Recap of Online Data
This is also a good time to test all of our login, register methods once again. In here, we realize that we need to call our readData once again at the end of the register method. We will also test our application by manually adding an item to the cloud.

Sending Invitation

1
Share This Function

In this lesson we will write the beginning of sharing a list through clicking the share list button.

2
Finding the Invitee

In this lesson, we will search within our Users Node to find our invitee user.

3
Sending an Invitation

Once we found an invitee user, we will have to send them an invitation.

4
Invitation Class

In this lesson, we will add a new class to hold on to our invitation objects.

5
Reading Invitation Node

In this lesson, we will read the content of "MyInvitations" node and populate the list of invitations coordinates.

6
Loading Invitation Lists

In this lesson, we will convert the invitation data into actual invitations lists.

7
Removing an Invitation

In this lesson we will learn how to remove an invitation.

8
Deleting a List
In this lesson, we will find how to delete a list that user is invited to
9
Conclusion and Suggestions
In this lesson, we will look back at everything we have done and we look ahead at what else could be done.
You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.4
4.4 out of 5
25 Ratings

Detailed Rating

Stars 5
12
Stars 4
9
Stars 3
3
Stars 2
1
Stars 1
0
712682bba16a970db3a6e57ea419a168
Course available for 2 days
30-Day Money-Back Guarantee

Includes

6 hours on-demand video
Full lifetime access
Access on mobile and TV
Certificate of Completion

External Links May Contain Affiliate Links read more

Join our Telegram Channel To Get Latest Notification & Course Updates!
Join Our Telegram For FREE Courses & Canva PremiumJOIN NOW