Lập trình Python trên thiết bị Android

Có rất nhiều lý do khiến bạn thích thú muốn trở thành một lập trình viên phát triển ứng dụng Android. Bạn có thể nghĩ việc xây dựng một ứng dụng sẽ mang lại cho bạn lợi nhuận đáng kể hoặc thậm chí là thay đổi thế giới. Đó đều là những động lực mạnh mẽ. Một số người muốn học cách viết mã, chương trình và xây dựng những ứng dụng, công cụ để thỏa mãn đam mê cá nhân. Android là hệ điều hành mở và dễ tiếp cận, vì vậy việc bắt đầu thực hiện những mục tiêu của bạn tại đây là điều đúng đắn.

Tuy nhiên, việc học lập trình trên Android không phải lúc nào cũng dễ dàng. Trước đây, khi bạn muốn chạy một chương trình đơn giản “Hello World”, bạn cần phải tải Android Studio, Android SDK và Java JDK. Bạn cần cài đặt các biến môi trường, tạo file APK và cấp quyền truy cập vào điện thoại của bạn. Và sau tất cả, bạn lại phải đối mặt với các vấn đề như hiển thị chương trình trên màn hình. Có quá nhiều vấn đề “cản trở” bạn trước khi đạt được mục tiêu của mình.

Đó là lý do tại sao hiện nay rất nhiều lập trình viên chọn Python. Python là một giải pháp thay thế giúp bạn vượt qua các khó khăn trên. Python lập trình rất đặc biệt, nó đơn giản, “thanh lịch” và rất phù hợp cho người mới bắt đầu. Một điểm nổi bật khác là bạn có thể bắt đầu xây dựng và thử nghiệm các đoạn mã trên thiết bị Android của mình gần như ngay lập tức.

Tóm lại, sử dụng Python là một trong những cách nhanh nhất để bắt đầu và thử nghiệm một số đoạn mã đơn giản trên Android. Khi bạn quen thuộc với Python, bạn có thể nâng cấp điện thoại của mình với những tính năng độc đáo bạn tự tạo ra và có thể xây dựng một ứng dụng hoàn chỉnh.

QPython cho Android

Nhưng làm thế nào để bắt đầu với Python? Nếu bạn muốn học Python trên PC, hãy tải phiên bản mới nhất của Python 2 hoặc Python 3 cùng với môi trường phát triển tích hợp (IDE). Bạn có thể tìm hiểu cách cài đặt Python trên máy tính của mình tại đây.

Tuy nhiên, trong bài viết này, chúng ta sẽ không tìm hiểu về vấn đề đó. Để bắt đầu với Python trên Android, bạn cần có QPython (dùng để chạy mã Python 2) hoặc QPython3 (chạy mã Python 3) trên thiết bị của mình.

Python là một dự án liên tục được cải tiến và phát triển, vì vậy để đảm bảo mã của bạn chạy một cách mượt mà nhất có thể, bạn nên tải phiên bản Python mới nhất. Trong bài viết này, chúng tôi sử dụng Python 3.6.1.

Lập trình Python trên thiết bị Android

Tuy nhiên, khi nâng cấp từ Python 2 lên Python 3, có một số vấn đề cần chỉnh sửa. Bạn sẽ cần thực hiện một số điều chỉnh khi muốn chạy mã Python 2 trên phiên bản cao hơn, một số thư viện thường được sử dụng trong Python 2 cũng có thể không hoạt động. Vì vậy, nếu bạn là một người mới bắt đầu trong lập trình Python, hãy bắt đầu với Python 3 để có những kiến thức mới nhất. Tuy nhiên, điều này không có nghĩa là bạn không cần biết về Python 2. Trong tương lai, có thể bạn cần quay trở lại phiên bản 2 để làm việc với các thư viện hỗ trợ phiên bản cũ.

Thư viện chính mà chúng tôi sẽ sử dụng trong bài viết này là Kivy và may mắn là nó đã được hỗ trợ trong Python 3.

