Đề 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
 420 Hours

Number of participants


Price per participant

Testimonials (5)

Provisional Upcoming Courses (Require 5+ participants)

Related Categories