Ưu điểm của Cross platform:
- Hiệu năng ở mức chấp nhận được
- Tốc độ phát triển ứng dụng rất nhanh, với 1 codebase bạn có thể
build 1 ứng dụng chạy được trên cả Android/iOS => toàn bộ quá
trình phát triển, cập nhật, bảo trì được speed up chỉ với số
lượng lập trình viên bằng 1 nửa.
Nhược điểm của Cross platform:
- Vấn đề về hiệu năng với các ứng dụng đòi hỏi logic phức tạp,
can thiệp sâu hoặc điều khiển hardware của hệ thống.
- Tốc độ update với các công nghệ, SDK của các platform thường
chậm hơn so với Native.
- Bug khó xử lý hơn do framework đã che bớt
                
              
                                            
                                
            
                       
            
                 20 trang
20 trang | 
Chia sẻ: thanhle95 | Lượt xem: 762 | Lượt tải: 1 
              
            Bạn đang xem nội dung tài liệu Bài giảng Lập trình di động đa nền tảng, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
 Lập trình di động đa nền 
tảng (React Native, Flutter)
Công việc, cơ hội việc làm, lộ trình học...
Nội dung chính ● Lập trình app mobile đa nền tảng là gì? Ưu nhược điểm của 
đa nền tảng so với native?
● Thị trường ra sao, lương thế 
nào?
● Những kỹ năng cần có, các công 
nghệ cần học. 
● Lộ trình học cơ bản. Học bao 
lâu thì đi làm?
● Một số kinh nghiệm học và làm 
mobile nói chung và mobile đa 
nền tảng nói riêng.
 Lập trình di động 
đa nền tảng?
 Đa nền tảng là 2 nền tảng