Viết mã đơn giản với các biến và input

Sau khi tải và cài đặt QPython3, bạn đã có một môi trường để bắt đầu lập trình. Bạn có thể tải các đoạn mã từ đây và trong tương lai, chúng rất hữu ích khi bạn tạo ra các ứng dụng gốc của riêng mình, ví dụ như các công cụ toán học, công cụ kiểm tra học tập hoặc công cụ lưu trữ và tìm kiếm dữ liệu… Tất cả đều nằm trong tay bạn.

Vì vậy, hãy học cách xây dựng các công cụ đó. Đầu tiên, bắt đầu với ứng dụng “Hello World”.

Để làm điều này, mở QPython3 và chọn “Editor”. Đây là nơi bạn có thể viết mã hoặc chỉnh sửa các tệp lệnh khác. Theo cá nhân tôi, việc chỉnh sửa sẽ dễ dàng hơn nếu bạn có một bàn phím và chuột không dây khi làm việc ở đây.

Bây giờ hãy chạy lệnh:

print("Hello World")

Sau đó, lưu lệnh với đuôi “.py”. Bạn có thể lưu bằng cách nhấp vào biểu tượng đĩa mềm ở góc dưới cùng bên phải. Lưu ý là lệnh “print” phải viết thường.

Lập trình Python trên thiết bị Android

Chạy chương trình bằng cách nhấp vào biểu tượng mũi tên và bạn sẽ thấy dòng chữ “Hello World” xuất hiện trên màn hình cùng với rất nhiều dòng chữ khác. Đây là nơi chương trình của bạn sẽ chạy, gọi là bảng điều khiển (console). Bạn có thể thêm các tính năng đồ họa cho bảng điều khiển này.

Tiếp theo, hãy thử với các biến. Biến là tên của một vùng trong bộ nhớ được sử dụng để lưu trữ thông tin và dữ liệu. Khác với các ngôn ngữ lập trình khác, khi lập trình Python, bạn không cần phải xác định biến trước. Hãy xem các ví dụ sau:

Name = "Adam"
print("Hello " + Name)

Đây là một đoạn mã sử dụng biến “Name” và gán giá trị “Adam” để chào đón người dùng.

Bạn cũng có thể thực hiện điều tương tự với ví dụ sau:

Number = 7
print("The number is " + str(Number))

Ưu điểm thực tế của việc sử dụng biến là nó cho phép bạn thay đổi các phần tử trong đoạn mã. Bạn có thể viết “Number = Number + 1” để tăng giá trị dần dần. Tương tự, hãy tạo một ứng dụng nhỏ như sau:

Name = input("What is your name please?")
print("Why hello " + Name)

Lệnh “input” cho phép bạn lấy dữ liệu từ người dùng. Trong trường hợp này, bạn đang sử dụng dữ liệu đầu vào của người dùng để xác định biến “Name”. Lưu ý rằng biến phân biệt chữ hoa và chữ thường. Các lệnh trong Python được viết bằng chữ thường, do đó việc khai báo biến bằng chữ hoa sẽ dễ dàng phân biệt hơn.

Lập trình Python trên thiết bị Android

Như vậy, một vài dòng mã nhỏ này đã mang lại những điều thú vị và độc đáo riêng cho thiết bị Android của bạn. Một ví dụ khác về mã là đếm số tuổi của bạn như sau:

Age = int(input("How old are you?"))
print("In", 100 - Age, "years, you will be 100! That's around", (100 - Age) * 365, "days!")

Chương trình nhỏ này cho biết còn bao nhiêu ngày nữa bạn sẽ đạt đến tuổi 100. Ở đây, chúng tôi sử dụng một số toán tử như nhân “*” và trừ “-“. Để xác định đầu vào là số nguyên, bạn cần khai báo “int” trước lệnh nhập.

Các vòng lặp WHILE và các câu lệnh IF

