강의

멘토링

커뮤니티

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á

206 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 làm công việc khác, hiện tại đang nhiệt tình phát triển iOS tại một công ty con thuộc tập đoàn công nghệ hàng đầu Hàn Quốc

  • Đầ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 vị trí nhân viên mới tại một công ty con thuộc tập đoàn Naver/Kakao/Line/Coupang

  • Hiện đang làm việc tại cùng một công ty cho đế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, tôi thấu hiểu sâu sắc hơn ai hết sự bế tắc và khó khăn của những người đang chuẩn bị tìm việc. Đồng thời, tôi cũng hiểu rõ những nỗ lực của những người đang chuẩn bị chuyển việc, dành thời gian quý báu của mình để phát triển bản thân một cách bền vững.

Trong suốt 2 năm không có thu nhập và chỉ chạy theo ước mơ trở thành lập trình viên, tôi muốn cung cấp khóa học chất lượng cao với giá 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 toàn bộ chương trình giảng dạy, nhưng khi tất cả các khóa học mà tôi đã lên kế hoạch được công bố, nếu bạn kiên trì theo dõi các khóa học của tôi, tôi sẽ đảm bảo rằng bạn 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 với tinh thần trách nhiệm cao nhất.

Khóa học Instagram Clone đã ra mắt!!!!

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

Cuối cùng tôi đã ra mắt khóa học Instagram Clone.

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

Mẫu 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.

Học cách sử dụng chi tiết về mẫu thiết kế MVVM và tiến hành lập trình theo phương pháp đó.

(↓↓↓Ảnh chụp màn hình Keynote được sử dụng trong lớp 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 do Google cung cấp.)

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


🤔 "Dù sao AI cũng sẽ làm hết mọi thứ về phát triển, liệu có cần kiến thức này không?"

📱 "Ứng dụng có thể được tạo bằng vibe coding, vậy không biết những thứ này cũng không sao chứ?"


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 đúng ý 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 chắc chắn sẽ 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 gặp phải những tình huống như vậy 10, 100 lần thì giờ đây chỉ còn giảm xuống khoảng 1~2 lần mà thôi.

Và ngay tại 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 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. Ngay cả khi AI làm phần lớn công việc lập trình, chắc chắn sẽ có những tình huống mà AI không thể giải quyết

  2. Vào thời điểm đó, người duy nhất có thể giải quyết vấn đề là những người có kiến thức lập trình

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

단기간만 진행되는 [[STRONG_1]]특별 할인 이벤트[[/STRONG_1]] ✨[[BR]]3개의 인기 강의를 묶어 [[STRONG_2]]역대급 혜택가[[/STRONG_2]]로 만나보세요!

💡 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 khóa học
✅ Ưu đãi gói hợp lý hơn nhiều so với mua lẻ từng khóa
✅ Kinh nghiệm thực chiến 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 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 won
🔥 Ưu đãi sự kiện: -35.200 won (-20%)
💰 Giá đặc biệt có hạn: 140.800 won (80%)

👉 🎁 Nhận mã giảm giá - Giảm giá combo 1) Làm chủ hoàn toàn SwiftUI! Tạo ứng dụng iOS thực chiến


🚀 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 trong 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 (Nhập mô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 luồng trạng thái/dữ liệu với Property Wrapper
✅ Nắm vững pattern 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 giải bài tập (miễn phí)

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

  3. 📸 Part2: Clone 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)₩99,000

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

👉 🎁 Nhận phiếu giảm giá - Giảm giá combo 2) Từ SwiftUI nâng cao đến thực chiến + Làm chủ Combine


⚡️ Chú ý!
- Sau khi truy cập link, nhất định phải nhận coupon trước khi mua khóa học
- Chương trình 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ụ về tính 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


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

2. Triển khai chức năng đăng nhập


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

3. Triển khai chức năng hồ sơ và 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 chức năng tải lên bài viết


Bạn có thể đăng tải bài viết, đây là chức 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 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 các người dùng khác đã đăng ký.

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ấn vào nút trái tim của bài viết để thể hiện sự yêu thích.

Bạn cũng có thể xem tổng số lượt thích tích lũy của bài viết đó.

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


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

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

9. Tất cả các chức 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 trình bày trong gif ở trên đều được triển khai thông qua 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 ↓↓↓)

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

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

Bạn sẽ học những điều này

#Ngữ pháp Swift trung cấp

Tiếp theo sau ngữ 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 các 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

Nghiên cứu 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ích hợp tối đa các tính năng mà các bạn học viên có thể cần khi tạo một ứng dụng mới vào khóa học này.

  • NavigationStack, NavigationLink: Di chuyển 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

  • TextField, SecureField (khi nhập mật khẩu)

  • .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 luồng dữ liệu

  • 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 code mà người khác đã viết sẵn vào dự án để triển khai nhiều tính năng khác nhau 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 tải hình ảnh đồng bộ

