08/10/2018, 17:51

Tôi muốn lập trình ứng dụng Android – Tôi nên học ngôn ngữ lập trình nào?

Thậm chí nếu bạn không nghĩ rằng chúng ta đã hoàn toàn chuyển sang kỷ nguyên hậu PC, thì một điều rõ ràng là các nền tảng di động đang đóng một vai trò thiết yếu trong cuộc sống của chúng ta. Dù chỉ để cho vui hay để tạo ra lợi nhuận, việc phát triển ứng dụng Android có thể mang lại ...

Thậm chí nếu bạn không nghĩ rằng chúng ta đã hoàn toàn chuyển sang kỷ nguyên hậu PC, thì một điều rõ ràng là các nền tảng di động đang đóng một vai trò thiết yếu trong cuộc sống của chúng ta. Dù chỉ để cho vui hay để tạo ra lợi nhuận, việc phát triển ứng dụng Android có thể mang lại nhiều giá trị, cả về mặt cá nhân và tài chính. Giả sử bạn có đủ trình độ kỹ thuật để có thể tự phát triển các ứng dụng Android, thì ngôn ngữ lập trình nào bạn cần phải học?

Ngôn ngữ chính thức để phát triển Android là Java. Phần lớn Android được viết bằng Java và các hàm API của nó được thiết kế để được gọi chủ yếu từ Java. Bạn có thể phát triển ứng dụng C và C++ bằng cách sử dụng Android Native Development Kit (NDK), tuy nhiên Google không khuyến khích làm theo cách đó. Theo Google, “NDK sẽ không có lợi cho hầu hết các ứng dụng. Là một nhà phát triển, bạn cần phải cân bằng giữa các lợi ích và những hạn chế của nó. Đáng chú ý, việc sử dụng native code trên Android thường không mang lại sự cải thiện hiệu suất đáng kể, nhưng nó luôn luôn làm tăng tính phức tạp trong ứng dụng của bạn.”

Nếu bạn muốn lập trình Android để kiếm tiền, hãy tham gia khóa học “Lập trình Android qua 10 ứng dụng thực tế” từ chuyên gia Nguyễn Bá Thành, CEO WePlay.,JSC – 5 năm khởi nghiệp lập trình mobile – Nổi tiếng với game Bắt Chữ (10 triệu lượt tải – 2014), Ứng dụng Lịch số 1 Việt Nam: Lịch Vạn Niên (5 triệu lượt tải).

Java

Java là một ngôn ngữ lập trình được phát hành đầu tiên bởi Sun Microsystems vào năm 1995. Nó có thể được tìm thấy trên nhiều loại thiết bị khác nhau từ điện thoại thông minh, cho đến máy tính lớn (mainframe). Bạn có thể sử dụng nó trên máy tính để bàn và thậm chí trên Raspberry Pi. Java không biên dịch tới native code mà nó dựa trên một “máy ảo” có thể hiểu một định dạng mã trung gian được gọi là Java bytecode. Mỗi nền tảng chạy Java cần một máy ảo (VM) để thực thi. Trên Android, máy ảo ban đầu được gọi là Dalvik. Google cũng đã bắt đầu xây dựng thế hệ máy ảo tiếp theo của họ gọi là ART. Công việc của những máy ảo này là để thông dịch mã bytecode, chúng thực ra cũng chỉ là một tập các lệnh tương tự như mã máy trong CPU, và thực hiện chương trình trên bộ vi xử lý. Các máy ảo sử dụng rất nhiều công nghệ khác nhau bao gồm just-in-time compilation (JIT) và ahead-of-time compilation (AOT) để tăng tốc độ các quá trình xử lý.

Công việc của những máy ảo này là để thông dịch mã bytecode.

Điều này có nghĩa là bạn có thể phát triển ứng dụng Android trên các hệ điều hành Windows, Linux hoặc OS X và trình biên dịch Java sẽ chuyển mã nguồn đó thành mã bytecode. Chúng sẽ được thực thi trên máy ảo được tích hợp trong Android. Nó khác với mô hình được sử dụng bởi iOS trong đó sử dụng một trình biên dịch native để chuyển mã Objective-C thành mã máy ARM. 

Dưới đây là một ví dụ về code Java trông sẽ như thế nào. Ví dụ này sử dụng một vòng lặp lồng nhau để in ra các chuỗi dấu hoa thị có độ dài tăng dần:

Đây là một ví dụ rất đơn giản và code thực sự cho một ứng dụng trên thực tế phức tạp hơn nhiều.

Có rất nhiều hướng dẫn học lập trình Java trực tuyến. Dưới đây là một số tài liệu từ hãng Oracle:

  • Getting Started – Giới thiệu về công nghệ Java cùng các bài học về cách cài đặt phần mềm phát triển Java và sử dụng nó để tạo ra một chương trình đơn giản.
  • Learning the Java Language – Các bài học mô tả các khái niệm và tính năng cơ bản của ngôn ngữ lập trình Java.
  • Essential Java Classes – Những bài học về exceptions, input/output cơ bản, concurrency, regular expressions, và môi trường nền tảng phát triển.