Vòng lặp WHILE trong Python được sử dụng để lặp lại một đoạn mã khi điều kiện đúng. Thêm các dòng mã sau vào đoạn mã tuổi trên:

Count = 0
print("Let's count your remaining years...")
while Count < Age:
    Count += 1
    print("That's", Count, "years,", Age - Count, "to go!")
print("And we're done!")

Lưu ý rằng hai dòng cuối cùng được thụt lề vào trong vòng lặp. Nếu bạn đã học C, C++ hoặc Java, bạn sẽ biết rằng ngôn ngữ lập trình này sử dụng dấu ngoặc nhọn “{}” để xác định các khối mã. Trong Python, điều này khác biệt, các khối mã được xác định bằng thụt lề. Đó là lý do tại sao thụt lề trong Python rất quan trọng, nếu bạn không để ý, chương trình sẽ báo lỗi ngay lập tức.

Ở bên cạnh vòng lặp, câu lệnh IF cũng rất quan trọng trong lập trình Python. Câu lệnh IF được sử dụng để thực thi các lệnh theo điều kiện, nếu điều kiện đúng, lệnh sẽ được thực hiện, nếu không, lệnh sẽ không được thực hiện. Ví dụ như sau:

if Age > 50:
    print("You're over halfway!")

Ngoài ra, Python cũng có câu lệnh IF…ELSE. Nếu điều kiện đúng, khối lệnh IF sẽ được thực thi, nếu không, khối lệnh ELSE sẽ được thực thi.

if Age > 50:
    print("You're over halfway!")
else:
    print("Ah, still young!")

Câu lệnh ELIF cũng rất hữu ích, nó là viết tắt của ELSE IF, cho phép chúng ta kiểm tra nhiều điều kiện. Nếu điều kiện đầu không đúng, nó sẽ kiểm tra điều kiện trong khối ELIF tiếp theo và tiếp tục như vậy cho đến cuối. Nếu tất cả các điều kiện đều sai, nó sẽ thực thi khối lệnh ELSE.

if Age > 50:
    print("You're over halfway!")
elif Age < 50:
    print("Ah, still young!")
else:
    print("You're exactly halfway!")

Ở đây, Python sẽ thông báo “You’re exactly halfway!” khi người dùng chính xác 50 tuổi (không lớn hơn 50, cũng không nhỏ hơn 50).

Sử dụng thư viện và tạo ra một trò chơi đơn giản

Sử dụng các đoạn mã đã giới thiệu ở trên đã đủ để bạn tạo ra một trò chơi nhỏ đơn giản. Trước khi làm điều đó, hãy tìm hiểu cách sử dụng thư viện trong Python.

Python đi kèm với thư viện chuẩn, gọi là “Python Standard Library”, không cần cài đặt bất kỳ chương trình nào khác. Trò chơi mà chúng ta sẽ tạo dưới đây là trò chơi đoán số “cao hơn hoặc thấp hơn”. Để thực hiện điều này, chúng ta cần tạo một số ngẫu nhiên và không có lệnh nào trong Python có thể thực hiện. Viết lệnh như sau:

from random import randint

Sau đó, chúng ta có thể sử dụng hàm randint(lowest, highest) với hai tham số là số nhỏ nhất và số lớn nhất.

Lập trình Python trên thiết bị Android

Hoàn thành trò chơi bằng đoạn mã sau:

from random import randint

RandomNumber = randint(0, 10)
print("I'm thinking of a number between 1 and 10, can you guess what it is?")

Guess = 11
while Guess != RandomNumber:
    Guess = int(input("Have a guess..."))
    if Guess > RandomNumber:
        print("Too high!")
    if Guess < RandomNumber:
        print("Too low!")
print("Got it!")

Mặc dù đây chưa phải là ứng dụng Android nhưng bạn có thể tạo các đoạn mã như thế này, thậm chí bạn có thể chia sẻ chúng với bạn bè hoặc đồng nghiệp nếu họ sử dụng QPython3.

