강의

멘토링

커뮤니티

BEST
Programming

/

Mobile Application Development

Phần 2: Bản sao Instagram iOS dành cho người mới bắt đầu-trung cấp (SwiftUI, MVVM, Firebase, 2024)

Học bằng cách theo dõi ứng dụng Instagram Bài giảng SwiftUI thực tế

(5.0) 19 đánh giá

205 học viên

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

Đánh giá từ những học viên đầu tiên

Bạn sẽ nhận được điều này sau khi học.

  • MVVM

  • SwiftUI

  • căn cứ hỏa lực

  • Instagram

Xin chào, tôi là agmma, một nhà phát triển iOS đang làm việc

Bắt đầu học lập trình ở tuổi 31 sau khi đang làm công việc khác, hiện tại đang chăm chỉ phát triển iOS tại một công ty con thuộc tập đoàn NAVER-Kakao-LINE-Coupang

  • Đầu năm 2020 (31 tuổi) bắt đầu học lập trình tại bootcamp

  • Cuối năm 2021 (33 tuổi) được tuyển dụng làm iOS developer tại một công ty con thuộc tập đoàn NAVER/Kakao/LINE/Coupang

  • Hiện tại đang làm việc tại cùng một công ty đến năm 2025


Là người không chuyên ngành và bắt đầu học lập trình ở tuổi 30 - một độ tuổi khá muộn, tôi hiểu sâu sắc hơn ai hết sự bối rối và khó khăn của những ai đang chuẩn bị tìm việc. Đồng thời, tôi cũng rất thấu hiểu những nỗ lực của các bạn đang dành thời gian quý báu của mình để chuẩn bị chuyển việc nhằm phát triển bản thân một cách bền vững.

Trong 2 năm hoàn toàn không có thu nhập, chỉ chạy theo ước mơ trở thành developer, vì vậy tôi muốn cung cấp các khóa học chất lượng cao với giá cả hợp lý cho những người đang đi trên con đường tương tự.

Mặc dù chưa hoàn thành tất cả chương trình giảng dạy, nhưng khi tất cả các bài giảng mà tôi đã lên kế hoạch được công bố, nếu bạn kiên trì theo dõi các bài giảng của tôi, bạn sẽ có thể trang bị đầy đủ kiến thức cần thiết cho một lập trình viên iOS có 1-2 năm kinh nghiệm, tôi sẽ tạo ra với tinh thần trách nhiệm.

Bài gi강 Instgram Clone đã ra mắt!!!!

Sau bài giảng trước, nhiều bạn đã chờ đợi MVVM, Firebase được sử dụng trong

Cuối cùng tôi đã phát hành khóa học Instagram Clone.

Áp dụng cấu trúc MVVM cho tất cả mã code

Mô hình MVVM ra đời như thế nào, tại sao sử dụng, và cần chú ý những phần nào khi sử dụng, v.v.

Tìm hiểu cách sử dụng chi tiết về mẫu MVVM và tiến hành lập trình theo phương thức đó.

(↓↓↓Chụp màn hình Keynote được sử dụng trong bài học↓↓↓)


Áp dụng Firebase cho tất cả các tính năng

Chúng ta sẽ cùng tạo và sử dụng máy chủ Firebase.

(Firebase là một máy chủ rất dễ sử dụng được cung cấp bởi Google.)

Thông tin bài đăng được tải lên trên Instagram, ảnh, thông tin người dùng, v.v. có thể được lưu trữ trong Firebase này và truy xuất từ nhiều thiết bị khác nhau.


🤔 "Dù sao thì AI cũng sẽ làm hết việc phát triển rồi, liệu có cần những kiến thức như thế này không?"

📱 "Ứng dụng có thể được tạo bằng Vibe Coding, nhưng không biết những thứ như thế này cũng không sao phải không?"


Vâng, đúng vậy. Tuy nhiên điều này chỉ có thể thực hiện được khi AI hoạt động 100% hoàn hảo theo đúng ý muốn của con người.

Tuy nhiên, việc AI hoạt động hoàn hảo theo ý muốn của con người hiện tại là không thể.

Trên thực tế khi phát triển ứng dụng, dù AI có thể viết code thay bạn, bạn vẫn sẽ chắc chắn gặp phải những tình huống mà AI không thể giải quyết được.
Nếu trước đây bạn phải đối mặt với những tình huống như vậy 10 lần, 100 lần, thì giờ đây chỉ còn giảm xuống khoảng 1-2 lần thôi.

