강의

멘토링

로드맵

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) 19 reviews

192 learners

  • daynightcoding
클론코딩
토이프로젝트
포트폴리오
인스타그램
iOS
SwiftUI
MVVM
Firebase

Reviews from Early Learners

What you will learn!

  • MVVM

  • SwiftUI

  • Firebase

  • Instagram

Hello, I'm agmma, a current iOS developer

I started studying development at 31 while doing other work, and I'm currently working hard on iOS development at a subsidiary of one of the major Korean tech companies (Naver, Kakao, Line).

  • Started studying development at a bootcamp in early 2020 (age 31)

  • Got a job as an entry-level iOS developer at a subsidiary of one of the major Korean tech companies (NAVER, Kakao, LINE, Coupang) at the end of 2021 (age 33)

  • Currently working at the same company as of 2025


As someone who started development at the late age of 30s without a technical background, I deeply empathize with the overwhelming feelings and difficulties that those preparing for employment face more than anyone else. I also understand well the efforts of those who are investing their precious time preparing for career transitions in pursuit of continuous growth.

Having spent two years with no income, running solely toward the dream of becoming a developer, I want to provide high-quality lectures at reasonable prices to those walking a similar path.

Although not all of the curriculum has been completed yet, when all the lectures I have planned are released, if you consistently follow my lectures, you will be able to acquire all the knowledge needed as a 1-2 year iOS developer, and I will create them with that sense of responsibility.

Instgram Clone course released!!!!

Many of you have been waiting since the last lecture for MVVM and Firebase-based

I finally released the Instagram Clone course.

Apply MVVM structure to all code

How the MVVM pattern was born, why we use it, and what aspects we need to be careful about when using it, etc.

Learn detailed usage of the MVVM pattern and proceed with coding using this approach.

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


Apply Firebase to all features

We will create and use a Firebase server together.

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

You can store post information, photos, user information, etc. that you upload on Instagram in this Firebase and retrieve it from various other devices.


🤔 "AI will do all the development anyway, so do we really need this kind of knowledge?"

📱 "Apps can be made with vibe coding, so wouldn't it be okay not to know this stuff?"


Yes, that's correct. However, this is only possible when AI operates 100% perfectly as people want it to.

However, it is currently impossible for AI to operate perfectly as humans desire.

When actually building apps, even if AI writes code for you, you will inevitably encounter situations that cannot be solved by AI alone.
If you used to face these situations 10 or 100 times before, now it's just reduced to about 1-2 times.

And right at that moment or two, you'll eventually face a situation where you need to directly check and modify the code. What you need then is development knowledge.


To summarize:

  1. Even if AI does most of the coding, there will definitely be situations that AI cannot solve

  2. At that moment, the only people who could solve the problem were those with development knowledge

🚀 Bundle Discount 1) Master SwiftUI! Build Real iOS Apps 🎉

Limited-time special discount event
Meet 3 popular courses bundled at an unprecedented benefit price!

💡 Why You Should Choose This Package
✅ Complete coverage from SwiftUI basics to real app development
✅ Much more reasonable package benefits than individual purchases
✅ Practical know-how you can immediately apply to iOS development work

📚 Structure (3 Lectures)

  1. 🧩 Part0: Learning Swift6 for Absolute Beginners Through Problem Solving (Free)

  2. 🌱 Part1: Real Beginner iOS (SwiftUI·SwiftData, 2024) — ₩77,000

  3. 📸 Part2: Instagram Clone (SwiftUI·MVVM·Firebase, 2024) — ₩99,000

📌 Regular Price: 176,000 KRW
🔥 Event Discount: -35,200 KRW (-20%)
💰 Limited Special Price: 140,800 KRW (80%)

👉 🎁 Get Discount Coupon - Bundle Discount 1) Master SwiftUI! Build Real iOS Apps


🚀 Bundle Discount 2) All the way to Advanced SwiftUI! Practical + Combine Master 🎉

Complete advanced skills all at once with 5 popular courses bundled together! (Includes 3 courses from Set 1)

💡 Why you should choose this package
✅ Set 1 (Beginner→Practical) includes all components + advanced concept expansion
✅ Complete organization of state/data flow with Property Wrapper
✅ Master asynchronous·reactive patterns with Combine → maximize practical scalability

📚 Structure (5 Lectures)

  1. 🧩 Part0: Learning Swift6 for Complete Beginners Through Problem Solving (Free)

  2. 🌱 Part1: Real Beginner iOS (SwiftUI·SwiftData, 2024) — ₩77,000

  3. 📸 Part2: Instagram Clone (SwiftUI·MVVM·Firebase, 2024) — ₩99,000

  4. 🔗 SwiftUI Property Wrappers(@State, @Binding, …) — ₩11,000

  5. ⚡️ Combine – iOS Reactive Programming(2025)₩77,000

