Bài giảng Lập trình di động đa nền tảng

Ư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

pdf20 trang | Chia sẻ: thanhle95 | Lượt xem: 454 | Lượt tải: 1download
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