Bạn có thể cũng muốn xem các hướng dẫn sau đây:

  • Tutorials Point – Java Tutorial
  • Introduction to Programming Using Java

Một khi bạn đã học Java, bước tiếp theo là tìm hiểu làm thế nào sử dụng Java để tạo ra các ứng dụng Android. Để làm điều đó bạn sẽ cần đến Android Software Development Kit (SDK). Android SDK cung cấp tất cả các thư viện API và các công cụ bạn cần để xây dựng một ứng dụng Android.

Việc phát triển một ứng dụng Android cần nhiều kiến thức ngoài Java, bạn cần phải hiểu cách giao diện người dùng Android được xây dựng (sử dụng XML), và làm thế nào để truy cập vào các hệ thống con Android khác nhau. Google có một loạt các hướng dẫn về phát triển Android. Getting Started tutorial sẽ chỉ cho bạn những yếu tố cần thiết nhất của phát triển ứng dụng Android.

Corona

hoc-lap-trinh-android-kiem-tien-17042016-2

Nếu bạn không muốn học Java hoặc làm thế nào để thiết kế giao diện người dùng trong XML, thì vẫn có những sự lựa chọn thay thế. Một là sử dụng Corona SDK. Corona là một SDK cao cấp được xây dựng trên ngôn ngữ lập trình LUA. LUA thì dễ học hơn so với Java và bộ SDK này sẽ làm giảm thiểu những khó khăn trong việc phát triển ứng dụng Android. Một ứng dụng đơn giản hiển thị một hình nền mà bạn chọn và một dòng chữ trên màn hình có thể được viết chỉ trong 3 dòng code với Corona.

Dưới đây là một đoạn code bằng ngôn ngữ LUA, nó có chức năng tương tự như đoạn code Java ở trên:

Dưới đây là chương trình 3 dòng code để hiển thị một hình nền và một dòng chữ lên màn hình:

Dòng code đầu tiên để load hình nền, dòng code thứ hai để hiển thị dòng chữ “Hello, World!”, và dòng code thứ ba để thiết lập màu của văn bản. Thật đơn giản phải không bạn.

Corona bao gồm một bộ emulator phức tạp cho phép bạn chạy chương trình ngay lập tức mà không cần phải biên dịch code của bạn. Khi bạn muốn tạo một file .apk Android bạn tiến hành build thông qua các trình biên dịch trực tuyến của Corona và ứng dụng đó sẽ được lưu vào máy tính của bạn.

Corona được thiết kế chủ yếu dành cho việc làm game (nhưng không độc quyền) và nó bao gồm các thư viện cho sprites, âm thanh, game networking và một physics engine 2D. Hầu như mọi thứ trong Corona được hiển thị thông qua OpenGL. Điều này có nghĩa là bạn có thể tận dụng được khả năng đồ họa của GPU, ngoài ra ứng dụng mặc định là một blank canvas, vì vậy tất cả bạn cần làm là bắt đầu vẽ!

Corona cung cấp một bộ đầy đủ các hướng dẫn và tutorial cho người mới bắt đầu, bao gồm một tài liệu giới thiệu về Lua, và tài liệu Corona in 5 Minutes bao gồm một phần giới thiệu về physics engine 2D.

Bạn có thể tải miễn phí Corona về và sử dụng, nhưng nếu bạn muốn các tính năng như in-app purchasing hoặc khả năng gọi đến những hàm API Android native thì bạn cần phải trả một khoản phí thuê bao hàng tháng.

Phonegap

Nếu bạn đã biết HTML, CSS, và quan trọng nhất là Javascript, thì thay vì phải học Java hoặc LUA, bạn có thể xây dựng các ứng dụng Android sử dụng các kỹ năng bạn đã có. PhoneGap được dựa trên dự án Cordova của Apache. Về cơ bản nó tạo ra một webview mà bạn có thể thao tác sử dụng Javascript. Ứng dụng web có thể tương tác với các tính năng thiết bị khác nhau giống như một ứng dụng native, bằng cách tham chiếu tới file cordova.js để có được các API binding. Các chức năng native mà PhoneGap hỗ trợ bao gồm accelerometer, máy ảnh, vị trí hiện tại, lưu trữ nội bộ và nhiều thứ khác.

Dưới đây là cách bạn xuất ra các chuỗi dấu hoa thị trên một trang web thông qua Javascript:

Những lựa chọn khác

Java, LUA và HTML/Javascript không phải là lựa chọn duy nhất để phát triển ứng dụng Android. Bạn có thể sử dụng Titanium, một nền tảng phát triển bằng Javascript khác, và Gamesalad, một mobile game creator cho phép bạn tạo ra các trò game trên di động mà không cần phải lập trình!

Nếu bạn có kinh nghiệm sử dụng bất kỳ nền tảng phát triển ứng dụng Android nào khác, hoặc nếu bạn muốn giới thiệu một nền tảng thú vị, thì hãy chia sẻ trong phần bình luận phía dưới nhé!

Viết bởi Hồ Sỹ Hùng

Techtalk via Techmaster

0