Vì vậy, bằng cách sử dụng Python Standard Library, bạn có thể ghi file, tải xuống mọi thứ từ website và thực hiện rất nhiều thứ khác trên thiết bị của mình.

Tất nhiên, vẫn còn nhiều thứ khác để học. Ví dụ, bạn có thể tạo một class rất đơn giản như sau:

def counter(Name):
    length = len(Name)
    return length

NamePlease = input("Name length counter! Enter your name ")
print(counter(NamePlease))

Hoặc tạo một danh sách:

List = ["Apples", "Oranges", "Pears"]

Có rất nhiều tài nguyên khác của Python mà bạn có thể khám phá. Bạn có thể học Python cùng Quantrimang tại đây.

Sử dụng Python Android Scripting Layer

Nếu bạn chỉ muốn tạo một ứng dụng để truy cập các tính năng gốc của thiết bị của mình, hãy sử dụng thư viện SL4A, hay còn được gọi là Python Android Scripting Layer. Thư viện này cho phép bạn làm các chức năng như hiển thị hộp thoại, đọc cảm xúc hoặc truy cập vào máy ảnh.

Chương trình dưới đây sẽ mở máy ảnh và lưu ảnh của bạn:

import sl4a

droid = sl4a.Android()
droid.cameraInteractiveCapturePicture("/sdcard/qpython.jpg")

Hoặc bạn muốn mở trang web như sau:

from android import Android

droid = Android()
droid.webViewShow("https://www.quantrimang.com")

Bạn cũng có thể khởi chạy để hiển thị giao diện của file HTML được lưu trữ trên thiết bị. Điều này sẽ là cách tuyệt vời để xem các phần tử giao diện người dùng.

droid.webViewShow('file:///sdcard/index.html')

Thêm một điều nữa, bạn có thể tạo file để hiển thị HTML động dựa trên script bạn tạo ra. Hãy kết hợp chức năng này với Tasker (một công cụ tự động hóa mọi tác vụ trên thiết bị Android) để tạo ra những bất ngờ tuyệt vời.

Thư viện Kivy

Nếu bạn muốn đi xa hơn, bạn cần sử dụng Kivy. Kivy cho phép bạn tạo ra ứng dụng Android đầy đủ chức năng với giao diện đa điểm, đồ họa và nhiều tính năng khác. Đây cũng là cách giúp bạn biến các đoạn mã Python của mình thành các file APK có thể cài đặt trên thiết bị Android và phân phối qua CH Play. Điều tuyệt vời, Kivy là một thư viện đa nền tảng, vì vậy bạn có thể tạo ứng dụng cho nhiều nền tảng khác nhau khi sử dụng Kivy.

Lập trình Python trên thiết bị Android

Bạn có thể hiển thị các phần tử giao diện người dùng như nút hoặc đồ họa. Dưới đây là một ví dụ đơn giản:

from kivy.app import App
from kivy.uix.button import Button

class HelloWorld(App):
    def build(self):
        btn = Button(text='Hello World')
        return btn

HelloWorld().run()

Kết luận

Nhìn chung, Python không phải là một lựa chọn hoàn hảo cho việc phát triển các ứng dụng chuyên nghiệp, nhưng đây là một ngôn ngữ tuyệt vời để bạn tạo ra các đoạn mã và xây dựng các công cụ hữu ích mang tính cá nhân cho thiết bị Android của mình. Mọi thứ đều dễ dàng hơn khi làm việc với Python trên điện thoại thông qua QPython3. Đây là phương pháp được đánh giá là dễ dàng nhất đối với những người mới bắt đầu viết code trên thiết bị di động.

Vậy bạn còn chần chừ gì mà không thử? Một thế giới phong phú về lập trình ứng dụng Android đang chờ đón bạn. Chúc bạn thành công!


FEATURED TOPIC