Đề cương khóa học
Giới thiệu
Tuần 1: Các Khái niệm Nâng cao về Swift, Kotlin và JavaScript
- Swift (iOS)
- Các hàm nâng cao: Closures, capturing values, higher-order functions
- Lập trình hướng giao thức và generics
- Quản lý bộ nhớ với ARC (Automatic Reference Counting)
- Kotlin (Android)
- Các hàm mở rộng và Thư viện Tiêu chuẩn Kotlin
- Coroutines cho lập trình bất đồng bộ
- Sealed classes, enums và xử lý lỗi nâng cao
- JavaScript (React Native)
- Các tính năng ES6+ nâng cao: Destructuring, async/await, promises
- Các khái niệm lập trình hàm trong JavaScript
- Làm việc với các thư viện bên thứ ba trong React Native
Tuần 2: Kiến trúc Ứng dụng Di động và Design Patterns
- MVVM (Model-View-ViewModel) cho iOS và Android
- Hiểu kiến trúc MVVM cho iOS (Swift) và Android (Kotlin)
- Triển khai ViewModels và quan sát dữ liệu với LiveData (Android) và Combine (iOS)
- Lập trình phản ứng với RxSwift và RxKotlin
- Kiến trúc dựa trên Component trong React Native
- Hiểu vòng đời component và hooks
- Các phương pháp hay nhất để quản lý state và props ở quy mô lớn
- Sử dụng React Context API để quản lý state toàn cục
Tuần 3: Các Khái niệm Nâng cao về Networking
- Networking trong iOS (Swift)
- Làm việc với URLSession cho các yêu cầu mạng tùy chỉnh
- Các cuộc gọi REST API nâng cao và xử lý lỗi
- Làm việc với Codable và phân tích JSON
- Các phương pháp hay nhất để giao tiếp API an toàn (SSL pinning, OAuth)
- Networking trong Android (Kotlin)
- Retrofit để thực hiện các cuộc gọi API và xử lý phản hồi
- Xử lý lỗi API nâng cao và cơ chế thử lại
- Sử dụng Gson hoặc Moshi để phân tích JSON
- Giao tiếp an toàn bằng HTTPS và xác thực OAuth
Tuần 4: Networking trong React Native
- Tích hợp API với Axios và Fetch
- Tích hợp API nâng cao với Axios và Fetch
- Chiến lược xử lý lỗi và thử lại trong các yêu cầu mạng
- Làm việc với xác thực (JWT, OAuth)
- WebSockets và Communication thời gian thực
- Giới thiệu về WebSockets trong React Native
- Xây dựng các tính năng chat hoặc thông báo thời gian thực với kết nối WebSocket
- Quản lý các kết nối liên tục và cập nhật dữ liệu
Tuần 5: Các Kỹ thuật Lưu trữ Dữ liệu Nâng cao
- Core Data và SQLite (iOS)
- Các mối quan hệ, tìm kiếm và truy vấn Core Data nâng cao
- Sử dụng SQLite trực tiếp cho các ứng dụng iOS và quản lý kết nối cơ sở dữ liệu
- Xử lý và tối ưu hóa dữ liệu hiệu quả
- Room Persistence và SQLite (Android)
- Các mối quan hệ và truy vấn cơ sở dữ liệu Room nâng cao
- Quản lý các tập dữ liệu lớn và tối ưu hóa hiệu suất cơ sở dữ liệu
- Sử dụng ProGuard để bảo mật cấu trúc cơ sở dữ liệu
- Firebase cho Lưu trữ Đám mây (iOS và Android)
- Tích hợp với Firebase để quản lý cơ sở dữ liệu thời gian thực
- Các phương pháp hay nhất để đồng bộ hóa dữ liệu cục bộ và đám mây
Tuần 6: State Management Nâng cao trong React Native
- Redux cho State Management
- Các khái niệm Redux nâng cao: Middlewares, Thunks, và Sagas
- Tối ưu hóa Redux để có hiệu suất và khả năng mở rộng
- Recoil cho State Management
- Giới thiệu về Recoil: Một lựa chọn linh hoạt hơn cho Redux
- Xử lý quản lý state quy mô lớn trên các component
- Cập nhật state hiệu quả và quản lý state nguyên tử
Tuần 7: Animations Nâng cao trong iOS và Android
- iOS (Swift)
- Animation Core: Tạo hoạt ảnh cho views, layers, và transitions
- UIKit Dynamics: Tạo hoạt ảnh dựa trên vật lý
- Transitions và animations tùy chỉnh giữa các view controllers
- Android (Kotlin)
- MotionLayout để tạo hoạt ảnh phức tạp
- TransitionManager và transitions shared element
- Property animations để thay đổi tỷ lệ, xoay và alpha của view
Tuần 8: Animations và UI/UX trong React Native
- Animations React Native
- Sử dụng Animated API và Reanimated để tạo hoạt ảnh phức tạp
- Triển khai gestures và interactions bằng React Native Gesture Handler
- Các phương pháp hay nhất để tạo hoạt ảnh hiệu suất trong React Native
- Tạo Component UI Tùy chỉnh
- Xây dựng các component có thể tái sử dụng và tùy chỉnh trong React Native
- Triển khai responsive designs với media queries và flexbox
Tuần 9: Tích hợp Native Modules và Tính năng Thiết bị
- Sử dụng Tính năng Thiết bị Native
- Sử dụng nâng cao camera, geolocation, Bluetooth, và sensors
- Tạo native modules trong Swift và Kotlin để tích hợp với React Native
- Tích hợp ARKit cho augmented reality trong iOS
- Tích hợp CameraX và ARCore cho augmented reality trong Android
- React Native Bridge và Native Modules
- Xây dựng native modules tùy chỉnh để tích hợp với chức năng cụ thể của nền tảng
- Tạo Java và Swift bridges cho các ứng dụng React Native
- Các phương pháp hay nhất để quản lý mã native trong môi trường cross-platform
Tuần 10: Kiểm thử và Gỡ lỗi Ứng dụng Nâng cao
- Kiểm thử trong iOS (Swift)
- Viết unit tests với XCTest và UI tests cho iOS
- Sử dụng Xcode Instruments để phân tích hiệu suất và rò rỉ bộ nhớ
- Quy trình tích hợp và kiểm thử liên tục với Jenkins và CircleCI
- Kiểm thử trong Android (Kotlin)
- JUnit và Espresso testing nâng cao cho các ứng dụng Android
- Phân tích hiệu suất và xác định các điểm nghẽn bằng Android Profiler
- Sử dụng Firebase Test Lab để kiểm thử tự động trên nhiều thiết bị
- React Native Kiểm thử
- Unit testing với Jest và component testing với Enzyme
- End-to-end testing với Detox và thiết lập kiểm thử tự động
- Phân tích hiệu suất với React Native Debugger và Flipper
Tuần 11: Triển khai Ứng dụng và Tích hợp Liên tục
- Triển khai App Store (iOS)
- Chuẩn bị ứng dụng để gửi: App Store certificates, provisioning profiles, và TestFlight beta testing
- Sử dụng Fastlane để tự động hóa việc triển khai ứng dụng iOS
- Quản lý App Store Connect và thiết lập quy trình xem xét ứng dụng
- Google Play (Android) Triển khai
- Chuẩn bị APK và ký nó để gửi lên Google Play
- Tự động hóa việc triển khai ứng dụng Android với Fastlane và Gradle
- Sử dụng Google Play Console để xem xét ứng dụng và beta testing
- Thiết lập CI/CD Pipelines
- Cấu hình Jenkins, GitHub Actions, hoặc CircleCI để tự động hóa quy trình xây dựng và triển khai
- Sử dụng Fastlane cho cả quy trình CI/CD iOS và Android
- Các phương pháp hay nhất để quản lý phiên bản, số bản dựng và kênh phát hành
Tuần 12: Dự án Capstone
- Phát triển Dự án Cuối khóa
- Thiết kế và phát triển một ứng dụng hoàn chỉnh kết hợp các tính năng nâng cao đã học trong suốt khóa học.
- Triển khai UI/UX tùy chỉnh, animations nâng cao, quản lý state, tích hợp native module và giao tiếp API thời gian thực.
- Tối ưu hóa ứng dụng để có hiệu suất và triển khai nó lên App Store và Google Play.
Tóm tắt và Các Bước Tiếp theo
Requirements
- Hiểu biết vững chắc về các khái niệm lập trình, đặc biệt là trong Swift, Kotlin và JavaScript
- Có kinh nghiệm xây dựng các ứng dụng iOS, Android hoặc React Native cơ bản
- Nắm vững các mẫu thiết kế như MVC hoặc MVVM và có kinh nghiệm với quản lý trạng thái cơ bản
Đối tượng
- Nhà phát triển ứng dụng di động
- Lập trình viên
Testimonials (5)
Edward is an awesome facilitator
Zibusiso Ncube - Agricatural Research Council
Course - Ionic 4 and Angular for Developers
My favorite part is question and answer with Sir. Jose. He is very knowledgeable and know the answer to our questions.
John Henry - Toyota Motor Philippines
Course - .NET MAUI (Intermediate)
Maybe more exercises could be better for lerning but the time was to little
Gianpiero Arico' - Urmet Spa
Course - Embedded Linux Systems Architecture
Miguel's knowledge of the subject was extensive. He made the training easy to understand and the flow was balanced; adding on to each section with new features as needed. He covered everything that was asked and answered each and every question thoroughly. It was a very pleasant experience.
Paul Coaton - SEMPCheck Services
Course - Flutter Development Bootcamp with Dart
The trainer was enthusiastic, kind, and loved the topic