Trong hai ngày không vào được Facebook, tớ quyết định dùng thời gian rảnh rỗi ra học một cái gì đó mới, thế là quyết định tự học lập trình Android. Và sản phẩm đầu tay của tớ chính là cái ứng dụng quét QR Code sẽ được giới thiệu trong bài viết này, hehe.
Ngoài việc giới thiệu về cái app, tớ cũng muốn chia sẻ với mọi người thêm về cảm nhận cá nhân sau khi thử làm một ứng dụng Android “từ A đến Z” (từ việc code, debug, build cho tới việc đăng ký tài khoản Developer để đưa sản phẩm lên chợ ứng dụng – Play Store).
J2TEAM QR Code Scanner
Trước tiên, xin giới thiệu với mọi người thành quả của tớ sau khi tự học lập trình Android và bắt tay vào code thử một ứng dụng hoàn chỉnh.Đây là một ứng dụng quét QR Code (cái này bây giờ phổ biến quá rồi chắc tớ không cần giới thiệu nó là gì đâu nhỉ!?). Lúc mới bắt đầu thì đúng là chỉ định làm mỗi tính năng là quét, nhưng sau bản cập nhật đầu tiên thì giờ J2TEAM QR Code đã có 3 tính năng cơ bản nhất:
- Quét QR Code từ Camera.
- Quét QR Code từ tệp tin trong thiết bị (file ảnh QR có sẵn trong điện thoại).
- Tạo QR Code.
Tính năng phụ:
- Tùy chọn tự động sao chép kết quả quét vào bộ nhớ tạm.
- Tùy chọn tự động mở liên kết (nếu mã QR là một URL).
- Chia sẻ nhanh kết quả tới các ứng dụng khác (giống như “Send to…” trên Windows vậy á!).
Nhưng trên chợ ứng dụng của Google (Play Store) đã có quá nhiều ứng dụng quét QR rồi, tại sao lại làm thêm ra một app như vậy nữa? Có thể bạn đang thắc mắc, và đúng là như thế. Lý do là vì khi quyết định học lập trình Android tớ đã có kế hoạch cho một ứng dụng khác lớn hơn rồi, và quét QR sẽ là một phần trong ứng dụng đó.
Một vài hình ảnh chụp màn hình của em nó:
Hoặc thông qua APKCombo.
(Giờ tớ mới viết bài giới thiệu công khai mà không hiểu sao đã thấy có 10+ lượt cài đặt rồi, các bạn tìm ra kiểu gì siêu vậy ta, hehe)
Cảm nhận về việc tự học lập trình Android
Cách nhanh nhất để học một điều gì mới chính là bắt tay vào làm điều đó. Nếu chỉ tìm đọc lý thuyết rồi vỗ tay gật gù và chẳng làm gì cả thì bạn sẽ nhanh chóng quên hết những gì đã đọc được trong một khoảng thời gian ngắn.Việc học lập trình Android hay điều gì đó mới cũng vậy, bằng cách code ngay một ứng dụng, vừa “học” vừa “hành” cùng lúc khiến tớ nhanh chóng hiểu và nhớ lâu hơn.
Vì có sẵn nền tảng từ việc lập trình ứng dụng web và extension, tớ thấy có nhiều điểm tương đồng khá hay ho:
- Lập trình web thì một trang web có nhiều trang khác nhau, trong Android thì các “trang” là các activity.
- Khai báo thông tin cho Extension chúng ta có manifest.json còn trong Android chúng ta có file AndroidManifest.xml.
- Quản lý đa ngôn ngữ (bản địa hóa) trong extension chúng ta có các file JSON trong thư mục _locales, còn trong Android chúng ta có các file strings.xml trong thư mục res/values.
- Lập trình web/extension chúng ta có Gulp/Grunt thì trong Android chúng ta cũng có Gradle.
- Để thêm một thư viện vào ứng dụng web, ta dùng composer.json hoặc packages.json (npm). Với Android, ta thêm vào build.gradle
- Với web ta có responsive layout thì với Android ta có constraint layout.
- Lập trình extension, ta giao tiếp giữa các trang qua các Message API. Với Android, chúng ta có Intent để “trao đổi” giữa các Activity.
- …
Các điểm tương đồng trên khiến tớ có một cảm giác quen thuộc trong suốt quá trình viết ứng dụng QR Code. Chưa kể đến việc cú pháp lập trình OOP trong PHP cũng không quá khác so với OOP trong Java. Việc biết một ngôn ngữ lập trình để học một ngôn ngữ lập trình mới sẽ rút ngắn thời gian rất nhiều, đặc biệt là khi chúng có cú pháp giống nhau.
À nói thêm chút là trước đây tớ cũng có học qua khóa Java trên Codecademy rồi. Có điều hồi xưa (chắc tầm 2013, 2014) tớ học để cho biết thôi chứ suốt từ đó tới giờ không dùng Java nữa nên cũng chẳng khác gì học từ đầu.
Sau khi code xong con app này, tớ đã rất phấn khích, y như cái cảm giác hồi 5, 6 năm trước lúc mới bắt đầu học lập trình và tự code được một cái gì đó. Chạy thử trên điện thoại ngon lành rồi, tớ ngay lập tức đi đăng ký tài khoản developer (mất phí $25) để có thể xuất bản lên cửa hàng ứng dụng Play Store.
Hẹn mọi người trong những bài blog khác để cùng nghe tớ chia sẻ nhé.
À, đừng quên cài đặt và dùng thử ứng dụng QR Code đầu tay của tớ nha. Đánh giá trên Play Store giúp tớ thì càng tốt! ^^