Chúng ta sẽ thực hiện từng cách trong 3 phương pháp 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ữ nhiều loại dữ liệu khác nhau 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 phân chia theo từng bài giảng

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

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

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

# Dịch từ Tiếng Hàn sang Tiếng Việt (↓↓↓Ảnh chụp mã ví dụ thực tế↓↓↓)


Khóa học tiên quyết

Tôi khuyên bạn nên nghe 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ó một số phần khó.

(Nếu bạn chỉ định học 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 để xác nhận rằng bạn đã nắm vững các khái niệm Swift và SwiftUI được giải thích trong khóa học.)

Học iOS cho người mới bắt đầu hoàn toàn (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à đã trải qua những thời kỳ khó khăn mỗi khi học các khái niệm phức tạp.

Hồi tưởng lại những ký ức thời đó, 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.

Mặc dù khó khăn, 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 khóa học.

Mã code sao chép dán được giảm thiểu tối đa, và giải thích trong khi cùng nhau gõ code để học viên dễ hiểu hơn.


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

Trong khóa học 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 cho người mới bắt đầu - phần trước↓↓)



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

📚 Khóa học của tôi có một nguyên tắc quan trọng.
👉 Mọi khái niệm xuất hiện trong bài học đều đượ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 khóa học thường có trường hợp các khái niệm quan trọng bị bỏ qua kèm theo câu "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ớ lúc đó thực sự rất bức bối. 😥

Vì vậy, trong khóa học của tôi, tôi đã nỗ lực rất nhiều để 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ẽ giải thích ngay lập tức tại chỗ nếu có thể.

  • Nếu bạn thiếu kiến thức nền tảng và khó hiểu ngay lập tức, 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 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 bạn.

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

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


Từ góc độ người học, tôi cũng ít khi mua các khóa học không được sở hữu vĩnh viễn.
Vì vậy, khóa học của tôi cũng được chuẩn bị để 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 bạn đã từng lập trình sẽ biết điều này.
Không thể nắm vững hoàn hảo mọi khái niệm chỉ sau một lần học.
Một số khái niệm có thể trở thành của bạn ngay lập tức, nhưng một số khái niệm khác chỉ có thể được hiểu thấu đáo khi bạn thực sự áp dụng chúng vào dự án của mình.


⏳ Nhưng thực tế là không thể áp dụng ngay tất cả các khái niệm vào thời điểm này.
Vì vậy, khóa học này được cung cấp theo hình thức sở hữu vĩnh viễn, để bạn có thể quay lại học 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 chúng thành kiến thức của riêng mình.
Nói cách khác, 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 kể từ 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 ý bạn thì bạn có thể yên tâm đăng ký hoàn tiền. 🙂

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

  • Nếu bạn đã 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 vượt quá 7%

👉 Do đó, chúng 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ụ.


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

Câu hỏi: Có giới hạn thời gian học không?

A. Không, bạn chỉ cần mua một lần và có thể học mãi mã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 không giới hạn để bạn có thể ôn tập lại bất cứ lúc nào.


Câu hỏi: Có tốn chi phí để 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í.


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

A. Đối với những người mới bắt đầu học lập trình, khóa học này có thể hơi khó. Tuy nhiên, nếu bạn 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,679

Học viên

208

Đánh giá

161

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

    Tôi khuyên bạn nên học từ Phần 1 một cách chậm rãi. Ngay cả khi bạn đã hoàn thành khóa học nhưng vẫn gặp lỗi do phiên bản khác nhau, việc bạn tự mình sửa đổi từng bài giảng để có thể theo học mà không gặp vấn đề gì là một điểm tốt. Trong quá trình học, bạn luôn cố gắng truyền đạt thêm những phần quan trọng hoặc cần thiết, điều đó thật tuyệt vời, và việc bạn trả lời câu hỏi một cách nhanh chóng cũng rất tốt. Tôi thực sự khuyên dùng khóa học này cho những ai muốn học từng bước một cách chậm rãi.

    • daynightcoding
      Giảng viên

      Cảm ơn bạn vì những đánh giá khóa học tử tế! Tôi hy vọng cys sẽ thành công trong việc tìm được việc làm. Tôi cũng sẽ tạo ra nhiều bài giảng hay hơn nữa cần thiết cho việc làm. Cố lên nhé!

  • hansopkim09778님의 프로필 이미지
    hansopkim09778

    Đánh giá 2

    Đánh giá trung bình 5.0

    5

    30% đã tham gia

    • zed님의 프로필 이미지
      zed

      Đánh giá 2

      Đánh giá trung bình 5.0

      5

      30% đã tham gia

      • codingco님의 프로필 이미지
        codingco

        Đánh giá 6

        Đánh giá trung bình 5.0

        5

        30% đã tham gia

        • hae1117377님의 프로필 이미지
          hae1117377

          Đánh giá 1

          Đánh giá trung bình 5.0

          5

          100% đã tham gia

          2.086.329 ₫

          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!