📌 Regular Price: ₩264,000
🔥 Event Benefit: -₩79,200 (-30%)
💰 Limited Special Price: ₩184,800

👉 🎁 Get Discount Coupon - Set Discount 2) All the way to Advanced SwiftUI! Practical + Combine Master


⚡️ Attention!
- Please make sure to claim your coupon after accessing the link and then purchase the course
- The discount may end without notice.

Instagram Clone Feature Examples

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

1. Implementing User Registration Functionality


Enter Email, Password, name, and username to register the member information to the Firebase server.

2. Implementing Login Functionality


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

3. Profile and Profile Editing Feature Implementation


You can edit the member information of the currently logged-in account.

4. Implementing Post Upload Functionality


You can upload posts, which is Instagram's main feature.

When you upload a post, you can view the post in the Feed view (Tab 1) and Profile view (Tab 5).

Also, the count of user posts in the 5th tab increases.

5. Implementing the Search Tab


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

6. Implementing Following Feature


You can follow other accounts.

When you follow, the target account's follower count and the current account's following count each increase by 1.

7. Implementing the Like Feature


The like feature is also implemented.

You can show your appreciation by clicking the heart button on the post.

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

8. Implementing Comment Features


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

Additionally, new comments from current users can also be registered.

9. All features are implemented through communication with Firebase servers.


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

All data changes on iPhone devices are sent to Google Firebase, and the modified information is reloaded on the iPhone device. (↓↓↓ Communication with Firebase ↓↓↓)

The view of information written on the phone being reflected on the server

The ability to view posts and comments uploaded from Phone A on Phone B

You'll learn things like these

#Swift Intermediate Grammar

Following basic Swift syntax, we'll learn about various Swift grammar structures that allow you to understand and use more complex constructs.

  • 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 various SwiftUI framework features, which are the core topics of the course.

I have structured the course by packing in as many features as possible that you students might need when creating new apps.

  • NavigationStack, NavigationLink: Screen Navigation

  • LazyVStack(LazyHStack): Single-column list view

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

  • [[STRONG_1]]TextField[[/STRONG_1]], [[STRONG_2]]SecureField[[/STRONG_2]](비밀번호 입력시)

  • .refreshable: pull to refresh

  • .[[STRONG_1]]task[[/STRONG_1]], .[[STRONG_2]]onAppear[[/STRONG_2]], [[STRONG_3]]onChange[[/STRONG_3]]: 화면 변화 감지

  • .sheet: modal window

  • .searchable(search box)

  • [[STRONG_1]]List[[/STRONG_1]] vs [[STRONG_2]]LazyVStack[[/STRONG_2]] vs [[STRONG_3]]ForEach[[/STRONG_3]]의 차이 비교

  • scaledToFit, scaledToFit, aspectRatio: Comparison of Image Filling Methods

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

  • PhotosPicker: Selecting photos from images saved on your phone


  • ...

#Using External Libraries

Add code that others have already written to your project to implement various features in the project.

Also, to accurately understand asynchronous processing and caching

Kingfisher vs AsyncImage vs Synchronous Image Loading

We will perform each of these 3 methods and compare them.

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

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

Example code divided by lecture

Not just providing the final completed code

We provide segmented lecture code for each individual lesson.

You can easily find the changed parts of the code

(↓↓↓Actual Example Code Capture↓↓↓)


Prerequisite Course

I recommend listening to the lectures below and then taking the current lecture.

If you have basic knowledge of Swift and SwiftUI, you can take this course right away, but there may be some challenging parts.

(If you plan to take only this course, please check the syllabus of the course below to verify that you are familiar with the Swift and SwiftUI concepts explained in the lectures.)

Learn iOS for Real Beginners (SwiftUI, SwiftData, 2024)


I worked hard to create lectures that are easy to understand.


I also had my beginner days, and there were difficult times whenever I was learning challenging concepts.

I tried my best to ensure no concepts were omitted from the lecture by recalling the memories from that time.

Even though it was difficult, I tried my best to explain all the code that appears in the lectures.

I minimized copy-pasting code and explain while typing the code together to make it easier for students to understand.


I was so grateful that you understood this part so well in the last lecture too.

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

(↓↓Reviews of the previous series, Beginner iOS Course↓↓)



I put my heart and soul into ensuring that every concept that appears in the class is explained without exception.

