QuickChat (WhatsApp like chat) iOS9.1 and Swift 2
4.9 (112 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.
395 students enrolled
Wishlisted Wishlist

Please confirm that you want to add QuickChat (WhatsApp like chat) iOS9.1 and Swift 2 to your Wishlist.

Add to Wishlist

QuickChat (WhatsApp like chat) iOS9.1 and Swift 2

Create real time chat application from the scratch! Your own cool copy of whatsApp which will work offline and online
4.9 (112 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.
395 students enrolled
Created by David Kababyan
Last updated 7/2016
English
Price: $30
30-Day Money-Back Guarantee
Includes:
  • 16.5 hours on-demand video
  • 1 Article
  • 9 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Have a coupon?
What Will I Learn?
Learn to use Firebase backend
Dealing with JSON files
Learn how to send Push notifications
Learn Backendless backend service provider
Login with Social media account like Facebook
Integrate 3rd party code to your Applications
Bug fixing
Saving files on server and retrieving them
Offline application functionality
User Location management
Use the camera and photo library to take and store pictures
At the end of this course you will have a real world application ready to post it to Appstore with full functionality as you would expect from real application
More than 120 lectures taking you step by step from beginning to the end where we will have cool chat application!
View Curriculum
Requirements
  • You need to know how your way around in xCode
  • The course is designed for people with some knowledge in iOS programming with Swift
Description

UPDATE: The course is updated to the latest Firebase!

This course will teach you how to building step-by-step a WhatsApp clone using Swift 2.0, Firebase and Backendless backend service.

We will be using Firebase as backend for our chat and Backendless for user login management, Push Service and File Storage.

The cool thing about Firebase is that its a real time backend, what does this mean? We dont have to constantly query for new messages, Firebase will push each new message to us automatically with no additional code required. This is very efficient on code writing and on network usage.

The application will work online and offline, Firebase will keep local datastore and will sync with online datastore ones the device gets internet connection.

We will use Facebook Login as well as user registration on Backendless.

The course will teach you how to integrate 3rd party libraries to your project, how to combine the Objective-C and Swift libraries.

I will teach you how to send and receive Push notifications to keep your users notified when they receive messages.

The application is build in a way that its very easy to modify to integrate to other applications as well, also you can continue building the app to a stage that you can post it to appstore as ready fully functional chat application.

Who is the target audience?
  • iOS developers who want to learn more about backend providers, how to integrate 3rd party code to your project. Integrate new functionalities to your existing projects and many more cool staff!
Students Who Viewed This Course Also Viewed
Curriculum For This Course
Expand All 133 Lectures Collapse All 133 Lectures 16:38:18
+
Introduction
1 Lecture 08:12

We are going to build a chat application that has most of the functionality of WhatsApp.

After this course you will learn how to use other SDK's, 3rd party code in your application.

I will be covering very wide range of topics in this course. Its recommended that you have some experience with xCode, and iOS application building. If this is the first time you are trying to build app for iOS, you can take this course and you will learn many things from it, but I recommend you to take some beginner courses first.

Preview 08:12
+
Setup
5 Lectures 27:59
Info
00:05

INSTALL COCOAPODS VERSION 0.39.0

sudo gem install cocoapods -v 0.39.0

pod 'JSQMessagesViewController', '~>7.3.3'  
pod 'IDMPhotoBrowser', '~> 1.8.4'
pod 'Firebase/Core'
pod 'Firebase/Database'
pod 'Backendless', '~> 3.0.29'
pod 'MBProgressHUD', '~> 0.9.2'


Preview 11:41

Note: this is a new video and its shot with different project name, dont pay attention to the project name or files inside it.


Preview 05:26

Note: this is a new video and its shot with different project name, dont pay attention to the project name or files inside it.

Download assets from this lecture!

Firebase rules!

{
    "rules": {
        ".read": true,
        ".write": true,
        "Recent": {
          ".indexOn": ["userId", "chatRoomID"]
      }
    }
}

Preview 07:45

+
Login and registration
9 Lectures 01:25:34

Dear Students, please watch the lessons 111-114 before you continue. Also look at extra section of new firebase at the end of the course. Some firebase imports are different with new firebase.

Since the Backendless SDK changed, there is one small adjustment you need to do to the course, its not mandatory, the application will work as in the videos, but it will save you some time not to go back and do changes in all the files. Instead of currentUser use the backendless.userService.CurrentUser.

Preview 11:11

Login View Controller Setup Part 2
10:13

Login View Controller Setup Part 3
11:23

Register user part 1
14:43

Register user part 2
07:49

Login View Controller
09:56

Create Tab Bar Controller
10:15

Login User Authentication
05:45

Autologin Bug fix
04:19
+
Creating Main part of our application
99 Lectures 12:39:47
Progress HUD setup
11:23

Recent UI Setup
12:37

Custom TableviewCell for Recents
09:25

Recent Cell setup part 1
18:05

Recent cell part 2
08:26

Recent cell part 3
07:13

Setup Recent view
14:48

Choose user View Controller part 1
07:19

Choose user view controller part 2
15:28

Choose user view controller part 3
05:26

Choose user Delegate part 1
08:50

Setup Chat View Controller part 1
08:54

Choose User delegate part 2
04:05

Chat view controller part 2
05:02

Chat view controller part 3
09:02

Chat View Controller segue
03:21

Recent Part 1
15:35

Recent part 2
12:54

Recent part 3
11:15

Recent test run
01:46

Retrieve Recent item
11:34

Run the app (use offline saving)
06:36

Delete Recent
02:49

String compare explanation
06:18

Delete recent function
06:21

Restarting Chat
13:45

JSQMessages Data Source functions
14:26

Send Message
08:44

Outgoing message part 1
14:34

Outgoing message part 2
11:30

Update Recents
19:15

Send Text Message
11:18

Send first message
05:22

Load Messages part 1
12:23

Load Messages part
06:38

Incoming Message Class part1
11:03

Load Messages part 3
09:34

Location Manager Setup
10:04

Create new line in you Plist and add the following key value

key: NSLocationWhenInUseUsageDescription

Value: "your text here"

Update Plist with Location
02:20

Create Location Manager Part 1
06:02

UIAlertController Setup
08:20

Check if we have access to Location
04:12

Send Location Message
01:26

Create Location Message Fuction
08:25

Show Location Message
03:30

Receive Picture Message Function
10:50

Create Camera Class Part 1
08:54

Create Camera Class Part 2
03:24

Create Camera Class Part 3
09:30

UIImagePickerDelegate function
06:38

Send Picture Message
07:26

Bug fixing
02:52

IDMPhotoBrowser Setup
10:41

Create MapViewController
05:49

Map View Setup
04:18

Map View Segue
05:13

Test Map View
00:56

Settings View Controller Part 1
11:37

Settings View Controller part 2
05:52

Settings View Controller part 3
06:25

Settings View Controller part 4
05:09

Save User Defaults
10:07

Change Avatar Image
06:21

Update Settings UI
07:31

Update Camera Class
05:51

Update Chat View Controller with camera class
05:21

Download and upload function
18:34

Upload Avatar image
07:51

Settings UI Update
04:54

Settings Test
01:22

Logout User
08:27

Show Login View after logout
02:16

Timestamp of chats
10:30

Status Bug fixing
01:52

Download and set avatar image part 1
14:57

Download and set avatar image part 2
18:08

Check if we have with User
05:07

Avatar bud fixing
06:19

Load user defaults in Chat View Controller
02:54

Check Dynamic Avatar function
05:10

Update Recents part 1
08:14

Update Recents part 2
05:31

Register with Avatar part 1
10:23

Register with Avatar part 2
03:40

Test Run Avatar Image
02:14

Facebook Login part 1
06:21

Facebook Login Part 2
05:59

Facebook Login Part 3
07:55

Facebook Login Part 4
08:07

Facebook Login Button
03:46

<key>CFBundleURLTypes</key>

<array>

<dict>

<key>CFBundleURLSchemes</key>

<array>

<string>fburAppID</string>

<string>fbauth2</string>

</array>

</dict>

</array>

<key>FacebookAppID</key>

<string>urAppID</string>

<key>FacebookDisplayName</key>

<string>urAppName</string>

<key>LSApplicationQueriesSchemes</key>

<array>

<string>fbauth2</string>

</array>

<key>NSAppTransportSecurity</key>

<dict>

<key>NSExceptionDomains</key>

<dict>

<key>facebook.com</key>

<dict>

<key>NSIncludesSubdomains</key> <true/>

<key>NSThirdPartyExceptionRequiresForwardSecrecy</key> <false/>

</dict>

<key>fbcdn.net</key>

<dict>

<key>NSIncludesSubdomains</key> <true/>

<key>NSThirdPartyExceptionRequiresForwardSecrecy</key><false/>

</dict>

<key>akamaihd.net</key>

<dict>

<key>NSIncludesSubdomains</key> <true/>

<key>NSThirdPartyExceptionRequiresForwardSecrecy</key> <false/>

</dict>

</dict>

</dict>

Plist update
05:03

Facebook Login bug fix
02:32

Login with Facebook
03:42

Offline functionality fix
06:28

Download Avatar image for recent cell
02:17

Update Backendless SDK
04:44

Update Current User in All files
12:36

Test Run After current user update
02:36

Finish Updating Current user
01:10
+
Push Notifications
15 Lectures 01:24:45
Push Notifications Setup
04:29

Push Notification Registration
06:00

Finish registering for Push Notifications
08:16

Test Run Push notifications on Device
02:44

Test if the device receives push notifications
02:22

Register user functions
09:38

Register deviceId when logging in
03:58

Test run saving device id
04:30

Remove device id from the user after logout
02:28

Logout user from push notifications
04:35

Send Push notifications part 1
10:52

Send Push notifications part 2
13:32

Final test run
01:29

Icon setup
06:00

The application can be foundo on https://github.com/DavidKababyan/QChat

Firebase security warning fix
03:52
+
Extra Content
4 Lectures 32:01

https://github.com/DavidKababyan/QChat

Update to New firebase part1
06:47

Update to New firebase part 2
16:33

Update to New firebase part 3
05:23

Update to New firebase part 4
03:18
About the Instructor
David Kababyan
4.7 Average rating
163 Reviews
1,893 Students
4 Courses
Multimedia Developer

I have graduated from university in 2012 with BA in Multimedia. Since then I have taken various other courses for programming in PHP, Objective-C, Swift. I really love programming, its my passion.

I have been developing for iOS for more then  2 years now. I have worked on various other multimedia projects like movie shooting and editing, 3D modeling and animations, flash animations and website design and development.

I have taken some courses on Udemy and really liked the environment here so I decided to create my own courses and teach others to the things I have learned.