- Phát triển 1 ứng dụng di động 
duy nhất có thể chạy trên cả 
Android và iOS
- React Native - phát triển bởi 
Facebook, sử dụng JavaScript + 
React
- Flutter - Phát triển bởi 
Google, sử dụng ngôn ngữ Dart
- Rất nhiều frameworks khác như 
Xamarin, Ionic, PhoneGap...
Ưu điểm của Cross platform:
- Hiệu năng ở mức chấp nhận được 
- Tốc độ phát triển ứng dụng rất nhanh, với 1 codebase bạn có thể 
build 1 ứng dụng chạy được trên cả Android/iOS => toàn bộ quá 
trình phát triển, cập nhật, bảo trì được speed up chỉ với số 
lượng lập trình viên bằng 1 nửa.
Nhược điểm của Cross platform:
- Vấn đề về hiệu năng với các ứng dụng đòi hỏi logic phức tạp, 
can thiệp sâu hoặc điều khiển hardware của hệ thống.
- Tốc độ update với các công nghệ, SDK của các platform thường 
chậm hơn so với Native.
- Bug khó xử lý hơn do framework đã che bớt
Rất nhiều ứng dụng được viết bằng
Cross-platform framework
Lương nhiêu?
- Mới vào ngành (fresher): lương 7 – 8tr
- Mới có kinh nghiệm (junior): 8tr – 10tr
- Nhiều kinh nghiệm (senior): 12tr – 5000$
- BRSE (kỹ sư cầu nối): lương cao, từ 15tr - 
vài ngàn $
- Senior/Manager: >= 20tr
Kĩ năng 
cần có
Lập trình cơ bản
● Kiến thức lập trình cơ bản (biến, hàm, câu lệnh 
điều kiện, vòng lặp, OOP v.v.)
● Tư duy lập trình, giải quyết bài toán
● Sử dụng IDE lập trình; Git / Subversion
● Debug, test, làm việc nhóm v.v.
Thông thạo ít nhất một 
framework đa nền tảng 
(cơ bản)
● React Native: JavaScript 
(hoặc Typescript), Visual 
Studio Code.
● Flutter: Dart, Android 
Studio (hoặc Visual Studio)
● Debug, Analytics, Log
● Lập trình app làm việc với 
các thành phần mobile cơ 
bản: Camera, photo, sound, 
video, backend, database, 
notification v.v. build ra 
máy Android, iOS 
Kiến thức về Mobile 
native (Android, iOS), 
TESTING, architecture, 
OPTIMIZE 
(NÂNG CAO)
● Vẫn cần kết hợp làm việc với 
lập trình mobile native 
(Android Java (Kotlin), iOS 
Swift)
● Animation/Gesture, Hardware
● Testing: Manual /Automation, 
unit test
● Optimize code, chạy tốt trên 
nhiều hệ điều hành / nhiều 
loại thiết bị mobile
● App/Component Architecture
● Build/publish app ra bản 
Android, iOS
- Windows: Lap xịn xịn (RAM 8GB trở lên, Ổ 
SSD) để cài Android studio (Flutter) hoặc 
Visual studio code (React Native), chạy máy 
ảo
- Mac: Sử dụng máy mac (RAM 8G trở lên, Ổ 
SSD) ĐỂ có thể debug và build bản release cho 
cả ios, ANDROID
Lộ trình học
Ra sao?
Lộ trình React 
native
● Lập trình JavaScript, React native 
cơ bản
● Component, styles – Xây dựng giao 
diện ứng dụng
● Sử dụng, quản lý props, state, hook
● Navigation giữa các màn hình sử dụng 
React Navigation
● Lưu trữ dữ liệu local với Async 
Storage
● Redux, Redux thunk, Redux Saga
● Native modules
● Tích hợp Web Service: HTTP/Socket
● Đóng gói và publish app lên 
AppStore/Google Play Store
Lộ trình Flutter
● Lập trình Dart, Flutter cơ bản
● Common UI Widget: Cheat sheet, 
Container, Table, Image, Stack – 
Xây dựng giao diện ứng dụng
● Di chuyển & truyền dữ liệu giữa 
các màn hình
● Lập trình Thread: Future, Stream
● Lưu trữ dữ liệu local với Sqlite
● Tích hợp với Web Service: 
HTTP/Socket
● BloC pattern, provider
● Đóng gói và publish app lên 
AppStore/Google Play Store
Học bao lâu 
đi làm được?
● Nhập môn lập trình: 2 - 6 tháng
● Lập trình mobile React Native / Flutter 
cơ bản: 2 ~ 3 tháng
● Thực tập: 1~3 tháng
● Tùy ngộ tính: Nhanh thì 4 tháng, chậm 
thì 1 năm
Một số lời khuyên
- Học tiếng Anh cho tốt.
- Cố gắng tự học, tự làm app demo, tự 
tìm hiểu và giải quyết vấn đề.
- Học / tìm hiểu thêm cả lập trình 
mobile native Android, iOS vì nhiều 
khi cần kết hợp.
- Đi học khoá học / thực tập, tự 
build app bỏ vào CV, đăng app store
- Đọc kỹ tài liệu của React Native / 
Flutter. Cập nhật công nghệ khi có 
công nghệ, version mới.
Chương trình học 
của codefresher.vn (hà nội)
Lập trình Mobile 
React Native / 
Flutter Cơ bản 
Dành cho: SV CNTT hoặc 
người ngành khác đã biết 
chút ít về lập trình trở 
lên (đã học qua ít nhất 
1 NNLT). Nếu chưa biết 
gì về lập trình thì bạn 
có thể đăng ký học 
module cơ bản trước.
Mục tiêu: rút ngắn chi 
phí và thời gian học, 
giúp học viên nhanh 
chóng nắm được nền tảng 
công nghệ React Native / 
Flutter bằng phương pháp 
thực hành hiệu quả, liên 
tục.
Lộ trình: HV học khoá 
React Native / Flutter 
cơ bản trong khoảng 2 - 
3 tháng, build app thực 
tế ra máy Android, iOS 
(có cả lớp offline và 
lớp online cho HV ở xa)
Đội ngũ GV là Senior 
Mobile Developer của 
Trung tâm có phương pháp 
đào tạo đặc biệt, giúp 
người mới học nhanh 
chóng có được kĩ năng cơ 
bản để vào nghề Mobile 
Developer.
Tư vấn, hỏi đáp
fb.com/CodeFresherVN