J2TEAM Security: A must-have extension for Chrome users. Install now!

2 ngày không Facebook và ứng dụng Android đầu tay (J2TEAM QR Code)

Trong 2 ngày không vào Facebook, tớ quyết định dùng thời gian rảnh rỗi tự học lập trình Android. Và J2TEAM QR Code Scanner là sản phẩm đầu tay của tớ.
j2team-qr-code-scanner

Đợt vừa rồi tài khoản Facebook của tớ bị dính checkpoint vì truy cập địa điểm Wifi khác nhau, Facebook yêu cầu nhập mã xác minh được gửi vào điện thoại nhưng mà chả hiểu vì điều gì mà chờ mãi chẳng có SMS nào cả. Trên J2TEAM Community cũng có nhiều bạn đăng bài hỏi vụ này.

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ó:
j2team-qr-code-scanner
j2team-qr-code-scanner 
j2team-qr-code-scanner
j2team-qr-code-scanner

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.

learn-java-codecademy

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.

developer-registration-fee

Để kết bài thì, với một ứng dụng Android mới chỉ dùng chủ yếu là camera như J2TEAM QR Code thì chắc chắn sẽ còn rất nhiều tiềm năng khác của Android mà tớ chưa khai thác hết. Vậy nên hành trình để trở thành một nhà phát triển Android thực thụ sẽ còn nhiều điều hấp dẫn khác ở phía trước và tớ rất hào hứng khám phá trong quá trình xây dựng nên những ứng dụng tiếp theo!

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! ^^
Leader at J2TEAM. Website: https://j2team.dev/