Khi nghĩ đến việc code app mobile, bạn không chỉ cần quan tâm đến frontend (giao diện người dùng) mà còn phải nắm rõ cả backend (server-side) nữa nhé! Thường thì team dev làm frontend và backend sẽ khác nhau, nhưng họ vẫn phải làm việc chung với nhau cực kỳ ăn ý (đặc biệt trong các công ty lớn).
Trong bài viết này, mình sẽ review những ngôn ngữ lập trình iOS và Android đỉnh nhất, cùng các framework phát triển mobile app và mobile backend cho anh em đây!
Các kiểu app mobile có gì hot?
Từ góc nhìn coding, các developer có thể tạo ra một trong ba loại app mobile sau:
Native mobile apps là những app được viết bằng ngôn ngữ mà hệ điều hành của thiết bị hỗ trợ nguyên bản. Code của app có thể truy cập 100% API nền tảng và hệ điều hành cung cấp thư viện UI component. Quá trình build sẽ chuyển đổi code này thành ứng dụng thực thi với bytecode gốc của hệ điều hành.
Cross-platform mobile apps là những app được viết bằng một ngôn ngữ nhưng có thể chạy trên mọi nền tảng. Với cross-platform, ngôn ngữ bạn dùng để viết app có thể không phải là ngôn ngữ native của hệ điều hành thiết bị. Điều này có nghĩa là code có thể được đóng gói, liên kết hoặc cross-compile thành bytecode để thực thi trực tiếp trên OS với sự hỗ trợ của một số thư viện.
Mobile web apps là dạng ứng dụng nhẹ nhàng mà bạn chỉ cần mở URL trên trình duyệt thiết bị, nhưng trải nghiệm giống hệt một app mobile thông thường. Mobile websites không được cài đặt như một app trên thiết bị, nhưng vẫn là một hướng đi quan trọng cần cân nhắc khi phát triển cho mobile. Developers có thể sử dụng hai chuẩn lập trình web để tạo mobile web apps:
Responsive web programming là phong cách lập trình web mà layout website tự động sắp xếp lại để phù hợp với kích thước màn hình thiết bị. Thay vì cuộn ngang, nội dung sẽ snap lại để vừa với độ rộng màn hình. Những website này cũng có thể được dùng trên desktop luôn nhé!
Progressive web programming tạo ra các progressive web apps - về cơ bản là website thông thường nhưng trông như một app mobile khi truy cập từ trình duyệt trên di động. Chúng mang lại trải nghiệm gần như app thật sự. Progressive web apps có thể thêm shortcut vào màn hình chính (để có icon app), và còn chạy được offline khi không kết nối internet bằng cách cache nội dung local trên thiết bị nữa!
Phát triển app Android - bắt đầu từ đâu?
Android là nền tảng mã nguồn mở được phát triển và quảng bá chủ yếu bởi Google. Google có thương hiệu thiết bị riêng là Pixel (trước đó là Nexus). Tuy nhiên, có hàng ngàn nhà sản xuất như Samsung, Huawei, Xiaomi và Oppo bán điện thoại và tablet mang thương hiệu riêng chạy Android và các phiên bản phái sinh của Android OS như CyanogenMod và MIUI. Thiết bị Android có vô vàn kích thước, từ phone đến tablet, nhờ vào sự đa dạng của các nhà sản xuất với nhiều model khác nhau đáp ứng nhu cầu người dùng.
Để build app Android, bạn cần Android development toolkit đi kèm SDK, debuggers và emulators cần thiết. Về IDE thì Android Studio là phổ biến nhất, nhưng cũng có các IDE khác như Apache Netbeans và IntelliJ IDEA. Bạn có thể setup môi trường dev trên bất kỳ OS nào (Mac, Windows hay Linux). Android dùng Gradle cho build system, và Android Studio đi kèm code templates cùng các công cụ đánh giá và cải thiện hiệu suất.
Thư viện third-party được thêm vào app thông qua lệnh package Gradle. Số lượng lớn Android SDKs của bên thứ ba được phân phối qua package manager gọi là maven, nổi tiếng với cái tên mavencentral. Các app được build cho Android sẽ phân phối trên Google Play store mặc định do Google quản lý.
App cho thiết bị Android có thể được tạo bằng cách dùng native Android SDK với Java và Kotlin, hoặc với các công nghệ cross-platform khác nhau được lập trình dựa trên SDK của framework đó nhưng target cho Android.
Java - ông tổ ngôn ngữ Android
Java là ngôn ngữ mặc định để viết app Android từ khi nền tảng Android ra đời năm 2008. Java là ngôn ngữ lập trình hướng đối tượng được phát triển ban đầu bởi Sun Microsystems năm 1995 (giờ thuộc sở hữu của Oracle). Nó là ngôn ngữ cực kỳ phổ biến như một ngôn ngữ hướng đối tượng thuần túy (so với C++) và nhanh chóng được nền tảng Android áp dụng.
Java compile thành bytecode được thông dịch khi runtime bởi Java Virtual Machine (JVM) chạy trên OS. Bạn viết mobile app bằng Java và lập trình với Android SDK. Những người chê Java nói rằng Java cần nhiều boilerplate code để làm một tác vụ đơn giản, và các khái niệm như exceptions khó hiểu. Tuy nhiên, đây vẫn là ngôn ngữ được sử dụng rộng rãi nhất cho Android app development cho đến nay.
Nhưng mà, từ 2019, Kotlin giờ đã là ngôn ngữ được ưu tiên cho Android development theo như Google thông báo rồi nhé!
Kotlin - tân binh đang lên ngôi
Năm 2017, Google thông báo sẽ hỗ trợ Kotlin như một ngôn ngữ hạng nhất thay thế cho lập trình Android. Kotlin có thể tương tác với Java, và tất cả thư viện Java đều có thể được gọi từ Kotlin. Nói một cách thoải mái, Kotlin là phiên bản Java gọn gàng hơn. Đường cong học tập từ Java sang Kotlin rất mượt mà. Ở cấp độ thực thi, Kotlin compile thành Java Bytecode. Còn bối rối về app development? Liên hệ với một android application development company nhé!
Phát triển app cho nền tảng Web
Tuy không phải là app cài đặt theo nghĩa thực sự, nhưng cực kỳ quan trọng để xem xét các giao diện được deploy bằng cách điều hướng đến URL web (websites). Deploy websites có giá trị cho một số use case nhất định, chẳng hạn như app cho sự kiện ngắn hạn hoặc tạm thời, hoặc để thu thập lượng nhỏ thông tin như tên và địa chỉ mà không bắt người dùng phải cài đặt app. Với sự xuất hiện của progressive web apps (PWAs), trải nghiệm người dùng giữa app và website gần như không phân biệt được. Những mobile-optimized websites này được viết bằng công nghệ web (HTML, JavaScript và CSS) và thường là một UI framework.
Mobile-optimized websites
Sử dụng bất kỳ framework nào như Material, Bootstrap hay Foundation, bạn có thể deploy một responsive website. Responsive web design có layout tự điều chỉnh theo không gian có sẵn để mang lại trải nghiệm native. Ví dụ, một website có thể có layout 5 cột trên trình duyệt PC, nhưng sẽ render thành layout 2 cột khi xem từ trình duyệt trên mobile ở chế độ portrait. Hai điểm khác biệt chính giữa mobile-optimized website và xem website thông thường trên điện thoại là bạn không cần phải zoom in để xem nội dung và không có scroll ngang!
Progressive web apps (PWAs) - tương lai của web mobile
Progressive web apps thực chất là websites nhưng render giống như native app. Trình duyệt cũng đã tiến hóa để nhận diện đây là PWA và sẽ loại bỏ phần browser xung quanh để cho web content chiếm toàn bộ màn hình thiết bị. Khi bạn thêm shortcut cho website này, nó tạo icon trên màn hình chính mobile, để bạn có thể khởi chạy giống như một app thông thường. Trình duyệt cũng lưu nội dung chỉ định local trên thiết bị để bạn có thời gian load nhanh, tin cậy và trải nghiệm offline mượt mà nữa! Điều này đạt được bằng cách sử dụng:
• Service worker chạy nền để pre-cache nội dung
• Responsive design cho rendering tối ưu
• Web application manifest để thông báo cho browser rằng nó có thể cài đặt được
Tổng kết lại nào!
Nguồn: tinhte.vn
Trong bài viết này, mình sẽ review những ngôn ngữ lập trình iOS và Android đỉnh nhất, cùng các framework phát triển mobile app và mobile backend cho anh em đây!
Các kiểu app mobile có gì hot?
Từ góc nhìn coding, các developer có thể tạo ra một trong ba loại app mobile sau:
Native mobile apps là những app được viết bằng ngôn ngữ mà hệ điều hành của thiết bị hỗ trợ nguyên bản. Code của app có thể truy cập 100% API nền tảng và hệ điều hành cung cấp thư viện UI component. Quá trình build sẽ chuyển đổi code này thành ứng dụng thực thi với bytecode gốc của hệ điều hành.
Cross-platform mobile apps là những app được viết bằng một ngôn ngữ nhưng có thể chạy trên mọi nền tảng. Với cross-platform, ngôn ngữ bạn dùng để viết app có thể không phải là ngôn ngữ native của hệ điều hành thiết bị. Điều này có nghĩa là code có thể được đóng gói, liên kết hoặc cross-compile thành bytecode để thực thi trực tiếp trên OS với sự hỗ trợ của một số thư viện.
Mobile web apps là dạng ứng dụng nhẹ nhàng mà bạn chỉ cần mở URL trên trình duyệt thiết bị, nhưng trải nghiệm giống hệt một app mobile thông thường. Mobile websites không được cài đặt như một app trên thiết bị, nhưng vẫn là một hướng đi quan trọng cần cân nhắc khi phát triển cho mobile. Developers có thể sử dụng hai chuẩn lập trình web để tạo mobile web apps:
Responsive web programming là phong cách lập trình web mà layout website tự động sắp xếp lại để phù hợp với kích thước màn hình thiết bị. Thay vì cuộn ngang, nội dung sẽ snap lại để vừa với độ rộng màn hình. Những website này cũng có thể được dùng trên desktop luôn nhé!
Progressive web programming tạo ra các progressive web apps - về cơ bản là website thông thường nhưng trông như một app mobile khi truy cập từ trình duyệt trên di động. Chúng mang lại trải nghiệm gần như app thật sự. Progressive web apps có thể thêm shortcut vào màn hình chính (để có icon app), và còn chạy được offline khi không kết nối internet bằng cách cache nội dung local trên thiết bị nữa!
Phát triển app Android - bắt đầu từ đâu?
Android là nền tảng mã nguồn mở được phát triển và quảng bá chủ yếu bởi Google. Google có thương hiệu thiết bị riêng là Pixel (trước đó là Nexus). Tuy nhiên, có hàng ngàn nhà sản xuất như Samsung, Huawei, Xiaomi và Oppo bán điện thoại và tablet mang thương hiệu riêng chạy Android và các phiên bản phái sinh của Android OS như CyanogenMod và MIUI. Thiết bị Android có vô vàn kích thước, từ phone đến tablet, nhờ vào sự đa dạng của các nhà sản xuất với nhiều model khác nhau đáp ứng nhu cầu người dùng.
Để build app Android, bạn cần Android development toolkit đi kèm SDK, debuggers và emulators cần thiết. Về IDE thì Android Studio là phổ biến nhất, nhưng cũng có các IDE khác như Apache Netbeans và IntelliJ IDEA. Bạn có thể setup môi trường dev trên bất kỳ OS nào (Mac, Windows hay Linux). Android dùng Gradle cho build system, và Android Studio đi kèm code templates cùng các công cụ đánh giá và cải thiện hiệu suất.
Thư viện third-party được thêm vào app thông qua lệnh package Gradle. Số lượng lớn Android SDKs của bên thứ ba được phân phối qua package manager gọi là maven, nổi tiếng với cái tên mavencentral. Các app được build cho Android sẽ phân phối trên Google Play store mặc định do Google quản lý.
App cho thiết bị Android có thể được tạo bằng cách dùng native Android SDK với Java và Kotlin, hoặc với các công nghệ cross-platform khác nhau được lập trình dựa trên SDK của framework đó nhưng target cho Android.
Java - ông tổ ngôn ngữ Android
Java là ngôn ngữ mặc định để viết app Android từ khi nền tảng Android ra đời năm 2008. Java là ngôn ngữ lập trình hướng đối tượng được phát triển ban đầu bởi Sun Microsystems năm 1995 (giờ thuộc sở hữu của Oracle). Nó là ngôn ngữ cực kỳ phổ biến như một ngôn ngữ hướng đối tượng thuần túy (so với C++) và nhanh chóng được nền tảng Android áp dụng.
Java compile thành bytecode được thông dịch khi runtime bởi Java Virtual Machine (JVM) chạy trên OS. Bạn viết mobile app bằng Java và lập trình với Android SDK. Những người chê Java nói rằng Java cần nhiều boilerplate code để làm một tác vụ đơn giản, và các khái niệm như exceptions khó hiểu. Tuy nhiên, đây vẫn là ngôn ngữ được sử dụng rộng rãi nhất cho Android app development cho đến nay.
Nhưng mà, từ 2019, Kotlin giờ đã là ngôn ngữ được ưu tiên cho Android development theo như Google thông báo rồi nhé!
Kotlin - tân binh đang lên ngôi
Năm 2017, Google thông báo sẽ hỗ trợ Kotlin như một ngôn ngữ hạng nhất thay thế cho lập trình Android. Kotlin có thể tương tác với Java, và tất cả thư viện Java đều có thể được gọi từ Kotlin. Nói một cách thoải mái, Kotlin là phiên bản Java gọn gàng hơn. Đường cong học tập từ Java sang Kotlin rất mượt mà. Ở cấp độ thực thi, Kotlin compile thành Java Bytecode. Còn bối rối về app development? Liên hệ với một android application development company nhé!
Phát triển app cho nền tảng Web
Tuy không phải là app cài đặt theo nghĩa thực sự, nhưng cực kỳ quan trọng để xem xét các giao diện được deploy bằng cách điều hướng đến URL web (websites). Deploy websites có giá trị cho một số use case nhất định, chẳng hạn như app cho sự kiện ngắn hạn hoặc tạm thời, hoặc để thu thập lượng nhỏ thông tin như tên và địa chỉ mà không bắt người dùng phải cài đặt app. Với sự xuất hiện của progressive web apps (PWAs), trải nghiệm người dùng giữa app và website gần như không phân biệt được. Những mobile-optimized websites này được viết bằng công nghệ web (HTML, JavaScript và CSS) và thường là một UI framework.
Mobile-optimized websites
Sử dụng bất kỳ framework nào như Material, Bootstrap hay Foundation, bạn có thể deploy một responsive website. Responsive web design có layout tự điều chỉnh theo không gian có sẵn để mang lại trải nghiệm native. Ví dụ, một website có thể có layout 5 cột trên trình duyệt PC, nhưng sẽ render thành layout 2 cột khi xem từ trình duyệt trên mobile ở chế độ portrait. Hai điểm khác biệt chính giữa mobile-optimized website và xem website thông thường trên điện thoại là bạn không cần phải zoom in để xem nội dung và không có scroll ngang!
Progressive web apps (PWAs) - tương lai của web mobile
Progressive web apps thực chất là websites nhưng render giống như native app. Trình duyệt cũng đã tiến hóa để nhận diện đây là PWA và sẽ loại bỏ phần browser xung quanh để cho web content chiếm toàn bộ màn hình thiết bị. Khi bạn thêm shortcut cho website này, nó tạo icon trên màn hình chính mobile, để bạn có thể khởi chạy giống như một app thông thường. Trình duyệt cũng lưu nội dung chỉ định local trên thiết bị để bạn có thời gian load nhanh, tin cậy và trải nghiệm offline mượt mà nữa! Điều này đạt được bằng cách sử dụng:
• Service worker chạy nền để pre-cache nội dung
• Responsive design cho rendering tối ưu
• Web application manifest để thông báo cho browser rằng nó có thể cài đặt được
Tổng kết lại nào!
Nguồn: tinhte.vn