1. Khi thiết kế ứng dụng di động, `affordance` (khả năng gợi ý) đề cập đến điều gì?
A. Khả năng của ứng dụng để tương thích với các thiết bị khác nhau.
B. Khả năng của giao diện người dùng để gợi ý cho người dùng cách sử dụng nó.
C. Khả năng của ứng dụng để xử lý dữ liệu lớn.
D. Khả năng của ứng dụng để bảo vệ dữ liệu người dùng.
2. Phương pháp nào sau đây giúp bảo vệ dữ liệu nhạy cảm (ví dụ: mật khẩu, thông tin thẻ tín dụng) trong ứng dụng di động?
A. Lưu trữ dữ liệu dưới dạng văn bản thuần túy.
B. Sử dụng mã hóa (encryption) để bảo vệ dữ liệu khi lưu trữ và truyền tải.
C. Giới hạn quyền truy cập vào dữ liệu.
D. Tất cả các đáp án trên.
3. Khi phát triển ứng dụng di động, thuật ngữ `API` (Application Programming Interface) dùng để chỉ điều gì?
A. Giao diện người dùng của ứng dụng.
B. Một bộ quy tắc và giao thức cho phép các ứng dụng khác nhau giao tiếp và trao đổi dữ liệu với nhau.
C. Ngôn ngữ lập trình được sử dụng để phát triển ứng dụng.
D. Hệ điều hành của thiết bị di động.
4. Khi phát triển ứng dụng di động, `push notification` (thông báo đẩy) thường được sử dụng cho mục đích gì?
A. Thu thập dữ liệu người dùng.
B. Hiển thị quảng cáo.
C. Gửi thông báo và cập nhật đến người dùng ngay cả khi họ không mở ứng dụng.
D. Cập nhật phiên bản mới của ứng dụng.
5. Khi phát triển ứng dụng di động, `localization` (nội địa hóa) đề cập đến quá trình nào?
A. Tối ưu hóa ứng dụng cho các thiết bị di động có cấu hình khác nhau.
B. Dịch thuật ứng dụng sang nhiều ngôn ngữ.
C. Điều chỉnh ứng dụng để phù hợp với văn hóa, ngôn ngữ và các yêu cầu pháp lý của một thị trường cụ thể.
D. Tăng cường bảo mật cho ứng dụng.
6. Điều gì KHÔNG phải là một phương pháp để cải thiện hiệu suất của ứng dụng di động?
A. Tối ưu hóa hình ảnh và tài nguyên.
B. Sử dụng bộ nhớ cache hiệu quả.
C. Thực hiện tất cả các tác vụ trên luồng chính (main thread).
D. Giảm thiểu số lượng yêu cầu mạng.
7. Công cụ nào sau đây thường được sử dụng để quản lý và theo dõi các lỗi (bugs) trong quá trình phát triển ứng dụng di động?
A. Google Analytics
B. Firebase Crashlytics
C. Facebook Ads Manager
D. AWS CloudWatch
8. Yếu tố nào sau đây KHÔNG nên được ưu tiên khi thiết kế giao diện người dùng (UI) cho ứng dụng di động?
A. Tính nhất quán trong thiết kế.
B. Tính dễ sử dụng và trực quan.
C. Sử dụng quá nhiều hiệu ứng động và hình ảnh phức tạp.
D. Khả năng tùy biến cao cho người dùng.
9. Loại mô hình thiết kế nào sau đây khuyến khích việc phân chia ứng dụng thành các thành phần độc lập, có thể tái sử dụng và dễ bảo trì?
A. Thiết kế monolithic (nguyên khối).
B. Thiết kế hướng đối tượng (Object-Oriented Design).
C. Thiết kế module (Modular design).
D. Thiết kế thủ tục (Procedural design).
10. Trong phát triển ứng dụng di động, `session management` (quản lý phiên) dùng để chỉ điều gì?
A. Quản lý thời gian sử dụng ứng dụng của người dùng.
B. Quản lý dữ liệu người dùng được lưu trữ trên thiết bị.
C. Quản lý trạng thái đăng nhập và thông tin người dùng trong một khoảng thời gian nhất định.
D. Quản lý các kết nối mạng của ứng dụng.
11. Loại kiểm thử nào sau đây tập trung vào việc đảm bảo ứng dụng di động hoạt động đúng trên các thiết bị và hệ điều hành khác nhau?
A. Kiểm thử đơn vị (Unit testing)
B. Kiểm thử tích hợp (Integration testing)
C. Kiểm thử khả năng tương thích (Compatibility testing)
D. Kiểm thử hiệu năng (Performance testing)
12. Điều gì KHÔNG phải là lợi ích của việc sử dụng kiến trúc Microservices trong phát triển ứng dụng di động backend?
A. Khả năng mở rộng độc lập cho từng dịch vụ.
B. Giảm độ phức tạp của việc triển khai và quản lý.
C. Cho phép sử dụng các công nghệ khác nhau cho từng dịch vụ.
D. Tăng cường khả năng chịu lỗi (fault tolerance).
13. Khi thiết kế ứng dụng di động hướng đến người dùng lớn tuổi, yếu tố nào sau đây cần được đặc biệt chú trọng?
A. Sử dụng hiệu ứng chuyển động phức tạp để thu hút sự chú ý.
B. Sử dụng font chữ lớn, màu sắc tương phản cao và giao diện đơn giản, dễ điều hướng.
C. Tích hợp nhiều tính năng nâng cao và tùy chỉnh.
D. Sử dụng ngôn ngữ chuyên ngành và thuật ngữ kỹ thuật.
14. Loại kiểm thử nào tập trung vào việc đánh giá khả năng đáp ứng của ứng dụng di động khi có số lượng lớn người dùng truy cập đồng thời?
A. Kiểm thử chức năng (Functional testing)
B. Kiểm thử hiệu năng (Performance testing)
C. Kiểm thử bảo mật (Security testing)
D. Kiểm thử khả năng sử dụng (Usability testing)
15. Trong phát triển ứng dụng di động, thuật ngữ `code signing` (ký mã) dùng để chỉ điều gì?
A. Quá trình tối ưu hóa code để tăng hiệu suất ứng dụng.
B. Quá trình mã hóa code để bảo vệ khỏi các cuộc tấn công.
C. Quá trình thêm chữ ký số vào ứng dụng để xác minh tính xác thực và đảm bảo rằng ứng dụng không bị sửa đổi.
D. Quá trình kiểm tra code để tìm lỗi.
16. Phương pháp kiểm thử A/B thường được sử dụng để đánh giá yếu tố nào trong phát triển ứng dụng di động?
A. Hiệu suất của ứng dụng trên các thiết bị khác nhau.
B. Mức độ sử dụng pin của ứng dụng.
C. Mức độ hài lòng của người dùng với các phiên bản khác nhau của một tính năng hoặc giao diện.
D. Mức độ bảo mật của ứng dụng.
17. Khi phát triển ứng dụng di động, điều gì quan trọng nhất cần xem xét để đảm bảo ứng dụng có thể truy cập được (accessible) đối với người dùng khuyết tật?
A. Sử dụng màu sắc tươi sáng và hiệu ứng động.
B. Cung cấp các tùy chọn thay thế văn bản cho hình ảnh, đảm bảo độ tương phản màu sắc phù hợp, và hỗ trợ các công cụ hỗ trợ như trình đọc màn hình.
C. Tích hợp nhiều tính năng phức tạp.
D. Sử dụng font chữ nhỏ để tối ưu hóa không gian màn hình.
18. Lợi ích chính của việc sử dụng `Continuous Integration` (CI) và `Continuous Delivery` (CD) trong phát triển ứng dụng di động là gì?
A. Giảm chi phí phát triển ứng dụng.
B. Tăng tốc độ phát triển, giảm rủi ro và đảm bảo chất lượng ứng dụng.
C. Tăng tính bảo mật của ứng dụng.
D. Tự động tạo tài liệu kỹ thuật cho dự án.
19. Framework React Native sử dụng ngôn ngữ lập trình nào để xây dựng giao diện người dùng cho ứng dụng di động?
A. Java
B. Swift
C. JavaScript
D. Kotlin
20. Trong bối cảnh phát triển ứng dụng di động, `MVP` là viết tắt của thuật ngữ nào?
A. Most Valuable Player
B. Minimum Viable Product
C. Mobile Virtual Platform
D. Maximum Velocity Prototype
21. Chiến lược `lazy loading` (tải chậm) được sử dụng để tối ưu hóa yếu tố nào trong ứng dụng di động?
A. Kích thước bộ nhớ cache của ứng dụng.
B. Thời gian khởi động ứng dụng và tốc độ tải nội dung.
C. Độ phân giải hình ảnh hiển thị trên màn hình.
D. Số lượng kết nối mạng đồng thời.
22. Nguyên tắc SOLID trong lập trình hướng đối tượng giúp đạt được mục tiêu nào trong phát triển ứng dụng di động?
A. Tăng tốc độ phát triển ứng dụng bằng cách giảm thiểu số lượng dòng code.
B. Giảm chi phí phát triển ứng dụng bằng cách sử dụng các thư viện mã nguồn mở.
C. Cải thiện khả năng bảo trì, mở rộng và tái sử dụng code, đồng thời giảm sự phụ thuộc giữa các thành phần.
D. Tăng tính bảo mật của ứng dụng bằng cách mã hóa dữ liệu người dùng.
23. Phương pháp nào sau đây giúp cải thiện trải nghiệm người dùng (UX) khi thiết kế ứng dụng di động cho người dùng quốc tế?
A. Sử dụng font chữ mặc định của hệ điều hành.
B. Tập trung vào việc dịch thuật chính xác nội dung ứng dụng.
C. Thiết kế giao diện linh hoạt, hỗ trợ nhiều ngôn ngữ và định dạng khác nhau (ví dụ: ngày tháng, tiền tệ).
D. Sử dụng hình ảnh và biểu tượng phổ biến trên toàn thế giới.
24. Khái niệm `Deep Linking` trong phát triển ứng dụng di động dùng để chỉ điều gì?
A. Liên kết trực tiếp đến một trang web cụ thể từ ứng dụng di động.
B. Liên kết trực tiếp đến một vị trí cụ thể trong ứng dụng di động từ một nguồn bên ngoài (ví dụ: email, trang web, ứng dụng khác).
C. Liên kết giữa các ứng dụng di động khác nhau.
D. Liên kết đến các tài liệu hướng dẫn sử dụng ứng dụng.
25. Loại tấn công bảo mật nào thường nhắm vào các ứng dụng di động bằng cách chèn mã độc vào các ứng dụng hợp pháp?
A. Tấn công DDoS (Distributed Denial of Service)
B. Tấn công SQL injection
C. Tấn công Trojan
D. Tấn công Man-in-the-Middle
26. Lợi ích chính của việc sử dụng hệ thống quản lý phiên bản (ví dụ: Git) trong quá trình phát triển ứng dụng di động là gì?
A. Tự động tạo tài liệu kỹ thuật cho dự án.
B. Cho phép nhiều nhà phát triển làm việc cùng nhau trên một dự án, theo dõi và quản lý các thay đổi code.
C. Tối ưu hóa hiệu suất của ứng dụng.
D. Tự động dịch ứng dụng sang nhiều ngôn ngữ.
27. Công nghệ nào sau đây thường được sử dụng để xây dựng ứng dụng di động đa nền tảng (cross-platform) bằng cách sử dụng web technologies (HTML, CSS, JavaScript)?
A. Swift
B. Kotlin
C. React Native
D. C++
28. Công cụ nào sau đây thường được sử dụng để phân tích hành vi người dùng trong ứng dụng di động, giúp nhà phát triển hiểu rõ cách người dùng tương tác với ứng dụng?
A. Android Studio
B. Xcode
C. Google Analytics for Firebase
D. Visual Studio Code
29. Trong ngữ cảnh phát triển ứng dụng di động, thuật ngữ `Technical Debt` (Nợ kỹ thuật) đề cập đến điều gì?
A. Chi phí bảo trì và nâng cấp ứng dụng trong tương lai.
B. Số lượng lỗi (bugs) chưa được sửa trong ứng dụng.
C. Hậu quả của việc đưa ra các quyết định thiết kế hoặc code không tối ưu trong ngắn hạn để đáp ứng thời hạn, dẫn đến khó khăn trong việc bảo trì và mở rộng ứng dụng sau này.
D. Chi phí thuê các nhà phát triển có kỹ năng cao.
30. Loại kiến trúc nào sau đây thường được sử dụng để xây dựng các ứng dụng di động có khả năng mở rộng cao và chịu tải tốt, bằng cách phân chia ứng dụng thành các thành phần nhỏ, độc lập và giao tiếp với nhau qua mạng?
A. Kiến trúc Monolithic (nguyên khối)
B. Kiến trúc Microservices
C. Kiến trúc MVC (Model-View-Controller)
D. Kiến trúc MVP (Model-View-Presenter)