Và ngay trong 1~2 khoảnh khắc đó, cuối cùng sẽ đến lúc bạn phải trực tiếp kiểm tra và sửa đổi code. Lúc đó điều cần thiết chính là kiến thức lập trình.


Tóm lại:

  1. Dù AI có thể làm phần lớn công việc lập trình, nhất định sẽ có những tình huống mà AI không thể giải quyết được

  2. Lúc đó, chỉ có những người có kiến thức phát triển mới có thể giải quyết vấn đề

🚀 Giảm giá combo 1) Chinh phục hoàn toàn SwiftUI! Tạo ứng dụng iOS thực tế 🎉

Sự kiện giảm giá đặc biệt chỉ diễn ra trong thời gian ngắn ✨
Gặp gỡ 3 khóa học phổ biến với mức giá ưu đãi chưa từng có!

💡 Lý do bạn nên chọn gói này
✅ Tổng hợp từ cơ bản SwiftUI đến phát triển ứng dụng thực tế trong một lần
✅ Ưu đãi gói hợp lý hơn nhiều so với mua lẻ
✅ Kinh nghiệm thực tế có thể áp dụng ngay vào phát triển iOS thực tế

📚 Cấu trúc (3 bài giảng)

  1. 🧩 Part0: Học Swift6 cơ bản qua việc giải bài tập (miễn phí)

  2. 🌱 Part1: iOS thực sự dành cho người mới bắt đầu (SwiftUI·SwiftData, 2024) — ₩77,000

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

📌 Giá gốc: 176,000원
🔥 Ưu đãi sự kiện: -35,200원 (-20%)
💰 Giá đặc biệt có hạn: 140,800원 (80%)

👉 🎁 Nhận coupon giảm giá - Giảm giá combo 1) Chinh phục hoàn toàn SwiftUI! Tạo ứng dụng iOS thực tế


🚀 Giảm giá combo 2) Từ SwiftUI nâng cao đến thực chiến! + Làm chủ Combine 🎉

5 khóa học phổ biến được gộp lại để hoàn thành năng lực chuyên sâu một lần! (Bao gồm 3 khóa học của bộ 1)

💡 Lý do bạn nên chọn gói này
✅ Bộ 1 (Cơ bản→Thực chiến) bao gồm toàn bộ nội dung + mở rộng khái niệm nâng cao
✅ Hoàn thiện quản lý trạng thái/luồng dữ liệu với Property Wrapper
✅ Nắm vững mô hình bất đồng bộ·phản ứng với Combine → Tối đa hóa khả năng mở rộng trong thực tế

📚 Cấu trúc (5 bài giảng)

  1. 🧩 Part0: Học Swift6 cơ bản qua việc giải bài tập (miễn phí)

  2. 🌱 Part1: iOS thực sự dành cho người mới bắt đầu (SwiftUI·SwiftData, 2024) — ₩77,000

  3. 📸 Phần 2: Bản sao Instagram (SwiftUI·MVVM·Firebase, 2024) — ₩99,000

  4. 🔗 Property Wrapper của SwiftUI(@State, @Binding, …) — ₩11,000

  5. ⚡️ Combine – Lập trình Reactive trên iOS (2025)₩77,000

📌 Giá gốc: ₩264,000
🔥 Ưu đãi sự kiện: -₩79,200 (-30%)
💰 Giá đặc biệt có hạn: ₩184,800

👉 🎁 Nhận coupon giảm giá - Giảm giá combo2) Từ SwiftUI nâng cao đến thực chiến + Combine master


⚡️ Chú ý!
- Sau khi truy cập link, hãy nhớ nhận coupon và mua khóa học
- Giảm giá có thể kết thúc bất cứ lúc nào mà không báo trước.

Ví dụ chức năng Instagram Clone

(Tất cả các tính năng được chụp màn hình bên dưới sẽ được triển khai trong khóa học.)

1. Triển khai chức năng đăng ký thành viên


Nhập Email, Password, name, username để đăng ký thông tin thành viên đó lên máy chủ Firebase.

2. Triển khai tính năng đăng nhập


Bạn có thể đăng nhập bằng thông tin tài khoản thông qua Email và password đã đăng ký thành viên.

3. Triển khai tính năng hồ sơ, chỉnh sửa hồ sơ


Bạn có thể chỉnh sửa thông tin thành viên của tài khoản hiện đang đăng nhập.

