1. Hình thức kiếm tiền nào phổ biến nhất cho các ứng dụng di động miễn phí?
A. Bán ứng dụng trả phí
B. Thu phí đăng ký (Subscription)
C. Quảng cáo trong ứng dụng (In-app advertising)
D. Bán hàng trong ứng dụng (In-app purchases)
2. Khi nào thì nên sử dụng cơ sở dữ liệu NoSQL thay vì cơ sở dữ liệu quan hệ (SQL) trong phát triển ứng dụng di động?
A. Khi dữ liệu có cấu trúc rõ ràng và mối quan hệ phức tạp.
B. Khi cần đảm bảo tính toàn vẹn dữ liệu tuyệt đối (ACID properties).
C. Khi ứng dụng cần xử lý lượng lớn dữ liệu phi cấu trúc hoặc bán cấu trúc và có khả năng mở rộng cao.
D. Khi ứng dụng yêu cầu truy vấn dữ liệu phức tạp và báo cáo phân tích chuyên sâu.
3. Loại kiểm thử nào tập trung vào việc đảm bảo ứng dụng hoạt động đúng trên nhiều loại thiết bị và kích thước màn hình khác nhau?
A. Unit Testing
B. Integration Testing
C. Compatibility Testing
D. Security Testing
4. Yếu tố nào sau đây quan trọng nhất khi thiết kế trải nghiệm người dùng (UX) cho ứng dụng di động?
A. Số lượng tính năng phức tạp
B. Giao diện đẹp mắt, màu sắc sặc sỡ
C. Tính dễ sử dụng, trực quan và hiệu quả
D. Giá thành phát triển ứng dụng thấp
5. Framework nào sau đây là lựa chọn phổ biến để phát triển ứng dụng Android Native?
A. React Native
B. Flutter
C. Android SDK với Kotlin/Java
D. Xamarin
6. Khi tối ưu hóa hiệu suất ứng dụng di động, điều gì nên được ưu tiên?
A. Tăng kích thước bộ nhớ cache để lưu trữ nhiều dữ liệu hơn.
B. Giảm thiểu sử dụng tài nguyên hệ thống (CPU, bộ nhớ, pin) và tối ưu hóa thời gian tải.
C. Thêm nhiều hiệu ứng động và hình ảnh chất lượng cao.
D. Sử dụng các thư viện và framework phức tạp nhất.
7. Công nghệ Progressive Web App (PWA) mang lại lợi ích chính nào cho người dùng?
A. Cung cấp trải nghiệm ứng dụng native trên nền web, hoạt động offline và cài đặt dễ dàng.
B. Chạy nhanh hơn ứng dụng native.
C. Tiết kiệm pin hơn ứng dụng native.
D. Có nhiều tính năng hơn ứng dụng native.
8. Phương pháp `A/B testing` được sử dụng để làm gì trong phát triển ứng dụng di động?
A. Kiểm thử tính năng mới trước khi phát hành.
B. So sánh hai phiên bản khác nhau của một tính năng hoặc giao diện để xác định phiên bản nào hiệu quả hơn.
C. Đo lường hiệu suất ứng dụng trên các thiết bị khác nhau.
D. Thu thập phản hồi từ người dùng về ứng dụng.
9. Công đoạn `refactoring` trong phát triển phần mềm nhằm mục đích gì?
A. Thêm tính năng mới cho ứng dụng.
B. Sửa lỗi và vá các lỗ hổng bảo mật.
C. Cải thiện cấu trúc mã nguồn mà không thay đổi chức năng bên ngoài.
D. Tối ưu hóa hiệu suất ứng dụng để chạy nhanh hơn.
10. API (Application Programming Interface) được sử dụng để làm gì trong phát triển ứng dụng di động?
A. Thiết kế giao diện người dùng.
B. Quản lý cơ sở dữ liệu.
C. Cho phép các ứng dụng khác nhau giao tiếp và trao đổi dữ liệu với nhau.
D. Kiểm thử hiệu năng ứng dụng.
11. Thành phần nào sau đây chịu trách nhiệm quản lý dữ liệu và logic nghiệp vụ của ứng dụng di động theo mô hình MVC?
A. View
B. Controller
C. Model
D. ViewModel
12. Công cụ nào sau đây thường được sử dụng để quản lý phiên bản mã nguồn (version control) trong dự án phát triển ứng dụng di động?
A. Jira
B. Trello
C. Git
D. Slack
13. Phương pháp kiểm thử ứng dụng di động nào tập trung vào việc đánh giá hiệu suất và khả năng đáp ứng của ứng dụng dưới các điều kiện tải khác nhau?
A. Unit Testing
B. Integration Testing
C. Performance Testing
D. UI Testing
14. Nguyên tắc `KISS` (Keep It Simple, Stupid) có ý nghĩa gì trong phát triển ứng dụng di động?
A. Ưu tiên sử dụng công nghệ phức tạp nhất để thể hiện kỹ năng.
B. Giữ cho thiết kế và mã nguồn đơn giản, dễ hiểu và dễ bảo trì.
C. Chấp nhận lỗi sai để nhanh chóng phát hành sản phẩm.
D. Tập trung vào việc tạo ra giao diện người dùng ấn tượng nhất.
15. Kiến trúc nào sau đây thường được sử dụng để thiết kế giao diện người dùng (UI) linh hoạt và dễ bảo trì trong phát triển ứng dụng Android?
A. MVC (Model-View-Controller)
B. MVP (Model-View-Presenter)
C. MVVM (Model-View-ViewModel)
D. Singleton
16. Điều gì là quan trọng nhất cần xem xét về bảo mật khi lưu trữ dữ liệu người dùng trên thiết bị di động?
A. Sử dụng bộ nhớ trong của thiết bị.
B. Mã hóa dữ liệu trước khi lưu trữ.
C. Lưu trữ dữ liệu dưới dạng văn bản thuần túy.
D. Không cần quan tâm đến bảo mật dữ liệu trên thiết bị.
17. Vấn đề nào sau đây thường gặp phải khi phát triển ứng dụng đa nền tảng (cross-platform)?
A. Khả năng truy cập trực tiếp vào phần cứng và API của thiết bị.
B. Hiệu suất ứng dụng có thể không bằng ứng dụng native trong một số trường hợp.
C. Chi phí phát triển cao hơn so với ứng dụng native.
D. Khó khăn trong việc bảo trì và cập nhật ứng dụng.
18. Loại ứng dụng di động nào chạy trực tiếp trên trình duyệt web và không cần cài đặt?
A. Ứng dụng Native
B. Ứng dụng Web
C. Ứng dụng Hybrid
D. Ứng dụng Progressive Web App (PWA)
19. Điều gì là quan trọng nhất cần xem xét khi lựa chọn nền tảng phát triển ứng dụng di động (iOS, Android, Cross-platform)?
A. Sở thích cá nhân của nhà phát triển
B. Chi phí phát triển rẻ nhất
C. Đối tượng mục tiêu và yêu cầu tính năng của ứng dụng
D. Xu hướng công nghệ mới nhất
20. Trong phát triển ứng dụng di động, `Technical Debt` (Nợ kỹ thuật) đề cập đến điều gì?
A. Chi phí cho việc mua bản quyền công nghệ.
B. Thời gian nợ lương của đội ngũ phát triển.
C. Hậu quả của việc đưa ra các quyết định thiết kế hoặc mã hóa không tối ưu trong ngắn hạn.
D. Chi phí bảo trì ứng dụng sau khi phát hành.
21. Trong quá trình phát triển ứng dụng di động, `Sprint` thường được sử dụng trong phương pháp luận nào?
A. Waterfall
B. Agile (Scrum)
C. Kanban
D. Lean Development
22. Mục đích chính của việc `logging` (ghi nhật ký) trong ứng dụng di động là gì?
A. Tăng tốc độ ứng dụng.
B. Theo dõi hành vi người dùng để cải thiện UX.
C. Ghi lại thông tin về hoạt động của ứng dụng để gỡ lỗi, giám sát và phân tích sự cố.
D. Tiết kiệm bộ nhớ thiết bị.
23. Khái niệm `Deep Linking` trong ứng dụng di động dùng để chỉ điều gì?
A. Liên kết đến trang chủ của ứng dụng.
B. Liên kết trực tiếp đến một nội dung cụ thể bên trong ứng dụng từ bên ngoài.
C. Liên kết giữa các ứng dụng khác nhau.
D. Liên kết để tải ứng dụng từ cửa hàng.
24. Phương pháp xác thực người dùng nào sau đây tăng cường bảo mật cho ứng dụng di động hơn so với chỉ sử dụng mật khẩu?
A. Xác thực một yếu tố (Single-factor authentication)
B. Xác thực đa yếu tố (Multi-factor authentication)
C. Xác thực sinh trắc học (Biometric authentication)
D. Xác thực dựa trên phiên (Session-based authentication)
25. Trong ngữ cảnh phát triển ứng dụng di động, `CI/CD` là viết tắt của cụm từ nào?
A. Continuous Integration/Continuous Delivery hoặc Continuous Deployment
B. Customer Interaction/Customer Data
C. Code Inspection/Code Documentation
D. Cross-platform Implementation/Cross-device Compatibility
26. Push Notification được sử dụng để làm gì trong ứng dụng di động?
A. Thu thập dữ liệu người dùng.
B. Hiển thị quảng cáo cho người dùng.
C. Gửi thông báo và cập nhật đến người dùng ngay cả khi ứng dụng không mở.
D. Theo dõi vị trí người dùng.
27. Khi thiết kế điều hướng trong ứng dụng di động, điều gì nên được ưu tiên?
A. Sử dụng nhiều lớp điều hướng phức tạp để chứa được nhiều tính năng.
B. Điều hướng đơn giản, trực quan, dễ dàng tìm thấy thông tin và tính năng cần thiết.
C. Sử dụng hiệu ứng chuyển động phức tạp và bắt mắt.
D. Tuân thủ nghiêm ngặt theo phong cách điều hướng của hệ điều hành.
28. Quy trình phát triển ứng dụng di động Agile nhấn mạnh điều gì?
A. Lập kế hoạch chi tiết từ đầu dự án và tuân thủ nghiêm ngặt kế hoạch đó.
B. Ưu tiên tài liệu hóa đầy đủ mọi khía cạnh của dự án trước khi bắt đầu phát triển.
C. Linh hoạt thay đổi yêu cầu, phản hồi nhanh chóng và phát triển lặp đi lặp lại.
D. Tập trung vào việc hoàn thành tất cả các tính năng trong một lần phát hành lớn.
29. Ngôn ngữ lập trình chính thức được Apple khuyến nghị cho phát triển ứng dụng iOS là gì?
A. Java
B. Kotlin
C. Swift
D. Objective-C
30. Framework phát triển ứng dụng đa nền tảng nào sử dụng ngôn ngữ Dart và được phát triển bởi Google?
A. React Native
B. Xamarin
C. Flutter
D. Ionic