[Đang cập nhật…]
Pro SwiftUI — From Beginner to Production
Pro SwiftUI là khóa học thực hành được thiết kế để đưa bạn từ người mới bắt đầu với Swift đến khả năng tự xây dựng, hoàn thiện và phát hành một ứng dụng iOS thực tế bằng SwiftUI.
Bạn không cần có kiến thức SwiftUI trước khi bắt đầu. Khóa học bắt đầu từ những kiến thức nền tảng của Swift, sau đó từng bước xây dựng giao diện với SwiftUI, quản lý state, navigation và tương tác người dùng trước khi chuyển sang các kiến thức chuyên sâu hơn.
Trong quá trình học, bạn sẽ từng bước tiếp cận MVVM, Clean Architecture và Dependency Injection, đồng thời hiểu cách tổ chức một project lớn sao cho code dễ bảo trì, mở rộng và kiểm thử.
Nội dung chính
- Swift từ cơ bản đến nâng cao
- SwiftUI và Declarative UI
- Layout, Navigation và State Management
- MVVM Architecture
- Clean Architecture
- Dependency Injection
- REST API & Networking với URLSession
- Authentication, Access Token & Refresh Token
- Keychain & Secure Storage
- Swift Concurrency với async/await
- SwiftData & Local Database
- Offline-first & Data Synchronization
- Search, Filter & Pagination
- Unit Test & UI Test
- Performance & Memory Optimization
- Image & Video
- Push Notification & Deep Link
- In-App Purchase & Subscription
- Tích hợp quảng cáo, Banner, Interstitial và Rewarded Ads
- Localization & Accessibility
Học thông qua một dự án thực tế
Thay vì học các kiến thức một cách rời rạc, bạn sẽ xây dựng và nâng cấp một ứng dụng thực tế xuyên suốt khóa học.
Ứng dụng sẽ bắt đầu từ một project SwiftUI đơn giản, sau đó lần lượt được bổ sung API, authentication, database, offline mode, pagination, notification, quảng cáo và thanh toán.
Bạn cũng sẽ thực hành refactor code và áp dụng Clean Architecture khi ứng dụng trở nên phức tạp hơn.
Hoàn thiện và phát hành ứng dụng
Khóa học không dừng lại ở việc viết code.
Bạn sẽ được hướng dẫn quy trình đưa ứng dụng từ máy tính của developer đến người dùng thực tế:
Build → Test → TestFlight → App Review → Apple App Store
Bao gồm các nội dung như App Store Connect, signing, provisioning, TestFlight, In-App Purchase, App Privacy và quy trình submit ứng dụng lên App Store.
Khóa học dành cho ai?
Khóa học phù hợp với:
- Người mới bắt đầu muốn học iOS Development từ đầu.
- Developer muốn học SwiftUI một cách bài bản.
- Người đã biết SwiftUI nhưng chưa biết MVVM và Clean Architecture.
- Developer muốn xây dựng ứng dụng iOS có khả năng mở rộng và bảo trì.
- Người muốn học quy trình phát triển một ứng dụng từ ý tưởng → code → test → monetization → App Store.
Không chỉ học cách sử dụng SwiftUI — bạn sẽ học cách xây dựng một ứng dụng iOS hoàn chỉnh và đưa nó đến người dùng thực tế.
Thông tin khóa học
- Số bài học 439
- Quiz 0
- Thời lượng 30 weeks
- Cấp độ Mọi cấp độ
- Ngôn ngữ English
- Số lượng học viên 3
- Chứng nhận Không
- Assessments Có
- 26 Sections
- 439 Lessons
- 30 Weeks
- Chương 1 - Làm quen với Swift và Xcode19 ItemsMục tiêu: hiểu môi trường iOS development và viết được chương trình Swift đầu tiên.
- 1.1Bài 1.1. Cài đặt công cụ XCode cho máy Mac
- 1.2Bài 1.2. Swift là gì?
- 1.3Bài 1.3. iOS Development là gì?
- 1.4Bài 1.4. SwiftUI là gì?
- 1.5Bài 1.5. Xcode là gì?
- 1.6Bài 1.6. Chương trình Swift đầu tiên
- 1.7Bài 1.7. Tạo project SwiftUI đầu tiên
- 1.8Bài 1.8. Cấu trúc một SwiftUI project
- 1.9Bài 1.9. @main
- 1.10Bài 1.10. App
- 1.11Bài 1.11. Scene
- 1.12Bài 1.12. ContentView
- 1.13Bài 1.13. Preview trong Xcode
- 1.14Bài 1.14. Simulator
- 1.15Bài 1.15. Build và Run
- 1.16Bài 1.16. Debug cơ bản
- 1.17Bài 1.17. Comment và Code Formatting
- 1.18Bài 1.18. Xcode Shortcuts cơ bản
- 1.19Bài 1.19. Hướng dẫn bật chế độ nhà phát triển cho iOS
- Chương 2 - Tìm hiểu ngôn ngữ lập trình Swift13 ItemsXây nền tảng Swift cần thiết trước khi học SwiftUI.
- 2.1Bài 2.1. Variable & Constant
- 2.2Bài 2.2. Các kiểu dữ liệu trong Swift
- 2.3Bài 2.3. String
- 2.4Bài 2.4. Các kiểu sốsố
- 2.5Bài 2.5. Kiểu Bool
- 2.6Bài 2.6. Type Inference
- 2.7Bài 2.7. Type Annotation
- 2.8Bài 2.8. Operators
- 2.9Bài 2.9. Arithmetic Operators
- 2.10Bài 2.10. Comparison Operators
- 2.11Bài 2.11. Logical Operators
- 2.12Bài 2.12. String Interpolation
- 2.13Bài 2.13. Type Conversion
- Chương 3 - Các cấu trúc điều khiển và tập hợp17 ItemsMục tiêu: Giúp học viên xử lý logic và dữ liệu cơ bản.
- 3.1Bài 3.1. Cấu trúc if
- 3.2Bài 3.2. Cấu trúc if-else
- 3.3Bài 3.3. Cấu trúc else if
- 3.4Bài 3.4. Cấu trúc switch
- 3.5Bài 3.5. Cấu trúc lặp for
- 3.6Bài 3.6. Cấu trúc lặp while
- 3.7Bài 3.7. Cấu trúc lặp repeat while
- 3.8Bài 3.8. Cấu trúc dữ liệu mảng
- 3.9Bài 3.9. Cấu trúc dữ liệu Set
- 3.10Bài 3.10. Cấu trúc dữ liệu Dictionary
- 3.11Bài 3.11. Hàm map
- 3.12Bài 3.12. Hàm filter
- 3.13Bài 3.13. Hàm reduce
- 3.14Bài 3.14. Hàm forEach
- 3.15Bài 3.15. Optional cơ bản
- 3.16Bài 3.16. Optional nâng cao
- 3.17Bài 3.17. Toán tử guard
- Chương 4 - Hàm, struct, enum và protocol17 ItemsMục tiêu: bạn bắt đầu viết code có cấu trúc thay vì một file chứa toàn bộ logic.
- 4.1Bài 4.1. Hàm
- 4.2Bài 4.2. Các tham số của hàm
- 4.3Bài 4.3. Kiểu trả về
- 4.4Bài 4.4. Hàm nhiều tham số
- 4.5Bài 4.5. Các tham số mặc định
- 4.6Bài 4.7. Kiểu struct
- 4.7Bài 4.8. Các thuộc tính
- 4.8Bài 4.9. Các phương thức
- 4.9Bài 4.10. Trình khởi tạo
- 4.10Bài 4.11. Thuộc tính dẫn xuất
- 4.11Bài 4.12. Kiểu enum
- 4.12Bài 4.13. Giá trị thô
- 4.13Bài 4.14. Giá trị liên kết
- 4.14Bài 4.15. Protocol
- 4.15Bài 4.16. Tuân thủ protocol
- 4.16Bài 4.17. Extension
- 4.17Bài 4.18. Access control
- Chương 5 - Switch nâng cao20 ItemsMục tiêu: chuẩn bị nền tảng Swift đủ tốt để bước vào SwiftUI và architecture.
- 5.1Bài 5.1. Kiểu dữ liệu class
- 5.2Bài 5.2. Struct vs class
- 5.3Bài 5.3. Value type vs reference type
- 5.4Bài 5.4. Tính chất kế thừa
- 5.5Bài 5.5. Sự khởi tạo
- 5.6Bài 5.6. Keyword self
- 5.7Bài 5.7. Keyword lazy
- 5.8Bài 5.8. Giám sát thuộc tính
- 5.9Bài 5.9. Closure
- 5.10Bài 5.10. Trailing closure
- 5.11Bài 5.11. Escaping closure
- 5.12Bài 5.12. Hàm bậc cao
- 5.13Bài 5.13. Kiểu generic
- 5.14Bài 5.14. Ràng buộc kiểu
- 5.15Bài 5.15. Codable
- 5.16Bài 5.16. Identifiable
- 5.17Bài 5.17. Equaltable
- 5.18Bài 5.18. Hashtable
- 5.19Bài 5.19. Xử lý lỗi
- 5.20Bài 5.20. Tuỳ biến lỗi
- Chương 6 - SwiftUI cơ bản20 ItemsMục đích: hiểu tư duy Declarative UI và xây được các giao diện SwiftUI cơ bản.
- 6.1Bài 6.1. Declarative UI
- 6.2Bài 6.2. SwiftUI View
- 6.3Bài 6.3. Tìm hiểu về body
- 6.4Bài 6.4. Text
- 6.5Bài 6.5. Image
- 6.6Bài 6.6. Label
- 6.7Bài 6.7. Button
- 6.8Bài 6.8. Divider
- 6.9Bài 6.9. Spacer
- 6.10Bài 6.10. VStack
- 6.11Bài 6.11. HStack
- 6.12Bài 6.12. ZStack
- 6.13Bài 6.13. Padding
- 6.14Bài 6.14. Frame
- 6.15Bài 6.15. Background
- 6.16Bài 6.16. Overlay
- 6.17Bài 6.17. Shape
- 6.18Bài 6.18. Color
- 6.19Bài 6.19. SF Symbols
- 6.20Bài 6.20. Font tuỳ chỉnh
- Chương 7 - SwiftUI nâng cao20 ItemsMục đích: Xây giao diện phức tạp hơn và biết cách tạo reusable component.
- 7.1Bài 7.1. ScrollView
- 7.2Bài 7.2. LazyVStack
- 7.3Bài 7.3. LazyHStack
- 7.4Bài 7.4. LazyVGrid
- 7.5Bài 7.5. Grid
- 7.6Bài 7.6. List
- 7.7Bài 7.7. Section
- 7.8Bài 7.8. Form
- 7.9Bài 7.9. GroupBox
- 7.10Bài 7.10. Card UI
- 7.11Bài 7.11. Button tuỳ chỉnh
- 7.12Bài 7.12. TextField tuỳ chỉnh
- 7.13Bài 7.13. Component tuỳ chỉnh
- 7.14Bài 7.14. ViewModifier
- 7.15Bài 7.15. View Extension
- 7.16Bài 7.16. Reusable View
- 7.17Bài 7.17. Responsive Layout
- 7.18Bài 7.18. GeometryReader
- 7.19Bài 7.19. Safe Area
- 7.20Bài 7.20. Layout Best Practices
- Chương 8 - Tương tác người dùng và Form20 ItemsMục đích: xây ứng dụng multi-screen đầu tiên.
- 8.1Bài 8.1. Trình bọc thuộc tính @State
- 8.2Bài 8.2. Trình bọc thuộc tính @Binding
- 8.3Bài 8.3. TextField
- 8.4Bài 8.4. SecureField
- 8.5Bài 8.5. Toggle
- 8.6Bài 8.6. Slider
- 8.7Bài 8.7. Stepper
- 8.8Bài 8.8. Picker
- 8.9Bài 8.9. DatePicker
- 8.10Bài 8.10. Menu
- 8.11Bài 8.11. Button Actions
- 8.12Bài 8.12. Focus State
- 8.13Bài 8.13. Keyboard Management
- 8.14Bài 8.14. Form Validation
- 8.15Bài 8.15. Alert
- 8.16Bài 8.16. ConfirmationDialog
- 8.17Bài 8.17. Sheet
- 8.18Bài 8.18. FullScreenCover
- 8.19Bài 8.19. Loading State
- 8.20Bài 8.20. Error State
- Chương 9 - List, Navigation và Data Flow18 ItemsMục tiêu: Xây ứng dụng multi-screen đầu tiên.
- 9.1Bài 9.1. List
- 9.2Bài 9.2. ForEach
- 9.3Bài 9.3. Identifiable
- 9.4Bài 9.4. NavigationStack
- 9.5Bài 9.5. NavigationLink
- 9.6Bài 9.6. Navigation Destination
- 9.7Bài 9.7. NavigationPath
- 9.8Bài 9.8. Programmatic Navigation
- 9.9Bài 9.9. Sheet Navigation
- 9.10Bài 9.10. TabView
- 9.11Bài 9.11. Tab Bar
- 9.12Bài 9.12. Truyền dữ liệu giữa các View
- 9.13Bài 9.13. Liên kết binding giữa các View
- 9.14Bài 9.14. Vòng đời của View
- 9.15Bài 9.15. View modifier onAppear
- 9.16Bài 9.16. View modifier onDisappear
- 9.17Bài 9.17. Modifier task
- 9.18Bài 9.18. View modifier onChange
- Chương 10 - Quản lý trạng thái18 ItemsMục đích: Hiểu cách SwiftUI quản lý state và tránh các lỗi phổ biến khi app bắt đầu lớn.
- 10.1Bài 10.1. State là gì?
- 10.2Bài 10.2. Nguồn của sự thật
- 10.3Bài 10.3. @State
- 10.4Bài 10.4. @Binding
- 10.5Bài 10.5. @Environment
- 10.6Bài 10.6. EnvironmentObject
- 10.7Bài 10.7. ObservableObject
- 10.8Bài 10.8. @Published
- 10.9Bài 10.9. @Observable
- 10.10Bài 10.10. State Ownership
- 10.11Bài 10.11. Shared State
- 10.12Bài 10.12. App State
- 10.13Bài 10.13. Model State
- 10.14Bài 10.14. UI State
- 10.15Bài 10.15. Loading State
- 10.16Bài 10.16. Error State
- 10.17Bài 10.17. Empty State
- 10.18Bài 10.18. State-driven UI
- Chương 11 - Kiến trúc MVVM15 ItemsMục tiêu: biết cách tổ chức code khi application bắt đầu phức tạp.
- 11.1Bài 11.1. Vì sao cần Architecture?
- 11.2Bài 11.2. MVC vs MVVM
- 11.3Bài 11.3. MVVM là gì?
- 11.4Bài 11.4. Model
- 11.5Bài 11.5. View
- 11.6Bài 11.6. ViewModel
- 11.7Bài 11.7. Trách nhiệm của ViewModel
- 11.8Bài 11.8. Trạng thái trong ViewModel
- 11.9Bài 11.9. Input từ View
- 11.10Bài 11.10. Output từ ViewModel
- 11.11Bài 11.11. Dependency Injection cơ bản
- 11.12Bài 11.4. Async ViewModel
- 11.13Bài 11.13. Loading
- 11.14Bài 11.14. Error Handling
- 11.15Bài 11.15. Refactoring View thành MVVM
- Chương 12 - Networking với URLSession20 ItemsMục tiêu: Kết nối app với REST API
- 12.1Bài 12.1. API là gì?
- 12.2Bài 12.2. REST API
- 12.3Bài 12.3. HTTP
- 12.4Bài 12.4. GET
- 12.5Bài 12.5. POST
- 12.6Bài 12.6. PUT
- 12.7Bài 12.7. PATCH
- 12.8Bài 12.8. DELETE
- 12.9Bài 12.9. URL
- 12.10Bài 12.10. Query Parameters
- 12.11Bài 12.11. HTTP Headers
- 12.12Bài 12.12. Request Body
- 12.13Bài 12.13. URLSession
- 12.14Bài 12.14. JSON
- 12.15Bài 12.15. Codable
- 12.16Bài 12.16. Decodable
- 12.17Bài 12.17. Encodable
- 12.18Bài 12.18. HTTP Status Code
- 12.19Bài 12.19. Network Error
- 12.20Bài 12.20. Loading API Data trong SwiftUI
- Chương 13 - Kiến trúc Networking15 ItemsMục đích: Không để ViewModel gọi URLSession trực tiếp; xây network layer có thể tái sử dụng.
- 13.1Bài 13.1. Vì sao cần Network Layer?
- 13.2Bài 13.2. NetworkClient
- 13.3Bài 13.3. Endpoint
- 13.4Bài 13.4. HTTPMethod
- 13.5Bài 13.5. Request Builder
- 13.6Bài 13.6. Generic Request
- 13.7Bài 13.7. Response DTO
- 13.8Bài 13.8. DTO Mapping
- 13.9Bài 13.9. NetworkError
- 13.10Bài 13.10. API Error
- 13.11Bài 13.11. Request Logging
- 13.12Bài 13.12. Retry
- 13.13Bài 13.13. Timeout
- 13.14Bài 13.14. API Configuration
- 13.15Bài 13.15. Network Layer Refactoring
- Chương 14 - Clean Architecture19 ItemsMục tiêu: Đây là bước chuyển từ Junior Architecture → Professional Architecture.
- 14.1Bài 14.1. Clean Architecture là gì?
- 14.2Bài 14.2. Khi nào cần Clean Architecture?
- 14.3Bài 14.3. Tầng trình diễn
- 14.4Bài 14.4. Tầng nghiệp vụ
- 14.5Bài 14.5. Tầng dữ liệu
- 14.6Bài 14.6. Các lớp Entity
- 14.7Bài 14.7. Các lớp UseCase
- 14.8Bài 14.8. Các lớp Repository
- 14.9Bài 14.9. Các lớp DataSource
- 14.10Bài 14.10. Các lớp DTO
- 14.11Bài 14.11. Các lớp Mapper
- 14.12Bài 14.12. Quy tắc phụ thuộc
- 14.13Bài 14.13. Đảo ngược phụ thuộc
- 14.14Bài 14.14. Repository protocol
- 14.15Bài 14.15. UseCase protocol
- 14.16Bài 14.16. MVVM + Clean Architecture
- 14.17Bài 14.17. Cấu trúc dự án
- 14.18Bài 14.18. Feature-based Architecture
- 14.19Bài 14.19. Khi nào không nên dùng Clean Architecture
- Chương 15 - Dependency Injection12 ItemsMục tiêu: Giúp code dễ mở rộng, thay thế implementation và test.
- 15.1Bài 15.1. Dependency là gì?
- 15.2Bài 15.2. Dependency Injection
- 15.3Bài 15.3. Constructor Injection
- 15.4Bài 15.4. Protocol-based DI
- 15.5Bài 15.5. Composition Root
- 15.6Bài 15.6. Dependency Container
- 15.7Bài 15.7. AppDIContainer
- 15.8Bài 15.8. Mock Dependency
- 15.9Bài 15.9. Production Dependency
- 15.10Bài 15.10. Development Dependency
- 15.11Bài 15.11. Dependency Graph
- 15.12Bài 15.12. DI Best Practices
- Chương 16 - Authentication & Security17 ItemsMục tiêu: Xây hệ thống authentication production.
- 16.1Bài 16.1. Authentication vs Authorization
- 16.2Bài 16.2. Luồng đăng nhập
- 16.3Bài 16.3. Luồng đăng ký
- 16.4Bài 16.4. Access Token
- 16.5Bài 16.5. Refresh Token
- 16.6Bài 16.6. Hạn sử dụng của Token
- 16.7Bài 16.7. Phiên làm việc
- 16.8Bài 16.8. Keychain
- 16.9Bài 16.9. Secure Storage
- 16.10Bài 16.10. Đăng xuất
- 16.11Bài 16.11. Session Restoration
- 16.12Bài 16.12. Automatic Token Refresh
- 16.13Bài 16.13. Retry Request
- 16.14Bài 16.14. Refresh đồng thời
- 16.15Bài 16.15. Trạng thái Authentication
- 16.16Bài 16.16. Security Best Practices
- 16.17Bài 16.16. Security Best Practices
- Chương 17 - Swift Concurrency19 ItemsMục tiêu: Giúp học viên viết code asynchronous hiện đại và an toàn.
- 17.1Bài 17.1. Synchronous vs Asynchronous
- 17.2Bài 17.2. Luồng
- 17.3Bài 17.3. async
- 17.4Bài 17.4. await
- 17.5Bài 17.5. Task
- 17.6Bài 17.6. Huỷ task
- 17.7Bài 17.7. Lập trình song song có cấu trúc
- 17.8Bài 17.8. Lập trình song song không cấu trúc
- 17.9Bài 17.9. Nhóm tác vụ
- 17.10Bài 17.10. API Requests song song
- 17.11Bài 17.11. actor
- 17.12Bài 17.12. MainActor
- 17.13Bài 17.13. Sendable
- 17.14Bài 17.14. Tương tranh dữ liệu
- 17.15Bài 17.15. AsyncSequence
- 17.16Bài 17.16. AsyncStream
- 17.17Bài 17.17. Concurrency trong SwiftUI
- 17.18Bài 17.18. Concurrency trong ViewModel
- 17.19Bài 17.19. Concurrency trong Repository
- Chương 18 - SwiftData & Local Database16 ItemsMục tiêu: Lưu dữ liệu local và xây khả năng offline.
- 18.1Bài 18.1. Local Database là gì?
- 18.2Bài 18.2. SwiftData
- 18.3Bài 18.3. Model
- 18.4Bài 18.4. ModelContainer
- 18.5Bài 18.5. ModelContext
- 18.6Bài 18.6. Insert
- 18.7Bài 18.7. Fetch
- 18.8Bài 18.8. Predicate
- 18.9Bài 18.9. Sort
- 18.10Bài 18.10. Update
- 18.11Bài 18.11. Delete
- 18.12Bài 18.12. Relationship
- 18.13Bài 18.13. Quan hệ 1-n
- 18.14Bài 18.14. Migration
- 18.15Bài 18.15. Kiến trúc SwiftData
- 18.16Bài 18.16. 1. SwiftData + Clean Architecture
- Chương 19 - Phân trang, tìm kiếm và ưu tiên offline18 ItemsMục tiêu: Xử lý dữ liệu lớn và xây trải nghiệm giống ứng dụng production.
- 19.1Bài 19.1. Phân trang
- 19.2Bài 19.2.Page-based Pagination
- 19.3Bài 19.3. Cursor Pagination
- 19.4Bài 19.4. Cuộn vô tận
- 19.5Bài 19.5. Load more
- 19.6Bài 19.6. Prevent Duplicate Request
- 19.7Bài 19.7. Pull to Refresh
- 19.8Bài 19.8. Search
- 19.9Bài 19.9. Debounce
- 19.10Bài 19.10. Task Cancellation
- 19.11Bài 19.11. Filter
- 19.12Bài 19.12. Sort
- 19.13Bài 19.13. Local Search
- 19.14Bài 19.14. Remote Search
- 19.15Bài 19.15. Cache
- 19.16Bài 19.16. Offline-first
- 19.17Bài 19.17. Synchronization
- 19.18Bài 19.18. Cache Invalidation
- Chương 20 - Kiểm thử20 ItemsMục tiêu: nắm được quy trình kiểm thử ứng dụng trước khi phát hành nhằm đảm bảo ứng dụng có chất lượng tốt nhất.
- 20.1Bài 20.1. Vì sao cần Testing?
- 20.2Bài 20.2. Unit Test
- 20.3Bài 20.3. Test Target
- 20.4Bài 20.4. XCTest
- 20.5Bài 20.5. Arrange-Act-Assert
- 20.6Bài 20.6. Mock
- 20.7Bài 20.7. Stub
- 20.8Bài 20.8. Fake
- 20.9Bài 20.9. Spy
- 20.10Bài 20.10. Repository Test
- 20.11Bài 20.11. UseCase Test
- 20.12Bài 20.12. ViewModel Test
- 20.13Bài 20.13. Async Test
- 20.14Bài 20.14. Error Test
- 20.15Bài 20.15. Networking Test
- 20.16Bài 20.16. UI Test
- 20.17Bài 20.17. Navigation Test
- 20.18Bài 20.18. Login Test
- 20.19Bài 20.19. Search Test
- 20.20Bài 20.20. Test Coverage
- Chương 21 - Hiệu năng và bộ nhớ sử dụng19 ItemsMục tiêu: Biết cách tìm và xử lý performance problem trong ứng dụng thực tế.
- 21.1Bài 21.1. SwiftUI Rendering
- 21.2Bài 21.2. View Re-render
- 21.3Bài 21.3. View Identity
- 21.4Bài 21.4. State Optimization
- 21.5Bài 21.5. List Performance
- 21.6Bài 21.6. Lazy Containers
- 21.7Bài 21.7. Image Performance
- 21.8Bài 21.8. Memory Management
- 21.9Bài 21.9. Strong Reference Cycle
- 21.10Bài 21.10. Retain Cycle
- 21.11Bài 21.11. Memory Leak
- 21.12Bài 21.12. Instruments
- 21.13Bài 21.13. Time Profiler
- 21.14Bài 21.14. Allocations
- 21.15Bài 21.15. Leaks
- 21.16Bài 21.16. Memory Graph
- 21.17Bài 21.17. Network Performance
- 21.18Bài 21.18. Database Performance
- 21.19Bài 21.19. Performance Optimization Workflow
- Chương 22 - Media, Push Notification & Deep Link18 ItemsMục tiêu: Bổ sung những capability phổ biến trong production app.
- 22.1Bài 22.1. AsyncImage
- 22.2Bài 22.2. Image Loading
- 22.3Bài 22.3. Image Cache
- 22.4Bài 22.4. Memory Cache
- 22.5Bài 22.5. Disk Cache
- 22.6Bài 22.6. AVFoundation
- 22.7Bài 22.7. AVPlayer
- 22.8Bài 22.8. Video Player
- 22.9Bài 22.9. HLS
- 22.10Bài 22.10. Push Notification
- 22.11Bài 22.11. APNs
- 22.12Bài 22.12. Device Token
- 22.13Bài 22.13. Notification Permission
- 22.14Bài 22.14. Notification Payload
- 22.15Bài 22.15. Notification Handling
- 22.16Bài 22.16. Deep Link
- 22.17Bài 22.17. Universal Link
- 22.18Bài 22.18. 1. Notification → Deep Link
- Chương 23 - StoreKit 2 & Monetization17 ItemsMục tiêu: Giúp bạn xây app có khả năng thương mại hóa.
- 23.1Bài 23.1. Kiếm tiền trong ứng dụng
- 23.2Bài 23.2. StoreKit 2
- 23.3Bài 23.3. Product
- 23.4Bài 23.4. Product ID
- 23.5Bài 23.5. Load Products
- 23.6Bài 23.6. Purchase
- 23.7Bài 23.7. Transaction
- 23.8Bài 23.8. Transaction Verification
- 23.9Bài 23.9. Restore Purchase
- 23.10Bài 23.10. Lifetime Purchase
- 23.11Bài 23.11. Subscription
- 23.12Bài 23.12. Subscription Status
- 23.13Bài 23.13. Entitlement
- 23.14Bài 23.14. Transaction Listener
- 23.15Bài 23.15. StoreKit Architecture
- 23.16Bài 23.16. Backend Verification
- 23.17Bài 23.17. 1. Handling Purchase Errors
- Chương 24 - Production Architecture & Capstone20 ItemsMục tiêu: Đưa toàn bộ kiến thức thành một ứng dụng hoàn chỉnh có architecture production.
- 24.1Bài 24.1. Production Project Structure
- 24.2Bài 24.2. Feature-based Architecture
- 24.3Bài 24.3. AppDIContainer
- 24.4Bài 24.4. Environment Configuration
- 24.5Bài 24.5. Development Environment
- 24.6Bài 24.6. Staging Environment
- 24.7Bài 24.7. Production Environment
- 24.8Bài 24.8. API Configuration
- 24.9Bài 24.9. Security Checklist
- 24.10Bài 24.10. Logging
- 24.11Bài 24.11. Error Monitoring
- 24.12Bài 24.12. Accessibility
- 24.13Bài 24.13. Localization
- 24.14Bài 24.14. Performance Checklist
- 24.15Bài 24.15. Testing Checklist
- 24.16Bài 24.16. Code Review
- 24.17Bài 24.17. Refactoring
- 24.18Bài 24.18. Architecture Review
- 24.19Bài 24.19. App Store Preparation
- 24.20Bài 24.20. Dự án tốt nghiệp
- Chương 25 - Thiết lập hiển thị quảng cáo trong ứng dụng5 ItemsMục tiêu: Thiêt lập hiển thị quảng cáo dạng reward ads trong ứng dụng của bạn.
- Chương 26 - Đẩy app lên Apple Store7 ItemsMục tiêu: Hướng dẫn các bước đẩy ứng dụng lên chợ ứng dụng của Apple Store Connect và thực hiện các cấu hình, cập nhật, sửa lỗi, phát hành chính thức app.
- 26.1Bài 26.1. Thiết lập cấu hình build app production
- 26.2Bài 26.2. Thực hiện build app achive
- 26.3Bài 26.3. Đăng ký tài khoản Apple Developer
- 26.4Bài 26.4. Thiết lập cấu hình trên Apple Store Connect
- 26.5Bài 26.5. Đẩy app lên Test Flight
- 26.6Bài 26.6. Gửi yêu cầu xét duyệt app trên Apple Store Connect
- 26.7Bài 26.7. Sửa lỗi và phản hồi, hướng dẫn khi bị reject