4. Triển khai tính năng tải lên bài viết


Bạn có thể tải lên bài đăng, đây là tính năng chính của Instagram.

Khi tải lên bài đăng, bạn có thể xem bài đăng trong Feed View (tab 1) và Profile View (tab 5).

Ngoài ra, số lượng bài đăng của người dùng ở tab thứ 5 cũng sẽ tăng lên.

5. Triển khai tab tìm kiếm


Trong tab tìm kiếm, bạn có thể tìm kiếm những người dùng khác đã đăng ký thành viên.

6. Triển khai tính năng theo dõi


Bạn có thể theo dõi các tài khoản khác.

Khi theo dõi, số lượng người theo dõi của tài khoản mục tiêu và số lượng đang theo dõi của tài khoản hiện tại sẽ tăng lên 1.

7. Triển khai tính năng thích


Chức năng thích cũng được triển khai.

Bạn có thể nhấp vào nút trái tim của bài đăng để thể hiện sự yêu thích.

Bạn cũng có thể kiểm tra tổng số lượt thích tích lũy của bài đăng đó.

8. Triển khai tính năng bình luận


Tạo trang bình luận để có thể xem tất cả các bình luận đã được để lại trên bài viết đó.

Ngoài ra, hiện tại cũng có thể đăng ký bình luận mới của người dùng.

9. Tất cả các tính năng được thực hiện thông qua giao tiếp với máy chủ Firebase.


Tất cả các tính năng được hiển thị trong gif ở trên đều được triển khai thông qua việc giao tiếp với máy chủ Google Firebase.

Tất cả dữ liệu đã thay đổi trên thiết bị iPhone sẽ được gửi đến Google Firebase, và các thay đổi sẽ được tải lại trên thiết bị iPhone. (↓↓↓ Hình ảnh giao tiếp với Firebase ↓↓↓)

Hình ảnh thông tin được tạo trên điện thoại được phản ánh lên máy chủ

Hình ảnh cho thấy bài đăng và bình luận được đăng từ điện thoại A có thể được xem từ điện thoại B

Chúng ta sẽ học những thứ như thế này

#Ngữ pháp Swift trung cấp

Tiếp theo sau cú pháp Swift cơ bản, chúng ta sẽ học về các cú pháp Swift đa dạng giúp hiểu và sử dụng được những cấu trúc phức tạp hơn.

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

  • Xử lý lỗi: try, try?, try!, do-catch

  • Async-Await: Task, async, await, async-let(thực thi đồng thời)

  • extension

  • enum

  • hàm static, biến static

  • switch-case

  • ...

#Các tính năng đa dạng của SwiftUI

Chúng ta sẽ học các tính năng khác nhau của framework SwiftUI, chủ đề cốt lõi của khóa học.

Tôi đã cố gắng tối đa để đưa vào khóa học những tính năng mà các bạn học viên có thể cần khi tạo ra một ứng dụng mới.

  • NavigationStack, NavigationLink : Chuyển đổi màn hình

  • LazyVStack(LazyHStack): Chế độ xem danh sách 1 cột

  • LazyVGrid(LazyHStack), GridItem : chế độ xem danh sách n cột

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

  • .refreshable: kéo để làm mới

  • .task, .onAppear, onChange: Phát hiện thay đổi màn hình

  • .sheet: cửa sổ modal

  • .searchable(thanh tìm kiếm)

  • List vs LazyVStack vs ForEach so sánh sự khác biệt

  • scaledToFit, scaledToFit, aspectRatio: So sánh các phương thức điền ảnh

  • @State, @Binding, @Bindable, @Environment: các property wrapper cho data flow

  • PhotosPicker: Chọn ảnh từ hình ảnh đã lưu trong điện thoại


  • ...

#Sử dụng thư viện bên ngoài

Thêm mã code mà người khác đã viết sẵn vào dự án để triển khai các tính năng đa dạng trong dự án.

Ngoài ra, để hiểu chính xác về bất đồng bộ và caching

Kingfisher vs AsyncImage vs phương pháp đồng bộ để tải hình ảnh

Chúng ta sẽ thực hiện từng cách trong 3 cách này để so sánh.

  • KingFisher: Thư viện bên ngoài để tải xuống và lưu trữ hình ảnh một cách bất đồng bộ

  • Firebase, FireStore, FirebaseAuth: Thêm máy chủ bên ngoài vào dự án để lưu trữ các dữ liệu đa dạng bên ngoài (thông tin bài đăng, thông tin tài khoản, thông tin hình ảnh).

