1. Phương pháp phát triển phần mềm nào nhấn mạnh sự linh hoạt, lặp đi lặp lại và phản hồi liên tục từ khách hàng, thường được áp dụng cho dự án ứng dụng di động?
A. Waterfall
B. Agile (Scrum, Kanban)
C. Big Bang
D. Spiral
2. Điều gì là quan trọng NHẤT khi lựa chọn ngôn ngữ lập trình hoặc framework cho dự án phát triển ứng dụng di động?
A. Ngôn ngữ/framework mới nhất và phổ biến nhất
B. Ngôn ngữ/framework mà team phát triển có kinh nghiệm và phù hợp với yêu cầu dự án
C. Ngôn ngữ/framework miễn phí và mã nguồn mở
D. Ngôn ngữ/framework có cộng đồng hỗ trợ lớn nhất
3. Công cụ nào sau đây thường được dùng để quản lý vòng đời phát triển ứng dụng (ALM) trong dự án di động?
A. Microsoft Word
B. Microsoft Excel
C. Jira/Asana/Trello
D. PowerPoint
4. Điều gì KHÔNG phải là một giai đoạn trong vòng đời phát triển ứng dụng di động (SDLC)?
A. Phân tích yêu cầu (Requirement Analysis)
B. Thiết kế (Design)
C. Marketing trước khi phát triển
D. Bảo trì (Maintenance)
5. Khi phát triển ứng dụng di động, `deep linking` dùng để chỉ điều gì?
A. Kỹ thuật tối ưu hóa hiệu suất ứng dụng.
B. Kỹ thuật liên kết trực tiếp đến một trang cụ thể bên trong ứng dụng từ bên ngoài.
C. Kỹ thuật mã hóa dữ liệu trong ứng dụng.
D. Kỹ thuật tạo giao diện người dùng 3D.
6. Điều gì KHÔNG phải là yếu tố quan trọng cần xem xét khi thiết kế UI/UX cho ứng dụng di động?
A. Tính dễ sử dụng (Usability)
B. Tính thẩm mỹ (Aesthetics)
C. Tính năng kỹ thuật phức tạp nhất
D. Tính nhất quán (Consistency)
7. Trong bối cảnh phát triển ứng dụng di động, `responsive design` có nghĩa là gì?
A. Thiết kế giao diện ứng dụng phản hồi nhanh chóng với thao tác người dùng.
B. Thiết kế giao diện ứng dụng tự động điều chỉnh để phù hợp với nhiều kích thước màn hình khác nhau.
C. Thiết kế ứng dụng có khả năng tương tác với nhiều thiết bị ngoại vi.
D. Thiết kế ứng dụng có khả năng tự động sửa lỗi.
8. Kiến trúc phần mềm nào thường được sử dụng để phát triển ứng dụng di động, giúp tách biệt logic nghiệp vụ, giao diện người dùng và dữ liệu?
A. Kiến trúc Monolithic
B. Kiến trúc Microservices
C. Kiến trúc MVC/MVVM/MVI
D. Kiến trúc Client-Server
9. API (Application Programming Interface) trong phát triển ứng dụng di động dùng để làm gì?
A. Thiết kế giao diện người dùng
B. Kiểm thử ứng dụng
C. Kết nối và trao đổi dữ liệu giữa ứng dụng và server hoặc các dịch vụ khác
D. Quản lý mã nguồn ứng dụng
10. Trong phát triển ứng dụng di động, thuật ngữ `MVP` thường được viết tắt cho cụm từ nào?
A. Most Valuable Player
B. Minimum Viable Product
C. Maximum Velocity Project
D. Mobile Version Prototype
11. Phương pháp phân phối ứng dụng di động nào thường được sử dụng cho giai đoạn thử nghiệm nội bộ trước khi phát hành chính thức?
A. Phân phối qua App Store/Google Play
B. Phân phối Ad-hoc/TestFlight/Firebase App Distribution
C. Phân phối qua website
D. Phân phối qua email
12. Công nghệ nào sau đây giúp ứng dụng di động có thể hoạt động offline hoặc nhanh hơn bằng cách lưu trữ dữ liệu cục bộ?
A. Cloud computing
B. Push notifications
C. Local storage/Caching
D. GPS
13. Phương pháp kiểm thử nào sau đây tập trung vào việc kiểm tra giao diện người dùng và trải nghiệm người dùng của ứng dụng di động?
A. Unit testing
B. Integration testing
C. UI/UX testing
D. Performance testing
14. Ứng dụng di động `hybrid` là gì?
A. Ứng dụng chỉ chạy trên một hệ điều hành cụ thể.
B. Ứng dụng được phát triển bằng công nghệ web (HTML, CSS, JavaScript) và đóng gói bằng wrapper native.
C. Ứng dụng được phát triển hoàn toàn bằng ngôn ngữ native của hệ điều hành.
D. Ứng dụng chỉ hoạt động khi có kết nối internet.
15. Khi chọn cơ sở dữ liệu cho ứng dụng di động, yếu tố nào sau đây quan trọng NHẤT đối với ứng dụng hoạt động offline?
A. Khả năng mở rộng trên cloud
B. Khả năng đồng bộ hóa dữ liệu offline-online
C. Tốc độ truy vấn dữ liệu lớn
D. Chi phí sử dụng cơ sở dữ liệu
16. Vấn đề bảo mật nào sau đây thường gặp trong phát triển ứng dụng di động?
A. Lỗi chính tả trong code
B. Lộ lọt dữ liệu người dùng (Data leakage)
C. Thiết kế UI/UX không hấp dẫn
D. Thời gian tải ứng dụng chậm
17. Framework nào sau đây phổ biến cho việc phát triển ứng dụng iOS native?
A. Flutter
B. React Native
C. SwiftUI/UIKit
D. Xamarin
18. Framework phát triển ứng dụng di động cross-platform 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
19. Trong ngữ cảnh phát triển ứng dụng di động, `push notification` được sử dụng cho mục đích chính nào?
A. Theo dõi vị trí người dùng
B. 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ở
C. Thu thập dữ liệu hành vi người dùng
D. Tối ưu hóa hiệu suất ứng dụng
20. Loại kiểm thử nào sau đây đảm bảo ứng dụng di động hoạt động ổn định dưới tải lượng người dùng lớn?
A. Functional testing
B. Security testing
C. Performance testing (Load testing)
D. Usability testing
21. Khi phát triển ứng dụng di động, `code signing` có vai trò gì?
A. Tối ưu hóa code để tăng hiệu suất
B. Mã hóa toàn bộ mã nguồn ứng dụng
C. Xác thực nguồn gốc và tính toàn vẹn của ứng dụng, đảm bảo không bị giả mạo hoặc can thiệp
D. Tự động generate code từ thiết kế UI
22. Điều gì KHÔNG phải là một lợi ích chính của việc sử dụng framework cross-platform để phát triển ứng dụng di động?
A. Tiết kiệm chi phí và thời gian phát triển
B. Tái sử dụng code trên nhiều nền tảng
C. Hiệu suất và trải nghiệm người dùng native tuyệt đối
D. Dễ dàng tiếp cận nhiều nền tảng người dùng
23. Ngôn ngữ lập trình nào sau đây thường được sử dụng chính để phát triển ứng dụng Android native?
A. Swift
B. Objective-C
C. Java/Kotlin
D. React Native
24. Hình thức kiếm tiền nào sau đây phổ biến cho ứng dụng di động miễn phí?
A. Bán ứng dụng trả phí
B. Mô hình Subscription (thuê bao)
C. Quảng cáo trong ứng dụng (In-app advertising)
D. Bán ứng dụng cho doanh nghiệp
25. Lỗi `memory leak` trong ứng dụng di động gây ra hậu quả chính nào?
A. Ứng dụng bị crash (đóng đột ngột)
B. Dung lượng ứng dụng tăng lên
C. Mức tiêu thụ pin giảm
D. Tốc độ tải ứng dụng nhanh hơn
26. Khi ứng dụng di động cần truy cập các tính năng phần cứng của thiết bị (camera, GPS, cảm biến), ứng dụng native thường có lợi thế gì so với hybrid?
A. Dễ dàng phát triển hơn
B. Hiệu suất truy cập và độ tin cậy cao hơn
C. Khả năng tái sử dụng code cao hơn
D. Chi phí phát triển thấp hơn
27. Công cụ nào sau đây thường được dùng để phân tích hiệu suất ứng dụng di động (performance monitoring)?
A. IDE (Integrated Development Environment)
B. APM (Application Performance Monitoring) tools (New Relic, Firebase Performance Monitoring)
C. Version control system (Git)
D. Project management tools (Jira)
28. Phương pháp nào sau đây giúp cải thiện trải nghiệm người dùng (UX) khi ứng dụng di động tải dữ liệu từ server?
A. Tăng kích thước hình ảnh
B. Sử dụng loading indicator/skeleton screen
C. Giảm số lượng tính năng
D. Không hiển thị thông báo gì
29. Công nghệ nào sau đây giúp kiểm tra tự động giao diện người dùng (UI) của ứng dụng di động?
A. Unit test frameworks
B. UI automation frameworks (Appium, Espresso, XCTest)
C. Performance monitoring tools
D. Code analysis tools
30. Công nghệ nào sau đây giúp tối ưu hóa kích thước ứng dụng di động khi phát hành?
A. Tăng độ phân giải hình ảnh
B. Sử dụng code không tối ưu
C. Code splitting/Tree shaking/Asset compression
D. Thêm nhiều thư viện không cần thiết