So you want to make an awesome social app such as Instagram, Snap Chat, Path, Airbnb but don't know where to start? This course will teach you how to code a photo sharing app for iOS in only 4 hours.
We will start from a blank project, and then cover the most important topics such as user authentication, database query, Facebook integration for building a scalable social app. By the end of this course, you will be able to create a fully functional app ready to handle millions of users!
If you already know the basics of iOS development (ie. UITableViewController), then you are good to go. Even If you are not familiar with iOS programming yet, you can definitely follow the course as we will show you step-by-step how to put everything together.
Everything in this course will be done completely in Objective-C, something you are already familiar with. We will be making the app with the most up-to-date version of development environment, Xcode 5 and iOS 7.
We divided the course into more than 38 bite-sized video lessons for you to learn at your own pace.
Daniel introduces the concept of mobile backend as a service (mBaaS) providers and their advantages.
In this lesson, we will register as a new Parse developer and add our app to Parse.
We download the Parse framework then add the it to our project. We will also add all the required dependencies.
We test the Parse framework by saving few objects into the cloud.
We learn how to write a basic query to get objects from Parse cloud. Then we display the result with a table view
We learn to use the table view controller called PFQueryTableViewController from Parse to automatically retrieve and display objects from Parse cloud.
We create basic login and sign up controllers and their views. We also connect all the necessary IBActions and IBOutlets.
Learn how to sign up and login new users with Parse
In this video, we sign up as a new Facebook developer and register our app with Facebook.
We learn how to integrate Facebook Login with Parse login. We will be using a login view controller called PFLoginViewController to achieve this.
In this lesson, we implement the necessary login view controller delegate methods for the login to work
We use facebook API to retrieve user information from Facebook and then save the information to Parse
We create a camera view controller and add UIImagePickerViewController for obtaining images from camera or photo library.
We setup photo upload screen in Storyboard where the user can add a title and preview the photo.
We will implement the image picker delegate methods that are responsible for the scenarios when the user has successfully taken a photo and when the user has cancelled taking a photo.
In this lesson, we write the code for wrapping the image data into a PFFile object, a file object provided by Parse, then upload the file to Parse cloud.
In this lesson, we will create the views for section header cell and photo cell inside storyboard
There are a lot of datasource and delegate methods waiting to be implemented. A template file is provided here with all the methods we are going to talk about in the next few lessons.
We are going to implement the section header cell for displaying user profile image, username, image title, and follw button.
We are going to implement the photo cell for displaying large photos from Parse.
Due to the complexity of our app, we can no longer rely on PFQueryTableViewController for automatically retrieving data for us. We need to write a custom query to the photos along with their corresponding user profile information.
Due to the way we display our photos in sections rather than rows, the pagination feature is broken. In this lesson, we will fix this issue.
In order for our users to follow each other, we need to add a new Activity class to store the relationship information among users. In this lesson we will look at what key value pairs we need to store inside Activity class.
We will create a custom follow button, a subclass of UIButton, for follow/unfollow other users.
We will implement the follow button delegate method inside home view controller. We will create queries for adding and removing relationships from the Activity class
The follow button must be updated dynamically to reflect the changes when user follow or unfollow another user. We will write a query to get the current state of the database and update the follow buttons accordingly.
The profile view is very similar to the home view controller we implemented in the previous section. We can reuse the code we wrote for home view controller when building the profile view controller
The biggest addition inside profile view is the user status view. In this lesson, we create several queries for retrieving the user status information from Parse.
The profile screen contains a timeline just like the home screen. However, this timeline will only display the photos from the current user and the people the current user is following. We will write a query to obtain these photos.
We have finished coding all the logic behind the app. In this lesson, we will start to apply the UI design and polish our app. First, we need to import all the icons into our project.
In this lesson, we add fonts, colors and icons to the login screen.
In this lesson, we add fonts, colors and icons to the home screen.
In this lesson, we add fonts, colors and icons to the camera screen.
In this lesson, we add fonts, colors and icons to the profile screen.
In this lesson, we will change the color of the status bar to white and add tab bar icons to the tab bar
Hi, my name is Daniel Xu. Since I got my first computer in elementary school, technology has become a big part of my life and I am very passionate about learning and sharing my knowledge with others.
I started developing mobile apps 3 years ago. Since then, I've worked on mobile app projects with some of the most prominent startups, media companies and banks in Canada. My portfolio ranges from consumer oriented apps such as augmented reality games and social networking, to enterprise level apps such as online banking and construction safety management. I also hold both bachelor and master degree in computer engineering from University of Toronto.
Hope you enjoy my courses and please feel free to leave any comments or feedback.