Những lỗi phổ biến của lập trình viên Android

Android là một nền tảng được nhiều người ưa thích, vừa miễn phí vừa dễ tùy biến nên đã nhanh chóng phát triển và có mặt trên nhiều loại thiết bị.

Android là một nền tảng được nhiều người ưa thích, vừa miễn phí vừa dễ tùy biến nên đã nhanh chóng phát triển và có mặt trên nhiều loại thiết bị như điện thoại, máy tính bảng, đồng hồ thông minh, tivi, ô tô.

Sau sự ra mắt của AOSP và bản update Lollipop, Android đã mang lại cho người dùng khá nhiều kì vọng. Phong cách thiết kế Material hứa hẹn đem lại trải nghiệm tốt hơn.

Có cả ngàn thiết bị Android khác nhau kích thước màn hình, chip xử lý, cấu hình phần cứng và phiên bản phần mềm. Sự đa dạng ấy dẫn tới việc ứng dụng Android mà bạn viết có thể không hoạt động được trên các thiết bị khác nhau cho dù bạn có là một lập trình viên Android già dặn.

Bỏ qua sự khác biệt kia, phần lớn lỗi mọi người biết đến lại là lỗi logic. Những lỗi này có thể dễ dàng xử lý nếu chúng ta làm đúng từ những điều cơ bản.

Dưới đây là danh sách những lỗi thường thấy mà các lập trình viên Android tạo ra.

1. Cố gắng bắt chiếc giao diện iOS

Thật may là hiện nay lỗi này đã trở nên ít phổ biến hơn (một phần vì khách hàng đã nhận ra rằng Apple đã thiết lập những tiêu chuẩn thiết kế từ lâu rồi). Nhưng dù có thế thì chúng ta vẫn đang và sẽ tiếp tục thấy những ứng dụng sao chép lại từ iOS.

Người dùng Android đã quen thuộc với nền tảng này, việc cố gắng nhồi nhét các chuẩn thiết kế của iOS vào sẽ rất tồi tệ. Nếu bạn không có lí do cực kì đáng giá nào để phá vỡ các nguyên tắc thì đừng làm thế.

Đây là một số ví dụ phổ biến cho lỗi này:

- Bạn không nên tạo các tab cố định mà chúng không ở phía dưới (ví dụ: Instagram).

- Các Icon thông báo hệ thống không nên màu mè

- Icon của ứng dụng không nên có khung viền chữ nhật bo góc (trừ khi logo của bạn vốn đã có nó, ví dụ như Facebook)

- Màn hình load ứng dụng (splash screen) chỉ nên dùng khi thiết lập lần đầu hoặc giới thiệu, không nền dùng trong các trường hợp khác.

- Danh sách không nên có đánh dấu…

2. Chỉ lập trình và thử trên đúng thiết bị Android bạn có

Trừ khi bạn muốn tạo ra một ứng dụng phổ biến cho riêng loại thiết bị nào đó, nếu không thì ứng dụng của bạn có thể sẽ trông khá tệ trên các thiết bị khác. Bạn nên lưu ý các vấn đề sau:

- Density-independent pixels (dp) khác với pixel (px).

- Resources được thêm nhiều lần vào tài khoản đối với mật độ và định hướng khác nhau.

- 9-patch drawables sẽ được kéo dãn cho khít với màn hình.

Chắc chắn  bạn không có cả ngàn thiết bị để thử, Android Emulator sẽ giúp giả lập gần đúng cấu hình thiết bị bạn muốn thử. Android Emulator có thể chọn được kích thước màn hình, bộ nhớ, chức năng cảm biến.... Còn nếu bạn muốn một trình giả lập tốt hơn nữa, hãy thử Genymotion, emulator chạy nhanh và có nhiều cài đặt giả lập phổ biến cho các thiết bị.

Còn một vấn đề nữa, bạn có thử xoay ngang dọc điện thoại  hoặc emulator khi chạy thử ứng dụng chưa? Bạn sẽ thấy ngay rất nhiều lỗi giao diện phải sửa.

3. Không dùng Intent

Intent là một trong những thành phần chủ chốt của Android. Nó là một cách để truyền dữ liệu giữa các phần của một ứng dụng hoặc hơn thế nữa, giữa các ứng dụng khác nhau trong một hệ thống.

4. Không dùng Fragments

Một thời gian trước trên Honeycomb, Android giới thiệu khái niệm Fragments. Bạn có thể xem nó như là các khối được xây dựng riêng biệt với vòng đời riêng trong một Activity. Nó hỗ trợ rất nhiều trong việc tối ưu cho các loại màn hình, đồng thời dễ dàng được quản lý bởi activity cha, có thể sử dụng lại, kết hợp và bố trí theo ý muốn.

Chạy từng activity riêng cho mỗi màn hình ứng dụng sẽ có hiệu quả rất tệ khi hệ thống phải cố lưu trữ chúng trong bộ nhớ lâu hết mức có thể. Tắt một cái trong số đó cũng không giải phóng các tài nguyên được sử dụng bởi những cái còn lại.

Nếu bạn không muốn đào sâu nghiên cứu về core Android hay phản đối việc sử dụng fragment thì bạn nên dùng fragments bất cứ khi nào có thể. Cơ bản thì fragments và cursor loaders có mục đích tốt nhưng cách thực hiện thì khá thô.

5. Tự code lại những thứ người khác đã làm