📚 There is an important principle in my lectures.
👉 Every concept that appears in class will definitely be explained.


When I was preparing to become a developer, there were many cases where important concepts were skipped in lectures with the phrase "I'll explain this part later". But when I actually got to the later parts, they often weren't properly covered, and without knowing those concepts, I remember feeling really frustrated because it was hard to understand the following content. 😥

So in my lectures, I put in a tremendous amount of effort to ensure you don't experience that kind of frustration.

  • When new concepts appear during the lecture, I will explain them immediately on the spot whenever possible.

  • If there are parts that are difficult to understand right now due to lack of prerequisite knowledge, I'll help you get a feel for it first by providing analogies or simple examples.

  • And after sufficiently learning the necessary background knowledge in later lectures, we will return to that concept and explain it again.

In the end, as you follow along with the lessons, you won't feel the frustration of "Huh? They said they'd explain this later but just skipped over it?" Instead, you'll be able to understand concepts step by step and thoroughly. ✨

💡 One purchase, yours for life!


As a learner myself, I rarely purchase courses that aren't lifetime access.
That's why I've prepared my courses so that you can revisit them anytime without any enrollment period restrictions.


👨‍💻 Those who have tried development will know this.
It's impossible to perfectly master all concepts with just one course.
Some concepts become yours right away, but other concepts are only fully understood when you actually apply them directly in your own projects.


⏳ But it's practically impossible to apply all concepts right away.
That's why this course is provided as a lifetime collection, so you can come back and learn whenever you need it.

👉 Even parts that are difficult to understand now can be revisited later when you encounter them in projects, turning them into your own knowledge.
In other words, with one purchase, you get a reliable lifetime learning resource that's uniquely yours. 🚀

💸 Refunds are available anytime within 7 days of starting the course.


Refund Information

I have prepared the lectures to ensure student satisfaction, but if the lectures don't meet your expectations, you can apply for a refund without worry. 🙂

⚠️ However, refunds may be difficult in the following cases:

  • If you have downloaded the example code

  • After course registration, if more than 7 days have passed

  • When the course progress exceeds 7%

👉 Therefore, for the initial lectures, we recommend that you take the course first without downloading the example code.


🔗 Check the exact refund policy

Q. Is there a limit on the course enrollment period?

A. No, you can learn for a lifetime with a single purchase.

There are no restrictions on the course duration. All of my lectures have unlimited access so you can review them anytime.


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

A. No, all the features used in my lectures are completely free.


Q. Can beginners easily follow along?

A. It may be difficult for those who are learning development for the first time. However, if you first study the Part1: Real Beginner iOS Learning (SwiftUI, SwiftData, 2024) course, 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

997

Learners

100

Reviews

88

Answers

5.0

Rating

5

Courses

안녕하세요 😀

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

iOS 개발자 애구마입니다.

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

 

 agmma5000@gmail.com 

Curriculum

All

79 lectures ∙ (10hr 20min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

19 reviews

5.0

19 reviews

  • cys020628님의 프로필 이미지
    cys020628

    Reviews 2

    Average Rating 5.0

    5

    97% enrolled

    파트 1부터 천천히 공부하는걸 추천 드립니다. 완강이 되도 버전이 틀려서 에러가 나면 직접 하나하나 강의 수정하시면서 듣는데 문제 없게 해주신 점이 좋았습니다. 하면서도 중요한 부분이나 필요한 부분 하나라도 더 알려주시려고 한 점이 너무 좋았으며 질문같은것도 올리면 빠르게 답변해주시는 부분도 좋았습니다 하나하나 공부하며 천천히 공부하실 분들에게 너무 추천드립니다

    • 밤낮 코딩 - 애구마
      Instructor

      친절한 수강평 감사드립니다! cys님께서 꼭 취업까지 성공하시길 바라겠습니다. 저도 취업에 필요한 더 좋은 강의 많이 만들어가도록 할게요 화이팅입니다!

  • Mark Kim님의 프로필 이미지
    Mark Kim

    Reviews 2

    Average Rating 5.0

    5

    30% enrolled

    • 이상현님의 프로필 이미지
      이상현

      Reviews 2

      Average Rating 5.0

      5

      30% enrolled

      • cooood님의 프로필 이미지
        cooood

        Reviews 6

        Average Rating 5.0

        5

        30% enrolled

        • 장효석님의 프로필 이미지
          장효석

          Reviews 1

          Average Rating 5.0

          5

          100% enrolled

          $77.00

          daynightcoding's other courses

          Check out other courses by the instructor!

          Similar courses

          Explore other courses in the same field!