Mã ví dụ được chia theo từng bài giảng

Không chỉ cung cấp mã hoàn thành cuối cùng

Chúng tôi cung cấp mã code bài giảng được chia nhỏ cho từng bài học.

Bạn có thể dễ dàng tìm thấy những phần đã thay đổi trong code

(↓↓↓Ảnh chụp mã code ví dụ thực tế↓↓↓)


Bài giảng cơ bản

Tôi khuyến nghị bạn nên nghe các bài giảng dưới đây trước khi nghe bài giảng hiện tại.

Nếu bạn đã có kiến thức cơ bản về Swift và SwiftUI thì có thể học khóa học này ngay, nhưng có thể sẽ có những phần khó hiểu.

(Nếu bạn chỉ định nghe khóa học này, vui lòng kiểm tra mục lục của khóa học dưới đây để xem bạn đã nắm vững các khái niệm Swift, SwiftUI được giải thích trong khóa học chưa.)

Học iOS thực sự cho người mới bắt đầu (SwiftUI, SwiftData, 2024)


Tôi đã nỗ lực tạo ra những bài giảng dễ hiểu.


Tôi cũng đã từng là người mới bắt đầu, và đã có những thời kỳ khó khăn mỗi khi học những khái niệm khó hiểu.

Tôi đã cố gắng hết sức để không bỏ sót bất kỳ khái niệm nào trong bài giảng bằng cách hồi tưởng lại những ký ức thời đó.

Dù khó khăn nhưng tôi đã cố gắng hết sức để giải thích tất cả các đoạn code xuất hiện trong bài giảng.

Mã code copy-paste được giảm thiểu tối đa, và tôi sẽ giải thích bằng cách cùng gõ code với các bạn học viên để dễ hiểu hơn.


Tôi rất biết ơn vì các bạn đã hiểu rất nhiều về phần này trong bài giảng trước.

Trong bài giảng này, tôi cũng đã cố gắng để có thể trở thành người dẫn đường cho việc học SwiftUI của các bạn.

(↓↓Đánh giá khóa học iOS dành cho người mới bắt đầu - series trước↓↓)



Tôi đã dành tâm huyết để giải thích đầy đủ tất cả các khái niệm xuất hiện trong bài học mà không bỏ sót.

📚 Trong bài giảng của tôi có một nguyên tắc quan trọng.
👉 Tất cả các khái niệm xuất hiện trong lớp học đều sẽ được giải thích rõ ràng.


Khi tôi đang chuẩn bị trở thành lập trình viên, trong các bài giảng thường có những trường hợp bỏ qua việc giải thích các khái niệm quan trọng với câu nói "Phần này tôi sẽ giải thích ở phía sau". Nhưng khi đến phần sau thì lại không được giải thích đầy đủ, và nếu không hiểu khái niệm đó thì rất khó hiểu nội dung tiếp theo, tôi nhớ cảm giác thực sự bực bội lúc đó. 😥

Vì vậy, trong khóa học của tôi, tôi đã rất nỗ lực để các bạn không cảm thấy bức bối như vậy.

  • Khi có khái niệm mới xuất hiện trong bài giảng, tôi sẽ cố gắng giải thích ngay tại chỗ.

  • Nếu có phần nào khó hiểu ngay lập tức do thiếu kiến thức nền tảng, tôi sẽ giúp bạn nắm bắt được cảm giác trước tiên bằng cách đưa ra những ví dụ dễ hiểu hoặc phép so sánh.

  • Và sau đó, sau khi đã học đủ kiến thức nền tảng cần thiết trong các bài giảng tiếp theo, tôi sẽ quay lại khái niệm đó và giải thích lại cho các bạn.

Cuối cùng, các bạn sẽ không cảm thấy bực bội khi theo dõi bài học với suy nghĩ "Hả? Cái này bảo là sẽ giải thích sau mà lại bỏ qua thế?", mà có thể từng bước một, và chắc chắn hiểu được các khái niệm. ✨

💡 Một lần mua, sở hữu trọn đời!


Từ góc độ của một người học, tôi thường không mua những khóa học không thể sở hữu vĩnh viễn.
Vì vậy, khóa học của tôi cũng được chuẩn bị để các bạn có thể xem lại bất cứ lúc nào mà không có giới hạn thời gian học.