Một số bạn muốn tự code phần giao tiếp với server trong một background thread, đó chưa chắc là một lựa chọn tốt. Gọi network, nạp ảnh, truy cập cơ sở dữ liệu, parse JSON hay đăng nhập mạng xã hội, đó là những thứ ứng dụng của bạn thường xuyên làm nhất. Không chỉ ứng dụng của bạn mà tất cả các ứng dụng khác cũng thế. Vậy viết lại làm gì? Hãy nhớ là Android đã phát triển thành một nền tảng ổn định và có nhiều thư viện có sẵn hỗ trợ cho bạn.

6. Blocking Main Thread (tác vụ chạy lâu cản trở luồng thực thi chính)

Main thread (luống chính) có một mục đích duy nhất: phản hồi tương tác của người dùng và cập nhật giao diện.

Mặc dù theo các phương pháp đo đếm một cách khoa học về tốc độ khung hình (frame rate) thì mắt/não của chúng ta có khả năng cảm nhận rất phức tạp và chịu ảnh hưởng của nhiều yếu tố nhưng có một nguyên tắc chung là cứ cái gì dưới 24 fps (khung hình/giây) với độ trễ trên 100ms thì được coi là không mượt mà.

Có nghĩa là hành vi của người dùng sẽ có một khoảng trễ và ứng dụng Android mà bạn lập trình sẽ dừng việc phản hồi lại. Bỏ qua yếu tố cách sử dụng của người dùng dẫn tới ứng dụng chạy không như ý, người dùng của bạn chỉ cần thấy ứng dụng không chạy như họ muốn là sẽ có các nhận xét tiêu cực.

Để tránh bị lỗi này, tốt nhất là bạn luôn sử dụng worker/background thread cho các trường hợp sau: gọi network (network call), nạp hình ảnh (bitmap loading), xử lý ảnh (image processing), truy vấn dữ liệu (database querying), đọc/ghi vào thẻ nhớ (SD reading/writing).

Android là một nền nảng mạnh mẽ và phát triển rất nhanh chóng. Các lập trình viên Android nên thường xuyên tìm cách nâng cao kỹ năng của mình và giảm thiểu sai sót. Nếu đọc xong bài viết này mà bạn vẫn thấy không nắm chắc về kỹ năng lập trình Android của mình thì có thể tham gia khóa học lập trình Android tại Stanford – dạy kinh nghiệm lập trình. Chúng tôi sẽ giúp bạn giải đáp hết thắc mắc, thành thạo và thành công.

Tham gia khóa học lập trình Android tại Stanford bạn sẽ sử dụng thành thạo các công cụ Netbean, JDeveloper, Eclipse, Visual SVN, Installing the java JDK,SDK for Android,... và ngôn ngữ lập trình Java – J2ME (for Android), các cấu trúc dữ liệu và giải thuật phổ dụng. Có kinh nghiệm thực tế về phát triển Mobile Apps cho Android và kinh nghiệm đóng gói, triển khai ứng dụng trên môi trường Mobile. Ngoài ra, bạn có thể join vào dự án hoặc tự phát triển ứng dụng cho Mobile, biết được các kỹ năng làm việc độc lập hoặc theo nhóm…

Hiện nay, Stanford là một trong những trung tâm đào tạo lập trình Android bài bản nhất. Khóa học lập trình Android tại Stanford chính là nơi đem lại cho bạn những công cụ cần thiết, nền tảng vững chắc, giúp bạn tiến gần hơn tới vị trí của một lập trình viên, một nhà phát triển chuyên nghiệp hoặc chỉ đơn giản là thỏa sức sáng tạo ra những ứng dụng hữu ích cho cuộc sống.

Với phương châm “Học để làm việc” cùng mô hình đào tạo “dạy kinh nghiệm thực tế,  Công ty CP Stanford – Đào tạo và phát triển công nghệ sẽ giúp bạn tiếp cận với môi trường làm việc chuyên nghiệp. Bạn sẽ được cung cấp kiến thức và kinh nghiệm làm việc thực tế, sử dụng thành thạo các công cụ phát triển phần mềm, phát triển kỹ năng làm việc nhóm và có cơ hội tham gia các dự án đang phát triển tại công ty chúng tôi.

Chúng tôi tự tin trong 6 tháng sẽ giúp bạn trở thành chuyên gia phát triển ứng dụng di động. Và còn rất rất nhiều điểm thú vị khác nữa đang chờ bạn khám phá khi tham gia học kinh nghiệm lập trình tại Stanford.

Bạn đam mê CNTT, bạn có ước mơ trở thành một Lập trình viên tài giỏi và bạn muốn làm chủ tương lai? Vậy thì hãy cập nhật ngay thông tin về chương trình “Ưu đãi nhân đôi” cùng Stanford để có cơ hội tỏa sáng. Đây là chương trình mang lại nhiều ý nghĩa và giá trị thiết thực nhằm tạo điều kiện cho các bạn học viên có cơ hội học tập thuận lợi và hưởng ưu đãi lớn nhất trong năm. Chi tiết xem tại đây

Nào, hãy liên hệ ngay với chúng tôi theo Hotline: 0866 586 366 – 0963 723 236 hoặc 024 6275 2212 – 024 6662 3355 để được gọi lại tư vấn chi tiết.

Sưu tầm và Tổng hợp

Nhật Lệ ( Stanford - Nâng tầm tri thức )

Tags: học lập trình android, khóa học android