인프런 영문 브랜드 로고
인프런 영문 브랜드 로고
Programming

/

Mobile Application Development

Part 2: Intermediate iOS Instagram Clone (SwiftUI, MVVM, Firebase, 2024)

Learn by following the Instagram app Practical SwiftUI lecture

(5.0) 9 reviews

118 students

iOS
SwiftUI
MVVM
Firebase
Thumbnail

This course is prepared for Basic Learners.

What you will learn!

  • MVVM

  • SwiftUI

  • Firebase

  • Instagram

Instgram Clone lecture released!!!!

MVVM, Firebase, which many people have been waiting for since the last lecture

We've finally released the Instagram Clone course.

Apply MVVM structure to all code

How the MVVM pattern was born, why it is used, and what parts should be taken care of when using it.

Learn the ins and outs of the MVVM pattern and start coding that way.

(↓↓↓Keynote screen capture used in class↓↓↓)


Apply Firebase to all features

Create and use a Firebase server together.

(Firebase refers to a very easy server provided by Google.)

You can save post information, photos, user information, etc. uploaded from Instagram to Firebase and retrieve them from other devices.


Instagram Clone Feature Example

(All features captured below are implemented in the lecture.)

1. Implementation of membership registration function


Enter your email, password, name, and username to register your membership information to the Firebase server.

2. Implementing login function


You can log in using the email and password information you registered with.

3. Implement profile and profile editing functions


You can edit the membership information of the currently logged in account.

4. Implementing post upload function


You can upload posts, which is the main function of Instagram.

When you upload a post, you can check it in the feed view (tab 1) and profile view (tab 5).

Additionally, the count of the number of user posts in tab 5 will also increase.

5. Implementing the search tab


You can search for other registered users in the Search tab.

6. Implementing the following function


You can follow other accounts.

Following increases the target account's follower count and the current account's following count by 1.

7. Implementing the Like function


We also implement a like function.

You can like this post by clicking the heart button on the post.

You can also check the accumulated number of likes for that post.

8. Implementing comment function


You can create a comments page to see all comments left on that post.

Additionally, current users can also register new comments.

9. All functions are performed through communication with the Firebase server.


All the features shown in the gif above were implemented through communication with Google Firebase servers.

All data changed on the iPhone device is sent to Google Firebase, and the modified data is reloaded on the iPhone device. (↓↓↓ Communicating with Firebase ↓↓↓)

Information written on the phone is reflected on the server

You can check posts and comments uploaded from phone A on phone B.

Learn these things

#Swift intermediate grammar

Following the basic Swift grammar, you will learn about various Swift grammars that allow you to understand and use more complex structures.

  • Optional: if-let, guard-let, optional binding, nil-coalescing

  • Error Handling: try, try?, try!, do-catch

  • Async-Await: Task, async, await, async-let (concurrent execution)

  • extension

  • enum

  • static function, static variable

  • switch-case

  • ...

#Various SwiftUI features

We will study the features of various SwiftUI frameworks, which is the core topic of the lecture.

We have structured the lecture to cover as many of the features that students will need when creating a new app as possible.

  • NavigationStack , NavigationLink : Move the screen

  • LazyVStack (LazyHStack): A one-column list view

  • LazyVGrid (LazyHStack), GridItem: n-column list view

  • TextField , SecureField (when entering password)

  • . refreshable : Drag to refresh

  • . task , . onAppear , onChange : Detect screen changes

  • . sheet : modal window

  • . searchable (search box)

  • Comparison of the differences between List vs LazyVStack vs ForEach

  • scaledToFit , scaledToFit , aspectRatio : Comparison of image filling methods

  • @State , @Binding , @Bindable , @Environment : data flow property wrappers

  • PhotosPicker : Select photos from images stored on your phone


  • ...

#Using external libraries

Implement various functions in your project by adding codes that other people have already written to your project.

Also, to understand asynchrony and caching clearly.

Kingfisher vs AsyncImage vs Synchronous Image Loading

Let's do each of these three and compare them.

  • KingFisher : An external library for asynchronously downloading and caching images.

  • Firebase , FireStore , FirebaseAuth : Add an external server to your project to store various data externally. (Post information, account information, image information)

Example code divided by lecture

Not only do we provide the final finished code,

Split lecture codes are provided for each lecture.

You can easily find the changed parts of the code.

(↓↓↓Actual example code capture↓↓↓)


Player lecture

I recommend that you listen to the lecture below and then listen to the current lecture.

If you have basic knowledge of Swift and SwiftUI, you can go straight to this lecture, but there may be some difficult parts.

(If you are only taking this lecture, please check the table of contents below to see if you are familiar with the Swift and SwiftUI concepts explained in the lecture.)

Learn iOS for real beginners (SwiftUI, SwiftData, 2024)


We have tried to create lectures that are easy to understand.


I too had a beginner's period, and there were times when I had a hard time learning difficult concepts.

I recalled those memories and tried my best to make sure that no concept was omitted from the lecture.

Although it was difficult, I tried my best to explain all the codes that appear in the lecture.

I have minimized the amount of copy-and-paste code and explained it while typing the code along with it so that students can easily understand it.


Thank you so much for learning so much about this part in the last lecture.

In this lecture, I have tried to serve as a guide for your SwiftUI learning.

(↓↓Review of the previous series, iOS lecture for absolute beginners↓↓)



Q. Is there a limit to the course period?

A. No, one purchase provides lifetime learning.

There is no time limit on the length of time you can take a class. All of my lectures are available for an unlimited period of time so you can review them at any time.


Q. Does it cost anything to create a Firebase server?

A. No, all the features I use in my lectures are free.


Q. Is it easy for beginners to listen to?

A. It may be difficult for those who are learning development for the first time. However, if you study Part 1: Real Beginner iOS Learning (SwiftUI, SwiftData, 2024) first, this course is structured so that you can fully understand it.

Recommended for
these people!

Who is this course right for?

  • Learn SwiftUI code from practice

  • For those who want to learn MVVM

  • Anyone who wants to create their own server communication with Firebase

Need to know before starting?

  • Advance lecture: Learning iOS for real beginners (SwiftUI)

Hello
This is

467

Students

42

Reviews

68

Answers

5.0

Rating

4

Courses

안녕하세요 😀

누구나 쉽게 iOS 개발을 할 수 있도록 돕고 싶은

iOS 개발자 애구마입니다.

강의에 필요한 예제 만드는것을 좋아하고, 입문자에게 필요한 강의를 만들기 위해 연구합니다.

 

 

 

Curriculum

All

79 lectures ∙ (10hr 20min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

Not enough reviews.
Become the author of a review that helps everyone!