daipt
Well-known member
Trong lập trình di động, chúng ta thường được nghe đến các khái niệm như mobile native, web-based hay hybrid app. Đặc biệt hiện nay phần đông các lập trình viên mobile chọn làm về ứng dụng native. Vậy mobile native là gì? Mobile native có ưu điểm gì là được phần đông mobile dev lựa chọn. Bài viết này mình sẽ cùng các bạn phân tích để tìm hiểu rõ hơn vấn đề này nhé.
Mobile native là gì?
Mobile native là thuật ngữ dùng để chỉ những ứng dụng được viết bằng ngôn ngữ lập trình tương ứng cho từng nền tảng hệ điều hành mobile. Như chúng ta biết hiện nay thì 2 nền tảng mobile chiếm thị phần lớn nhất là Android của Google và iOS của Apple. Số liệu năm 2022 cho thấy 2 nền tảng này chiếm đến hơn 99% thị phần trong thị trường mobile toàn cầu.
2 ông lớn Google và Apple đều trang bị cho lập trình viên của họ những bộ công cụ, IDE, ngôn ngữ lập trình của riêng mình: với Android là bộ Android Studio, có thể viết bằng Java hay Kotlin; còn iOS được Apple trang bị IDE Xcode và viết bằng Objective-C hoặc Swift.
Điểm mấu chốt ở đây là mỗi ứng dụng mobile native khi được viết phải viết bằng 1 ngôn ngữ cố định và chỉ chạy được trên 1 nền tảng cố định; không thể mang code đó sang chạy lên 1 hệ điều hành khác được. Ví dụ bạn lựa chọn viết 1 ứng dụng native iOS bằng ngôn ngữ Swift; bạn chỉ có thể chạy nó trên các thiết bị sử dụng hệ điều hành iOS (như iPhone, iPad, …) của Apple, không có cách nào để build lại hay tái sử dụng code để chạy ứng dụng đó trên 1 thiết bị cài hệ điều hành Android.
Nghe có vẻ khá bất tiện khi so sánh với các nền tảng như web-based hay cross-platform hiện nay, khi chỉ viết 1 lần code và có thể build / chạy trên nhiều nền tảng khác nhau đúng không? Tuy nhiên không phải ngẫu nhiên mà các lập trình viên lại chọn mobile native, vậy ưu điểm của nó là gì?
Ưu điểm của Mobile native
Khi nào nên sử dụng Mobile Native
Đối với 1 một nhà phát triển cần xây dựng ứng dụng của họ cho việc tiếp cận và thử nghiệm thị trường, lúc này yếu tố rút ngắn thời gian ra mắt sản phẩm là điều quan trọng nhất. Lúc đó việc lựa chọn phương án sử dụng cross-platform hay hybrid app là điều được ưu tiên hơn. Với mobile native, chúng ta sẽ có thể tạo ra được các ứng dụng 1 cách ổn định, tối ưu hóa về hiệu năng và trải nghiệm sử dụng; vì thế thường các nhà phát hành khi muốn đưa ra ứng dụng cung cấp cho khách hàng 1 trải nghiệm tốt sẽ lựa chọn phương án này. Các ứng dụng cần xử lý nhiều tác vụ nặng, hay giải quyết các bài toán phức tạp như thương mại điện tử, chỉnh sửa xử lý video, … sẽ thường được phát triển bằng ngôn ngữ native.
Kinh nghiệm khi bắt đầu học Mobile Native
Mobile native là gì?
Mobile native là thuật ngữ dùng để chỉ những ứng dụng được viết bằng ngôn ngữ lập trình tương ứng cho từng nền tảng hệ điều hành mobile. Như chúng ta biết hiện nay thì 2 nền tảng mobile chiếm thị phần lớn nhất là Android của Google và iOS của Apple. Số liệu năm 2022 cho thấy 2 nền tảng này chiếm đến hơn 99% thị phần trong thị trường mobile toàn cầu.
2 ông lớn Google và Apple đều trang bị cho lập trình viên của họ những bộ công cụ, IDE, ngôn ngữ lập trình của riêng mình: với Android là bộ Android Studio, có thể viết bằng Java hay Kotlin; còn iOS được Apple trang bị IDE Xcode và viết bằng Objective-C hoặc Swift.
Điểm mấu chốt ở đây là mỗi ứng dụng mobile native khi được viết phải viết bằng 1 ngôn ngữ cố định và chỉ chạy được trên 1 nền tảng cố định; không thể mang code đó sang chạy lên 1 hệ điều hành khác được. Ví dụ bạn lựa chọn viết 1 ứng dụng native iOS bằng ngôn ngữ Swift; bạn chỉ có thể chạy nó trên các thiết bị sử dụng hệ điều hành iOS (như iPhone, iPad, …) của Apple, không có cách nào để build lại hay tái sử dụng code để chạy ứng dụng đó trên 1 thiết bị cài hệ điều hành Android.
Nghe có vẻ khá bất tiện khi so sánh với các nền tảng như web-based hay cross-platform hiện nay, khi chỉ viết 1 lần code và có thể build / chạy trên nhiều nền tảng khác nhau đúng không? Tuy nhiên không phải ngẫu nhiên mà các lập trình viên lại chọn mobile native, vậy ưu điểm của nó là gì?
Ưu điểm của Mobile native
- Là con đẻ của các hệ điều hành
- Hiệu năng tối ưu
- Khả năng giao tiếp phần cứng
Khi nào nên sử dụng Mobile Native
Đối với 1 một nhà phát triển cần xây dựng ứng dụng của họ cho việc tiếp cận và thử nghiệm thị trường, lúc này yếu tố rút ngắn thời gian ra mắt sản phẩm là điều quan trọng nhất. Lúc đó việc lựa chọn phương án sử dụng cross-platform hay hybrid app là điều được ưu tiên hơn. Với mobile native, chúng ta sẽ có thể tạo ra được các ứng dụng 1 cách ổn định, tối ưu hóa về hiệu năng và trải nghiệm sử dụng; vì thế thường các nhà phát hành khi muốn đưa ra ứng dụng cung cấp cho khách hàng 1 trải nghiệm tốt sẽ lựa chọn phương án này. Các ứng dụng cần xử lý nhiều tác vụ nặng, hay giải quyết các bài toán phức tạp như thương mại điện tử, chỉnh sửa xử lý video, … sẽ thường được phát triển bằng ngôn ngữ native.
Kinh nghiệm khi bắt đầu học Mobile Native
- Như đã đề cập ở trên, nếu bạn có định hướng theo đuổi trở thành 1 lập trình viên mobile native, trước hết hãy xác định nền tảng mà bạn sẽ làm: Android hay iOS. Tất nhiên bạn có thể học song song cả 2 cùng lúc tuy nhiên lời khuyên dành cho bạn là hãy làm tốt 1 thứ trước, sau đó việc học ngôn ngữ còn lại sẽ trở lên dễ dàng hơn.
- Việc lựa chọn nền tảng cũng phụ thuộc hay quyết định thiết bị mà bạn sẽ trang bị để học tập: nếu chọn iOS, bắt buộc phải có macbook và các thiết bị chạy iOS như iPhone, iPad, ngược lại thì Android có thể chạy tốt trên các hệ điều hành Window, MacOS hay Linux nên bạn có nhiều sự lựa chọn hơn.
- Về ngôn ngữ, theo xu hướng hiện tại thì với Android chúng ta nên sử dụng Kotlin, iOS thì sử dụng Swift để lập trình. Các bạn nên tự đọc tài liệu và hoàn thành các bài học được thiết kế sẵn cho từng ngôn ngữ:
- Android Kotlin: https://developer.android.com/courses/android-basics-kotlin/course
- iOS Swift: https://developer.apple.com/tutorials/swiftui
- Sau khi trang bị được đầy đủ kiến thức cơ bản về ngôn ngữ, cũng như thao tác với các IDE của từng nền tảng; hãy bắt đầu vào những project thực tế và tạo ra các ứng dụng mà bạn mong muốn. Lúc này bạn cũng dễ dàng apply vào các công ty, join vào các dự án về mobile native để nâng cao khả năng cũng như hiểu biết sâu hơn về ngành.