Mục lục bài viết
Hiện nay có tới hàng triệu ứng dụng, từ ứng dụng âm nhạc đến ứng dụng ngân hàng, ứng dụng giải trí,... ra đời giúp mọi người thao tác dễ dàng hơn. Cũng vì thế mà công việc phát triển ứng dụng ngày càng có cơ hội phát triển. Cùng chúng tôi tìm hiểu phát triển ứng dụng là gì, yêu cầu công việc và những lưu ý quan trọng cần biết nhé!
» Tham khảo: Việc làm IT lương cao
Nhà phát triển ứng dụng là kỹ sư phần mềm máy tính chịu trách nhiệm tạo, thử nghiệm và lập trình ứng dụng cho điện thoại thông minh và các thiết bị di động khác. Khi làm việc với tư cách là nhà phát triển ứng dụng, trách nhiệm của bạn có thể thay đổi tùy theo vai trò của bạn trong nhóm. Tuy nhiên, nhiệm vụ chung của hầu hết các nhà phát triển ứng dụng là:
- Gặp gỡ khách hàng để thảo luận về các tính năng, thời gian phát hành và mức ngân sách mà họ có thể bỏ ra
- Viết code và chạy thử nghiệm
- Debug để xác định nguyên nhân gây ra lỗi trong quá trình chạy thử nghiệm và fix lại các lỗi đó
- Phát triển và phát hành các bản vá (bản nâng cấp) sau khi ứng dụng đã hoàn tất và đi vào ổn định
- Cập nhật ứng dụng với các tính năng và chế độ mới để cung cấp giá trị nâng cao cho người dùng
Trong quá trình tuyển dụng vị trí App Developer, nhà tuyển dụng thường tìm kiếm các ứng viên đáp ứng đầy đủ các yêu cầu sau:
- Tốt nghiệp các trường đào tạo về khoa học máy tính, lập trình máy tính hoặc lĩnh vực liên quan
- Có kiến thức sâu rộng về phát triển ứng dụng di động. Điều này bao gồm toàn bộ quá trình, từ việc code dòng mã đầu tiên đến khi xuất bản ứng dụng trên App Store
- Quen thuộc với API RESTful và thư viện di động để kết nối mạng
- Kiến thức vững chắc về các design pattern, bao gồm MVP, MVC, MVVM & Clean Architecture - và khả năng chọn giải pháp tốt nhất cho ứng dụng
- Hiểu các nguyên tắc thiết kế ứng dụng dành cho thiết bị di động trên từng nền tảng và nhận thức được sự khác biệt của chúng
- Thành thạo Java / Kotlin / Swift / Objective-C / JavaScript / C# hoặc bất kỳ ngôn ngữ nào được sử dụng trong ứng dụng
- Kỹ năng phân tích: Nhận ra nhu cầu của khách hàng và tạo ra các ứng dụng mới đáp ứng những nhu cầu đó
- Kỹ năng giao tiếp
- Kỹ năng giải quyết vấn đề
- Tỉ mỉ, cẩn thận
Trong quá trình tham gia phát triển ứng dụng di động, bạn cần trả lời được một số câu hỏi sau:
Android là tên của hệ điều hành di động do Google sở hữu. Android thường được cài đặt trên nhiều loại điện thoại thông minh và máy tính bảng của nhiều nhà sản xuất như Samsung, Sony và Motorola, cho phép người dùng truy cập vào các dịch vụ của Google như Tìm kiếm, YouTube, Map, Gmail,...Mã cần thiết để phát triển ứng dụng trên nền tảng Android hầu hết là mã nguồn mở và có sẵn cho bất kỳ ai quan tâm đến việc phát triển ứng dụng để sử dụng với hệ điều hành Android.
iOS là cách nói rút gọn của 'iPhone OS' hoặc 'iPhone Operating System' là hệ điều hành di động chạy trên các thiết bị di động của Apple như iPhone và iPad. Các nhà phát triển iOS thường sử dụng 1 trong 2 ngôn ngữ lập trình là Swift hoặc Objective-C để xây dựng ứng dụng.
Điều này nhằm mục đích ngăn không cho ứng dụng của bạn cài đặt trên những phiên bản mà hệ điều hành không được hỗ trợ. Đồng thời cũng để tránh việc người dùng phản hồi tiêu cực và đánh giá 1* khi họ không thể cài đặt được ứng dụng trên điện thoại.
Phần cứng có thể là bộ nhớ, CPU hay máy ảnh,...Như chúng tôi đã đề cập ở trên, tốt nhất bạn nên ngăn chặn việc cài đặt ứng dụng trên các thiết bị không được hỗ trợ ngay từ đầu.
Cả smartphone lẫn máy tính bảng đều có thể hoạt động bình thường trên tất cả các kích thước và hình dạng khác nhau. Sau đây chúng tôi sẽ liệt kê cho bạn một vài độ phân giải phổ biến như:
- 640 x 480 pixels, 800 x 600 pixels hoặc 1024 x 768 pixels (tỉ lệ màn hình 4:3)
- 960 x 640 pixels hoặc 720 x 480 pixels (tỉ lệ màn hình 3:2)
- 960 x 540 pixels
- 1280 x 720 pixels hoặc 1366 x 768 pixels (màn HD)
- 1440 x 720 pixels (màn HD+)
- 1920 x 1080 pixels (màn Full HD)
- 2160 x 1080 pixels hoặc 2280 x 1080 pixels (màn Full HD+)
- 2560 x 1440 pixels (màn 2K)
- 4096 x 2160 pixels hoặc 3840 x 2160 pixels (màn 4K)
Sẽ thật tốt nếu như ứng dụng của bạn sử dụng được trên những thiết bị đồ họa chất lượng cao như máy tính bảng. Một số nhà phát triển ứng dụng game không ngại phát hành thêm một phiên bản nữa dành cho máy tính bảng thay vì chỉ sử dụng một package duy nhất trên điện thoại di động.
Vì thế, tốt nhất bạn nên triển khai thử nghiệm trên cả 2 dòng thiết bị là điện thoại và máy tính bảng nếu bạn muốn nó làm việc tốt trên cả hai.
6. Bạn định hướng ứng dụng của mình chạy ngang hay chạy dọc?
Thông thường thì các ứng dụng game chỉ hoạt động ở chế độ nằm ngang, còn các ứng dụng khác thì được thiết kế để có thể hoạt động tốt ở cả chế độ nằm ngang lẫn nằm dọc. Hãy đảm bảo rằng ứng dụng của bạn sẽ không gặp bất kỳ vấn đề nào khi người dùng đổi hướng màn hình nhé.
7. Kiểm tra kỹ các tính năng hardware key, GPS & Accelerometer khi chạy thử nghiệm
- Hardware key: Thử nghiệm trên các ứng dụng sử dụng nút camera chuyên dụng, ứng dụng phát media sử dụng phím âm lượng và các phím tắt khác, các ứng dụng quản lý công việc sử dụng nút phần cứng để thông báo lời nhắc,...Ngoài ra còn thử nghiệm trên một số ứng dụng sử dụng nút nguồn để cung cấp thêm chức năng.
- Accelerometer: Trường hợp này sẽ được thử nghiệm trên các ứng dụng sử dụng gia tốc như Star Map, Jump trackers, Pedometers, Games, 3D visualization,...
- GPS: Thử nghiệm xem ứng dụng của bạn sẽ thế nào nếu GPS bị tắt đột ngột hoặc bị mất kết nối trong quá trình hoạt động.
Hầu hết các ứng dụng đều được lập trình để có thể hoạt động tốt trong sự hiện diện của dữ liệu di động (3G, 4G) và wifi. Tuy nhiên, bạn cũng cần thử nghiệm ứng dụng của mình trong điều kiện người dùng bị ngắt kết nối hoặc không có khả năng truy cập vào wifi.
Thông thường, khi người dùng đang di chuyển thì kết nối mạng là không liên tục, hoặc nếu kết nối được thì tốc độ mạng cũng không ổn định. Do đó bạn cần chạy thử nghiệm trong tất cả các trường hợp và tìm ra cách xử lý để ứng dụng của bạn có thể xử lý các vấn đề về kết nối mạng một cách nhịp nhàng.
Khi phía máy chủ cập nhật thì ứng dụng phía người dùng cuối có cần cập nhật không? Nếu có, hãy làm thêm một bài thử nghiệm nữa cho trường hợp này.
Một ứng dụng đang hoạt động bình thường có thể bị gián đoạn bởi một số nhân tố như:
- Cuộc gọi đến
- Tin nhắn
- Thông báo từ các ứng dụng khác
- Pin yếu
- Sập nguồn
- Thiết bị không đủ bộ nhớ
- Bật nhầm “Chế độ máy bay”
- Kết nối Internet liên tục bị ngắt kết nối
- Bấm nhầm vào nút Home hoặc trở về màn hình chính
Ứng dụng của bạn cần phải có khả năng xử lý tốt những điều này.
Lỗ hổng bảo mật chính là nguyên nhân hàng đầu gây nên một loạt các cuộc tấn công mạng mà chúng ta vẫn được nghe trong thời gian qua. Mục đích của những cuộc tấn cộng mạng này là để thực hiện các hành động phi pháp như truy cập bộ nhớ của hệ thống, ăn cắp thông tin cá nhân, nghe lén, tống tiền, gây tê liệt thông tin...Ước tính thiệt hại từ những vụ tấn công như vậy có thể lên tới hàng ngàn tỷ USD.
Do đó, trước khi phát hành ứng dụng ra ngoài thị trường, bạn cần thử nghiệm và kiểm tra thật kỹ tính năng bảo mật của nó, nhất là đối với các ứng dụng banking và ứng dụng thương mại điện tử.
- Ứng dụng có lưu trữ thông tin thanh toán của người dùng không?
- Giao thức mạng mà bạn đang sử dụng cho ứng dụng của mình có đảm bảo an toàn - không?
- Ứng dụng có sử dụng ID thiết bị (Device ID) như một cách định danh không?
- Ứng dụng có yêu cầu người dùng phải xác thực (xác thực vân tay, xác thực khuôn mặt hoặc xác định bằng mã OTP) khi truy cập dữ liệu của họ không?
- Ứng dụng có giới hạn số lần đăng nhập trước khi bị khóa không?
Bạn có thể kiểm tra tính năng bảo mật trên ứng dụng của mình thông qua các công cụ quét lỗ hổng bảo mật như OWASP Zed Attack Proxy, Nessus Pro,...
12. Kiểm thử tính năng thanh toán của ứng dụng
Nếu app của bạn có sử dụng tính năng thanh toán cho các giao dịch TMĐT, bạn cần chạy thử nghiệm giao dịch từ đầu đến cuối để đảm bảo không xảy ra bất cứ vấn đề gì trong quá trình giao dịch.
Bạn đã kiểm tra xem hiệu suất ứng dụng của bạn có bị giảm xuống khi dung lượng của album ảnh, trình tải nhạc hoặc mailbox tăng lên hay chưa? Nếu chưa, bạn cần bổ sung thêm các trường hợp testing cho các vấn đề kể trên.
Neo Load và Little Eye là 2 ứng dụng có thể hỗ trợ bạn kiểm tra hiệu suất hoạt động và khả năng chịu tải trên ứng dụng của bạn.
Nếu ứng dụng của bạn sử dụng 2 ngôn ngữ trở lên, bạn cần kiểm tra bằng nhiều ngôn ngữ khác nhau để đảm bảo không xảy ra bất kỳ vấn đề gì liên quan đến mã hóa ký tự hoặc vấn đề liên quan đến giao diện của người dùng cuối, khi các ký tự có độ dài khác nhau.
Ngoài ra bạn cũng cần chạy thử ứng dụng của mình trên nhiều múi giờ khác nhau để xem vấn đề gì sẽ xảy ra trong trường hợp người dùng di chuyển sang một quốc gia có múi giờ khác.
Hiện nay có rất nhiều ứng dụng cho phép người dùng chia sẻ trực tiếp bài đăng từ ứng dụng lên tài khoản mạng xã hội của người đó. Vậy ứng dụng của bạn có làm được điều này không?
16. Kiểm tra kết nối với các thiết bị phần cứng
Nếu ứng dụng của bạn cho phép người dùng chia sẻ tệp tin, hình ảnh và video từ điện thoại di động sang PC, hoặc cho phép AirDrop sang một thiết bị di động khác thì bạn cần kiểm tra xem kết nối có bị mất trong quá trình chia sẻ này không.
17. Tích hợp cửa hàng Google Play / App Store và danh sách các thiết bị được hỗ trợ / bị hạn chế
Bạn cần chạy thử nghiệm để đảm bảo ứng dụng của bạn có sẵn và có thể tải thành công trên cửa hàng Google Play hoặc App Store.
Đọc đến đây, bạn đã nắm được công việc hàng ngày của một nhà phát triển ứng dụng và những lưu ý trong quá trình phát triển ứng dụng rồi chứ? Chúc bạn sớm tìm được “bến đỗ” lý tưởng cho vị trí App Developer nhé!
» Có thể bạn quan tâm: Quy trình phỏng vấn IT