Đề cương khóa học
Giới thiệu
Tuần 1: Tổng quan về Phát triển Di động
- Hệ sinh thái và Nền tảng Di động
- Tổng quan về hệ điều hành di động (iOS và Android)
- Những khác biệt chính giữa iOS, Android và phát triển đa nền tảng
- Các cửa hàng ứng dụng phổ biến (Apple App Store, Google Play Store)
- Giới thiệu về phát triển bản địa, hybrid và đa nền tảng
- Bản địa vs Hybrid vs Đa nền tảng
- Lợi ích và thách thức của mỗi phương pháp phát triển
- Tổng quan về Swift (cho iOS), Kotlin (cho Android) và React Native (đa nền tảng)
- Cách mã nguồn chuyển đổi sang các nền tảng di động (JavaScript thành mã bản địa trong React Native)
- Các nguyên tắc lập trình cơ bản
- Giới thiệu về các khái niệm lập trình (biến, kiểu dữ liệu, hàm, luồng điều khiển)
- So sánh cú pháp của Swift, Kotlin và JavaScript
- Viết các chương trình đơn giản bằng Swift, Kotlin và JavaScript
- Cài đặt Môi trường Phát triển
- Cài đặt Xcode và Android Studio
- Cài đặt React Native CLI và Expo
- Chạy các ứng dụng "Hello World" cơ bản trên máy mô phỏng và máy ảo
Tuần 2: Giới thiệu về Swift, Kotlin và JavaScript
- Lập trình Swift cho iOS
- Biến, hằng số và kiểu dữ liệu trong Swift
- Các câu lệnh điều khiển luồng (
if,switch, vòng lặp) - Hàm và tham số trong Swift
- Giới thiệu về giao diện Xcode và Swift Playgrounds
- Lập trình Kotlin cho Android
- Biến, kiểu dữ liệu và hàm trong Kotlin
- Tìm hiểu tính an toàn null của Kotlin
- Các câu lệnh điều khiển luồng và cấu trúc vòng lặp
- Giới thiệu về giao diện Android Studio và Kotlin Playground
- JavaScript cho React Native
- Biến, hằng số và câu lệnh điều khiển luồng trong JavaScript
- Tính năng ES6: hàm mũi tên, chuỗi mẫu và giải cấu trúc
- Viết và chạy các chương trình JavaScript cơ bản trong React Native bằng Expo
Tuần 3: Thiết kế Giao diện Người dùng iOS
- Các phần tử giao diện trong iOS
- Giới thiệu về UIKit và SwiftUI
- Thêm và tùy chỉnh các phần tử giao diện như nút, nhãn, trường nhập liệu
- Sử dụng Interface Builder để thiết kế giao diện
- Làm việc với Storyboards và thiết kế giao diện đa màn hình
- Bố cục tự động và ràng buộc
- Tìm hiểu hệ thống Auto Layout
- Sử dụng ràng buộc cho bố cục linh hoạt trên các kích thước màn hình khác nhau
- Tạo stack views và điều chỉnh động các phần tử giao diện
- Cơ bản của SwiftUI
- Giới thiệu về thiết kế giao diện khai báo trong SwiftUI
- Xây dựng các thành phần giao diện đơn giản bằng SwiftUI
Tuần 4: Thiết kế Giao diện Người dùng Android
- Bố cục XML trong Android
- Giới thiệu về thiết kế bố cục dựa trên XML
- Làm việc với các bố cục thông dụng: LinearLayout, RelativeLayout, ConstraintLayout
- Thêm và tùy chỉnh các phần tử giao diện: nút, text views, image views
- Sử dụng ConstraintLayout cho bố cục linh hoạt và động
- Thiết kế Material
- Tích hợp nguyên tắc thiết kế Material (màu sắc, biểu tượng, kiểu chữ)
- Sử dụng các thành phần Material (nút, nút hành động nổi, thẻ)
- Triển khai chủ đề và kiểu dáng cho ứng dụng Android
Tuần 5: Thiết kế Giao diện Người dùng React Native
- Bố cục Flexbox trong React Native
- Tìm hiểu về Flexbox cho thiết kế bố cục linh hoạt
- Tạo các bố cục dựa trên cột và hàng
- Định dạng các thành phần giao diện bằng các thuộc tính Flexbox (justifyContent, alignItems, etc.)
- Các thành phần React Native
- Làm việc với các thành phần cơ bản như
Text,View,TextInput, vàButton - Tạo các phần tử giao diện tương tác như biểu mẫu và nút
- Sử dụng thành phần
ScrollViewcho nội dung động
- Làm việc với các thành phần cơ bản như
Tuần 6: Xử lý Dữ liệu trong iOS và Android
- Xử lý dữ liệu trong iOS
- Sử dụng UserDefaults để lưu trữ dữ liệu đơn giản
- Giới thiệu về Core Data để lưu trữ dữ liệu phức tạp tại địa phương
- Lấy dữ liệu từ API bằng URLSession
- Phân tích dữ liệu JSON và hiển thị trên giao diện người dùng
- Xử lý dữ liệu trong Android
- Sử dụng SharedPreferences để lưu trữ lượng nhỏ dữ liệu
- Giới thiệu về SQLite và Room Persistence Library để quản lý cơ sở dữ liệu
- Lấy dữ liệu từ API bằng Retrofit
- Phân tích JSON và xử lý phản hồi API
Tuần 7: Quản lý Trạng thái và API trong React Native
- Trạng thái và Props trong React Native
- Quản lý luồng dữ liệu trong các thành phần React Native
- Sử dụng hook
useStateđể quản lý trạng thái thành phần tại địa phương - Chuyển dữ liệu giữa các thành phần cha và con qua props
- Lấy dữ liệu trong React Native
- Sử dụng Fetch API và Axios để thực hiện yêu cầu HTTP
- Hiển thị dữ liệu đã lấy trong danh sách (sử dụng
FlatList,SectionList) - Lưu trữ dữ liệu tại địa phương bằng AsyncStorage trong React Native
Tuần 8: Điều hướng trong iOS và Android
- Điều hướng trong iOS
- Giới thiệu về điều khiển viên điều hướng và quản lý nhiều màn hình
- Sử dụng segues để chuyển đổi giữa các view controller
- Chuyển dữ liệu giữa các view controller
- Triển khai TabBar và NavigationBar cho điều hướng có cấu trúc
- Điều hướng trong Android
- Làm việc với Activities và Intents cho ứng dụng đa màn hình
- Chuyển dữ liệu giữa các Activities bằng Bundles
- Tạo Navigation Drawer và BottomNavigationView
- Triển khai fragments cho điều hướng giao diện người dùng linh hoạt
Tuần 9: Điều hướng trong React Native
- Cơ bản của React Navigation
- Cài đặt và thiết lập React Navigation
- Sử dụng Stack Navigator cho chuyển đổi màn hình
- Triển khai Tab Navigator và Drawer Navigator cho điều hướng phức tạp
- Chuyển tham số giữa các màn hình và quản lý trạng thái điều hướng
Tuần 10: Các tính năng Nâng cao
- Các tính năng nâng cao của iOS:
- Vị trí và bản đồ
- Truy cập vị trí thiết bị bằng Core Location
- Hiển thị bản đồ bằng MapKit
- Xử lý định vị địa lý và theo dõi vị trí người dùng
- Máy ảnh và phương tiện
- Truy cập máy ảnh và thư viện ảnh thiết bị
- Chụp và hiển thị hình ảnh bằng UIImagePickerController
- Lưu trữ và truy xuất các tệp phương tiện
- Vị trí và bản đồ
- Các tính năng nâng cao của Android
- Vị trí và bản đồ
- Sử dụng API Google Maps để hiển thị bản đồ và vị trí người dùng
- Truy cập dữ liệu GPS và xử lý định vị địa lý
- Máy ảnh và phương tiện
- Sử dụng CameraX để chụp hình và xử lý quyền máy ảnh
- Hiển thị hình ảnh và xử lý lưu trữ phương tiện
- Vị trí và bản đồ
- Các tính năng nâng cao của React Native
- Bản đồ React Native
- Tích hợp bản đồ bằng
react-native-maps - Xử lý các dịch vụ dựa trên vị trí (định vị địa lý, lập bản đồ tuyến đường)
- Tích hợp bản đồ bằng
- Truy cập máy ảnh và phương tiện
- Sử dụng thư viện React Native Camera để chụp hình
- Truy cập lưu trữ phương tiện thiết bị và xử lý tệp
- Bản đồ React Native
Tuần 11: Gỡ lỗi và Kiểm thử
- Gỡ lỗi và kiểm thử iOS
- Sử dụng bộ gỡ lỗi Xcode
- Đặt điểm dừng và kiểm tra biến trong Xcode
- Sử dụng bảng điều khiển để gỡ lỗi thời gian thực
- Các vấn đề gỡ lỗi phổ biến và cách giải quyết chúng
- Kiểm thử đơn vị trong iOS
- Viết và chạy kiểm thử đơn vị bằng XCTest framework
- Tạo đối tượng giả và kiểm thử các thành phần giao diện người dùng
- Sử dụng bộ gỡ lỗi Xcode
- Gỡ lỗi và kiểm thử Android
- Sử dụng Logcat trong Android Studio
- Ghi log và phân tích lỗi bằng Logcat
- Gỡ lỗi ứng dụng Android bằng điểm dừng
- Kiểm thử đơn vị trong Android
- Viết kiểm thử đơn vị bằng JUnit
- Kiểm thử các thành phần giao diện người dùng Android bằng Espresso
- Sử dụng Logcat trong Android Studio
- Gỡ lỗi và kiểm thử React Native
- Các công cụ gỡ lỗi React Native
- Sử dụng Chrome DevTools và React Native Debugger cho gỡ lỗi thời gian thực
- Ghi log bảng điều khiển và kiểm tra yêu cầu mạng
- Kiểm thử đơn vị trong React Native
- Viết kiểm thử đơn vị bằng Jest và Enzyme
- Kiểm thử các thành phần React Native và quản lý các trường hợp kiểm thử
- Các công cụ gỡ lỗi React Native
Tuần 12: Triển khai ứng dụng và Dự án Cuối khóa
- Triển khai và Phân phối
- Nộp ứng dụng lên App Store (iOS)
- Chuẩn bị ứng dụng để phân phối (biểu tượng, chứng chỉ, hồ sơ cung cấp)
- Sử dụng App Store Connect để nộp ứng dụng để xem xét
- Sử dụng TestFlight cho thử nghiệm beta
- Nộp ứng dụng lên Play Store (Android)
- Chuẩn bị APK và ký ứng dụng để phân phối
- Sử dụng Google Play Console để nộp ứng dụng và theo dõi
- Tìm hiểu chính sách và hướng dẫn của Play Store
- Nộp ứng dụng lên App Store (iOS)
- Phát triển Dự án Cuối khóa
- Phát triển dự án cuối khóa
- Xây dựng một ứng dụng đầy đủ chức năng theo lựa chọn của bạn
- Tích hợp các tính năng nâng cao như gọi API, điều hướng, phương tiện và vị trí
- Trình bày và giới thiệu ứng dụng cuối khóa cho bạn học cùng lớp và giáo viên
- Phát triển dự án cuối khóa
Tóm tắt và Bước tiếp theo
Yêu cầu
- Nắm vững các khái niệm lập trình cơ bản
- Có kiến thức cơ bản về JavaScript
Đối Tượng Học Viên
- Nhà phát triển ứng dụng di động
- Lập trình viên
Đánh giá (5)
Thông tin bổ sung rất hữu ích
Grzegorz - Comp S.A.
Khóa học - BLoC Pattern
Dịch thuật bằng máy
Edward là một ngườifacilitator tuyệt vời
Zibusiso Ncube - Agricatural Research Council
Khóa học - Ionic 4 and Angular for Developers
Dịch thuật bằng máy
Có thể thêm nhiều bài tập sẽ tốt hơn cho việc học nhưng thời gian lại quá ít
Gianpiero Arico' - Urmet Spa
Khóa học - Embedded Linux Systems Architecture
Dịch thuật bằng máy
Kiến thức của Miguel về chủ đề này rất sâu rộng. Anh đã làm cho khóa đào tạo trở nên dễ hiểu và có sự cân bằng trong tiến trình; thêm vào mỗi phần những tính năng mới khi cần thiết. Anh đã涵盖所有被要求的内容,并且对每个问题都进行了详尽的回答。这是一次非常愉快的经历。 (注:最后两句翻译似乎混用了越南语和中文,现在纠正为完整越南语版本) Anh đã bao gồm tất cả những gì được yêu cầu và trả lời chi tiết từng câu hỏi. Đây thực sự là một trải nghiệm rấtpleasant experience. (注:最后一句中“pleasant experience”已直接翻译为“愉快的经历”,若需完全符合指示,保留原文可改为:Đây thực sự là một trải nghiệm rất "pleasant experience". 但为了自然流畅,建议使用:Đây thực sự là một trải nghiệm rất thoải mái và tích cực.) 最终版本: Kiến thức của Miguel về chủ đề này rất sâu rộng. Anh đã làm cho khóa đào tạo trở nên dễ hiểu và có sự cân bằng trong tiến trình; thêm vào mỗi phần những tính năng mới khi cần thiết. Anh đã bao gồm tất cả những gì được yêu cầu và trả lời chi tiết từng câu hỏi. Đây thực sự là một trải nghiệm rất thoải mái và tích cực.
Paul Coaton - SEMPCheck Services
Khóa học - Flutter Development Bootcamp with Dart
Dịch thuật bằng máy
Giảng viên nhiệt tình, thân thiện và yêu thích chủ đề này
Isaac Murphy - Royal New Zealand Airforce
Khóa học - Build Native iOS and Android Apps with Flutter
Dịch thuật bằng máy