👨‍💻 Những ai đã từng lập trình sẽ hiểu điều này.
Không thể nào học hỏi hoàn hảo tất cả các khái niệm chỉ qua một lần học.
Một số khái niệm có thể ngay lập tức trở thành của bạn, nhưng một số khái niệm khác cần phải được áp dụng trực tiếp vào dự án thực tế của bạn thì mới có thể hiểu được hoàn toàn.


⏳ Nhưng thực tế là không thể áp dụng tất cả các khái niệm ngay lập tức.
Vì vậy, khóa học này được cung cấp theo phương thức sở hữu trọn đời, để bạn có thể quay lại học tập bất cứ khi nào cần thiết.

👉 Ngay cả những phần khó hiểu bây giờ, khi gặp lại trong dự án sau này, bạn có thể mở lại và biến thành kiến thức của riêng mình.
Tức là, chỉ cần mua một lần là có tài liệu học tập vững chắc suốt đời. 🚀

💸 Bạn có thể hoàn tiền bất cứ lúc nào trong vòng 7 ngày sau khi bắt đầu học.


Hướng dẫn hoàn tiền

Tôi đã chuẩn bị khóa học để các học viên có thể hài lòng, nhưng nếu khóa học không vừa ý thì bạn có thể yên tâm đăng ký hoàn tiền. 🙂

⚠️ Tuy nhiên, trong những trường hợp sau đây có thể khó hoàn tiền:

  • Trong trường hợp đã tải xuống mã ví dụ

  • Sau khi đăng ký khóa học vượt quá 7 ngày

  • Khi tiến độ học tập của khóa học vượt quá 7%

👉 Do đó, tôi khuyến nghị bạn nên học các bài giảng đầu tiên mà không tải xuống mã ví dụ trước.


🔗 Xem chính sách hoàn tiền chính xác

Q. Có giới hạn thời gian học không?

A. Không, chỉ cần mua một lần là có thể học suốt đời.

Không có bất kỳ giới hạn thời gian học nào. Tất cả các khóa học của tôi đều có thời hạn học tập không giới hạn để bạn có thể ôn tập lại bất cứ lúc nào.


Q. Có tốn phí khi tạo máy chủ Firebase không?

A. Không, tất cả các tính năng tôi sử dụng trong khóa học đều miễn phí.


Q. Người mới bắt đầu có thể dễ dàng nghe được không?

A. Đối với những người mới bắt đầu học lập trình thì có thể sẽ khó khăn. Tuy nhiên, nếu bạn học khóa học Part1: 진짜 왕초보 iOS 배우기(SwiftUI, SwiftData, 2024) trước thì khóa học này đã được thiết kế để bạn có thể hiểu đầy đủ.

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Học mã SwiftUI trong thực tế

  • Bất cứ ai muốn học MVVM

  • Bất kỳ ai muốn tạo liên lạc với máy chủ của riêng mình với Firebase

Cần biết trước khi bắt đầu?

  • Bài giảng tiên quyết: Học iOS cho người mới bắt đầu thực sự (SwiftUI)

Xin chào
Đây là

1,632

Học viên

191

Đánh giá

151

Trả lời

5.0

Xếp hạng

6

Các khóa học

안녕하세요 😀

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

iOS 개발자 애구마입니다.

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

 

 agmma5000@gmail.com 

Chương trình giảng dạy

Tất cả

79 bài giảng ∙ (10giờ 20phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

19 đánh giá

5.0

19 đánh giá

  • cys020628님의 프로필 이미지
    cys020628

    Đánh giá 2

    Đánh giá trung bình 5.0

    5

    97% đã tham gia

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

    • 밤낮 코딩 - 애구마
      Giảng viên

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

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

    Đánh giá 2

    Đánh giá trung bình 5.0

    5

    30% đã tham gia

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

      Đánh giá 2

      Đánh giá trung bình 5.0

      5

      30% đã tham gia

      • cooood님의 프로필 이미지
        cooood

        Đánh giá 6

        Đánh giá trung bình 5.0

        5

        30% đã tham gia

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

          Đánh giá 1

          Đánh giá trung bình 5.0

          5

          100% đã tham gia

          2.090.612 ₫

          Khóa học khác của daynightcoding

          Hãy khám phá các khóa học khác của giảng viên!

          Khóa học tương tự

          Khám phá các khóa học khác trong cùng lĩnh vực!