Ngân hàng câu hỏi môn Lập trình di động (Flutter) - Mobile Programming | Qiz HUB
Ngân hàng câu hỏi môn Lập trình di động (Flutter) - Mobile Programming
Lập trình di động với Flutter là môn học xây dựng ứng dụng đa nền tảng Android và iOS bằng Flutter và ngôn ngữ Dart. Ngân hàng câu hỏi trắc nghiệm PRM393 có đáp án bao quát trọn bộ chương trình: cài đặt Flutter SDK, cấu trúc project, hot reload và DevTools, nền tảng Dart (kiểu dữ liệu, null safety, class, collection, Map, generics, mixin, package và import), lập trình bất đồng bộ với Future, async/await, Stream, StreamController và StreamBuilder, dựng giao diện bằng widget tree, Scaffold, ListView, ThemeData, bố cục Row/Column, GridView, Stack, LayoutBuilder, MediaQuery và responsive UI, điều hướng với Navigator 1.0/2.0, named route, deep link và guarded route, form với TextEditingController và validation, gọi REST API bằng http, parse JSON, FutureBuilder, phân trang và caching, lưu trữ cục bộ bằng SharedPreferences, SQLite (sqflite) và Hive, xác thực bằng token và refresh token, quản lý state với setState, Provider, BLoC và Cubit, animation với Tween cùng AnimatedSwitcher, tối ưu hiệu năng bằng RepaintBoundary và thu hẹp phạm vi rebuild, kiểm thử unit/widget/integration, quản lý mã nguồn bằng Git và build - release ứng dụng. Tài liệu ôn thi FE dành cho sinh viên FPT University.
Học từ ngân hàng câu hỏi
Bắt đầu một phiên học theo môn
Tiến độ của bạn sẽ luôn được tính toán và đồng bộ trực tiếp theo tổng số lượng câu hỏi mới nhất của môn học này.
490Ngân hàng hiện tại
--Tiến độ môn
Số câu hỏi
Dải câu hỏi Độ khó tổng thể: Đang tính
Đăng nhập để theo dõi tiến độ theo môn và tiếp tục phiên học đang dở.
Phiên sắp tạo
490 câu Chế độ học Trộn
Bạn cần đăng nhập để bắt đầu học từ ngân hàng câu hỏi và lưu tiến độ theo môn.
0Dễ · --
0Trung bình · --
0Khó · --
--Đã học
--Đang nắm chắc
Đăng nhập để xemLần hoàn tất gần nhất
Đăng nhập để bắt đầu học từ ngân hàng câu hỏi, lưu tiến độ theo môn, resume phiên đang dở và cập nhật thống kê dài hạn.
Đang hiển thị 15 / 490 câu hỏi
Bấm vào từng câu để xem đáp án
#001
—
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AFix layout
BSpeed up builds
Prevent memory leaksĐÚNG
DImprove UI
Giải thích
Animations trong ứng dụng thường tạo ra các đối tượng tạm thời, nếu không được xóa bỏ đúng cách sẽ dẫn đến tình trạng "nhớ" bộ nhớ, gây ra hiện tượng "memory leaks". Điều này có thể khiến ứng dụng trở nên chậm chạp và thậm chí bị treo. Vì vậy, việc xóa bỏ animations một cách hợp lý là rất quan trọng để đảm bảo ứng dụng hoạt động trơn tru và hiệu suất cao.
#002
—
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
DevToolsĐÚNG
BInspector
CEmulator
DHot reload
Giải thích
Để giúp debug các yêu cầu mạng trong Flutter, bạn có thể sử dụng công cụ DevTools. DevTools là một công cụ mạnh mẽ giúp bạn theo dõi và debug các hoạt động của ứng dụng Flutter của mình. Trong đó, bạn có thể xem các yêu cầu mạng đang được thực hiện, bao gồm cả các yêu cầu GET và POST. Ngoài ra, bạn cũng có thể xem các phản hồi từ server và các lỗi xảy ra trong quá trình gửi yêu cầu. Điều này giúp bạn dễ dàng tìm ra nguyên nhân của các vấn đề và sửa lỗi nhanh chóng. Vì vậy, DevTools là công cụ cần thiết để giúp bạn debug các yêu cầu mạng trong Flutter.
#003
—
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
Aflutter clean
Bflutter run
Cflutter doctor
flutter build apkĐÚNG
Giải thích
Để xây dựng một bản phát hành APK trong Flutter, bạn cần sử dụng lệnh 'flutter build apk'. Lệnh này sẽ tạo ra một bản phát hành APK có thể được tải xuống và cài đặt trên thiết bị di động. Lệnh này khác với 'flutter run', vì 'flutter run' chỉ chạy ứng dụng trên thiết bị di động hoặc máy ảo, nhưng không tạo ra một bản phát hành APK. Ngoài ra, 'flutter clean' được sử dụng để xóa các tệp tạm thời được tạo ra trong quá trình xây dựng, trong khi 'flutter doctor' được sử dụng để kiểm tra xem Flutter đã được cấu hình đúng chưa. Vì vậy, nếu bạn muốn tạo một bản phát hành APK, bạn cần sử dụng lệnh 'flutter build apk'.
#004
—
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AHot restart
BUsing global variables
CLarge widgets
Fine-grained state updatesĐÚNG
Giải thích
Để giảm thiểu việc rebuild widget không cần thiết, chúng ta cần hiểu về các khái niệm liên quan đến widget và cách thức hoạt động của chúng trong ứng dụng. Fine-grained state updates là một phương pháp giúp tối ưu hóa quá trình rebuild widget. Phương pháp này liên quan đến việc cập nhật trạng thái của widget một cách tinh tế và có chọn lọc, giúp giảm thiểu số lượng rebuild không cần thiết. Điều này giúp cải thiện hiệu suất của ứng dụng và giảm thiểu thời gian tải trang. Fine-grained state updates cũng giúp giảm thiểu việc sử dụng tài nguyên hệ thống, từ đó giúp ứng dụng trở nên nhanh chóng và ổn định hơn. Vì vậy, phương pháp này là lựa chọn tốt nhất để giảm thiểu việc rebuild widget không cần thiết.
#005
—
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AIntegration test
BWidget test
Unit testĐÚNG
DSystem test
Giải thích
Loại thử nghiệm nào kiểm tra các chức năng hoặc lớp riêng lẻ? Trong quá trình phát triển phần mềm, việc kiểm tra các chức năng hoặc lớp riêng lẻ là rất quan trọng để đảm bảo rằng từng phần của hệ thống hoạt động chính xác. Loại thử nghiệm này được gọi là thử nghiệm đơn vị (Unit test). Thử nghiệm đơn vị là một loại thử nghiệm kiểm tra các chức năng hoặc lớp riêng lẻ, thường được sử dụng để kiểm tra các hàm, phương thức hoặc lớp trong một chương trình. Mục tiêu của thử nghiệm đơn vị là đảm bảo rằng từng phần của hệ thống hoạt động chính xác và không có lỗi. Điều này giúp phát hiện ra các lỗi sớm và cải thiện chất lượng của hệ thống.
#006
—
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AnalysisĐÚNG
BImplementation
CDesign
DTesting
Giải thích
Pha thu thập yêu cầu là bước quan trọng trong quá trình phát triển phần mềm. Trong pha này, người phát triển sẽ thu thập thông tin về yêu cầu của khách hàng, bao gồm cả yêu cầu chức năng và phi chức năng. Yêu cầu chức năng bao gồm các tính năng mà phần mềm cần phải có, trong khi yêu cầu phi chức năng bao gồm các tính chất mà phần mềm cần phải đáp ứng, chẳng hạn như độ tin cậy, bảo mật và hiệu suất. Quá trình thu thập yêu cầu này giúp người phát triển hiểu rõ hơn về nhu cầu của khách hàng và đảm bảo rằng phần mềm được phát triển đáp ứng được các yêu cầu đó.
#007
—
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
Widget testĐÚNG
BUnit test
CLoad test
DIntegration test
Giải thích
Trong Flutter, có nhiều loại thử nghiệm khác nhau để đảm bảo ứng dụng hoạt động chính xác. Một trong những loại thử nghiệm quan trọng là thử nghiệm UI (User Interface). Thử nghiệm UI giúp kiểm tra các thành phần giao diện người dùng của ứng dụng, bao gồm các widget, layout và tương tác giữa chúng. Để kiểm tra các thành phần UI, chúng ta sử dụng loại thử nghiệm gọi là Widget test. Widget test cho phép chúng ta kiểm tra xem các widget của ứng dụng có hoạt động đúng như mong đợi hay không, bao gồm cả việc kiểm tra các trạng thái và hành vi của chúng. Vì vậy, trong các lựa chọn trên, Widget test là lựa chọn đúng.
#008
—
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AAPI responses
BDatabase state
UI appearance consistencyĐÚNG
DAuthentication
Giải thích
Golden testing là một phương pháp kiểm thử giúp xác minh xem ứng dụng của chúng ta có tuân thủ đúng thiết kế giao diện người dùng (UI) hay không. Nó liên quan đến việc so sánh giao diện người dùng thực tế với giao diện người dùng đã được định nghĩa trước đó, được gọi là 'golden UI'. Golden testing giúp đảm bảo rằng ứng dụng của chúng ta luôn có một giao diện người dùng nhất quán và đẹp mắt, giúp cải thiện trải nghiệm người dùng. Tuy nhiên, golden testing không liên quan đến việc kiểm thử các yêu cầu khác như phản hồi API, trạng thái cơ sở dữ liệu hoặc tính bảo mật.
#009
—
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
Ensure consistent access controlĐÚNG
BReduce UI code
CImprove animations
DSimplify layout
Giải thích
Authentication state được trung tâm hóa để đảm bảo rằng mọi người dùng đều có quyền truy cập đồng nhất. Khi trạng thái xác thực được trung tâm hóa, hệ thống có thể kiểm soát và quản lý quyền truy cập một cách hiệu quả. Điều này giúp ngăn chặn các vấn đề liên quan đến quyền truy cập không đồng nhất và đảm bảo rằng mọi người dùng đều có quyền truy cập phù hợp với vai trò của họ. Ngoài ra, việc trung tâm hóa trạng thái xác thực cũng giúp đơn giản hóa quy trình quản lý quyền truy cập và giảm thiểu khả năng xảy ra lỗi.
#010
—
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AUI quality
Protect user dataĐÚNG
CReduce code
DImprove speed
Giải thích
Chức năng xác thực an toàn trong ứng dụng di động là rất quan trọng vì nó giúp bảo vệ thông tin cá nhân và dữ liệu của người dùng khỏi bị truy cập trái phép. Khi người dùng đăng nhập vào ứng dụng, họ sẽ cung cấp thông tin đăng nhập của mình, bao gồm tên người dùng và mật khẩu. Nếu ứng dụng không có chức năng xác thực an toàn, kẻ tấn công có thể dễ dàng truy cập vào thông tin đăng nhập của người dùng và sử dụng nó để thực hiện các hành động trái phép. Điều này có thể dẫn đến việc lộ thông tin cá nhân, trộm cắp tài khoản ngân hàng hoặc thậm chí là việc truy cập vào các hệ thống quan trọng. Vì vậy, chức năng xác thực an toàn là rất quan trọng để bảo vệ người dùng khỏi các mối đe dọa này.
#011
—
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AIt manages navigation
BIt replaces core concepts
CIt handles authentication
Apps can work without deep optimizationĐÚNG
Giải thích
Chương 13 được coi là tùy chọn (Plus) vì nó cung cấp các tính năng nâng cao giúp ứng dụng có thể hoạt động mà không cần tối ưu hóa sâu. Điều này cho phép các nhà phát triển tập trung vào việc xây dựng ứng dụng mà không cần lo lắng về việc tối ưu hóa các khía cạnh khác. Tuy nhiên, cần lưu ý rằng các tính năng trong Chương 13 không phải lúc nào cũng cần thiết và có thể được bỏ qua nếu không cần thiết. Điều quan trọng là phải hiểu rõ về các yêu cầu của ứng dụng và quyết định có nên sử dụng các tính năng trong Chương 13 hay không.
#012
—
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ADeveloping server-side applications only
BDesigning databases for mobile apps
Creating native applications from a single codebaseĐÚNG
DBuilding operating systems for mobile devices
Giải thích
Flutter là một công cụ lập trình đa nền tảng được sử dụng để tạo ra các ứng dụng di động và máy tính bảng. Nó cho phép các nhà phát triển xây dựng các ứng dụng có thể chạy trên nhiều nền tảng khác nhau, bao gồm cả Android và iOS. Flutter sử dụng ngôn ngữ lập trình Dart để tạo ra các ứng dụng, và nó cung cấp một bộ công cụ mạnh mẽ để tạo ra các ứng dụng có giao diện người dùng đẹp và hiệu suất cao. Flutter được sử dụng để tạo ra các ứng dụng di động, bao gồm cả các ứng dụng trò chơi, ứng dụng giải trí và ứng dụng kinh doanh.
#013
—
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
User session startsĐÚNG
BApp closes
CTheme changes
DNavigation resets
Giải thích
Sau khi đăng nhập thành công, hệ thống sẽ tạo một phiên làm việc (session) cho người dùng. Phiên làm việc này sẽ lưu trữ thông tin về người dùng, bao gồm cả quyền truy cập vào các tính năng và dữ liệu. Khi phiên làm việc được tạo, người dùng sẽ có thể thực hiện các hành động trên hệ thống mà không cần phải đăng nhập lại. Điều này giúp người dùng có trải nghiệm mượt mà và thuận tiện hơn khi sử dụng hệ thống.
#014
—
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ASimplify UI
BImprove navigation
Reduce unnecessary rebuildsĐÚNG
DBetter animations
Giải thích
Tại sao nên giữ nhà nước (state) càng gần với địa phương (local) càng tốt? Nhà nước (state) là một phần quan trọng của ứng dụng, chứa thông tin về trạng thái hiện tại của ứng dụng. Khi nhà nước được giữ gần với địa phương, ứng dụng sẽ trở nên linh hoạt và dễ dàng quản lý hơn. Điều này giúp giảm thiểu sự phức tạp và tăng cường hiệu suất của ứng dụng. Ngoài ra, việc giữ nhà nước gần với địa phương còn giúp giảm thiểu sự phụ thuộc vào các thành phần khác của ứng dụng, làm cho ứng dụng trở nên dễ dàng bảo trì và sửa lỗi hơn.
#015
—
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
Ahttp
flutter_blocĐÚNG
Csqflite
Dprovider
Giải thích
BLoC (Business Logic Component) là một kiến trúc ứng dụng được sử dụng trong Flutter để quản lý logic kinh doanh. Để sử dụng kiến trúc BLoC trong Flutter, chúng ta cần sử dụng gói flutter_bloc. Gói này cung cấp các lớp và phương thức cần thiết để xây dựng và quản lý logic kinh doanh trong ứng dụng. Nó giúp chúng ta tách rời logic kinh doanh khỏi giao diện người dùng và tạo ra ứng dụng có khả năng mở rộng và dễ bảo trì hơn.