PRM393Chưa đoKỳ 8Chuyên ngành Cập nhật 07/09/2026
Lập trình di động (Flutter) - Mobile Programming
512Câu hỏi
1Bộ đề
15Chủ đề
5,02 đánh giá
Câu hỏi của môn
64/512 câuCòn 448
45Why should setState() be called sparingly?4 lựa chọnDễ100% trả lời đúng
AIt increases app size
BIt may trigger unnecessary rebuilds
CIt blocks UI thread
DIt causes memory leaks
Lời giải
Mở trang câu hỏi này →setState() được gọi quá nhiều có thể gây ra hiệu suất chậm và tiêu tốn tài nguyên. Khi bạn gọi setState(), React sẽ thực hiện một lần render lại toàn bộ ứng dụng. Điều này có thể gây ra hiệu suất chậm nếu bạn gọi setState() quá nhiều lần trong một khoảng thời gian ngắn. Ngoài ra, nếu bạn gọi setState() trong một vòng lặp, nó có thể gây ra hiệu suất chậm và thậm chí là gây ra lỗi. Vì vậy, bạn nên gọi setState() một cách cẩn thận và chỉ khi thực sự cần thiết.
46What is test isolation?4 lựa chọnDễ100% trả lời đúng
ARunning all tests together
BIndependence of test cases
CUI separation
DMocking only
Lời giải
Mở trang câu hỏi này →Test isolation là một kỹ thuật quan trọng trong lập trình thử nghiệm (testing). Nó đảm bảo rằng mỗi thử nghiệm (test case) được thực hiện độc lập và không ảnh hưởng đến các thử nghiệm khác. Điều này giúp ngăn chặn các vấn đề liên quan đến sự phụ thuộc giữa các thử nghiệm, chẳng hạn như thay đổi trạng thái của ứng dụng giữa các thử nghiệm. Test isolation giúp đảm bảo rằng mỗi thử nghiệm được thực hiện trong một trạng thái nhất định, không bị ảnh hưởng bởi các thử nghiệm trước đó. Điều này giúp tăng cường độ chính xác và đáng tin cậy của các thử nghiệm.
47What does crossAxisAlignment control?4 lựa chọnTrung bình60% trả lời đúng
AVertical alignment in Column
BHorizontal alignment in Column
CChild order
DWidget size
Lời giải
Mở trang câu hỏi này →CrossAxisAlignment là một thuộc tính trong Flutter giúp bạn kiểm soát cách sắp xếp các widget con trong một Column hoặc Row. Nó quyết định cách các widget con được sắp xếp theo chiều ngang hoặc chiều dọc. Ví dụ, nếu bạn muốn các widget con được sắp xếp theo chiều ngang, bạn có thể sử dụng thuộc tính CrossAxisAlignment.start. Nếu bạn muốn các widget con được sắp xếp theo chiều dọc, bạn có thể sử dụng thuộc tính CrossAxisAlignment.center. Ngoài ra, thuộc tính này cũng có thể được sử dụng để sắp xếp các widget con theo chiều ngang trong một Row.
48Which tool is commonly used for version control?4 lựa chọn
A
SVNB
GitC
FTPD
ZIPLời giải
Mở trang câu hỏi này →Các công cụ quản lý phiên bản là một phần quan trọng trong quy trình phát triển phần mềm. Git là một trong những công cụ quản lý phiên bản phổ biến nhất hiện nay. Nó cho phép các nhà phát triển theo dõi và quản lý các thay đổi trong mã nguồn của họ một cách hiệu quả. Git cung cấp các tính năng như kiểm soát phiên bản, quản lý thay đổi, và hợp tác giữa các nhà phát triển. Nó cũng cho phép các nhà phát triển tạo ra các phiên bản mới của mã nguồn và quay lại các phiên bản trước đó nếu cần thiết. SVN cũng là một công cụ quản lý phiên bản, nhưng nó không phổ biến như Git. FTP và ZIP không phải là công cụ quản lý phiên bản, mà là các công cụ khác phục vụ cho các mục đích khác.
49'pubspec.yaml' is the file where external dependencies and image assets must be registered.2 lựa chọn
A
TrueB
FalseLời giải
Mở trang câu hỏi này →Tệp 'pubspec.yaml' là nơi đăng ký các phụ thuộc bên ngoài và tài nguyên hình ảnh. Trong tệp này, bạn có thể thêm các thư viện hoặc gói phụ thuộc mà bạn muốn sử dụng trong dự án của mình. Ngoài ra, tệp này cũng được sử dụng để đăng ký các tài nguyên hình ảnh, chẳng hạn như hình ảnh hoặc icon. Điều này giúp bạn có thể sử dụng các tài nguyên này trong ứng dụng của mình một cách dễ dàng. Khi bạn thêm một phụ thuộc mới hoặc một tài nguyên hình ảnh, bạn cần thêm nó vào tệp 'pubspec.yaml' để có thể sử dụng nó trong dự án của mình.
50Clean Architecture separates which parts?4 lựa chọn
AUI and logic
BColors
CAnimations
DWidgets only
Lời giải
Mở trang câu hỏi này →Clean Architecture là một phương pháp thiết kế phần mềm giúp tách biệt các phần logic và giao diện người dùng. Theo Clean Architecture, các phần logic và giao diện người dùng nên được tách biệt hoàn toàn để dễ dàng thay đổi và bảo trì. Điều này giúp giảm thiểu sự phụ thuộc giữa các phần và tăng cường khả năng mở rộng của hệ thống. Các phần logic và giao diện người dùng nên được thiết kế độc lập và chỉ giao tiếp với nhau thông qua các giao diện rõ ràng. Điều này giúp giảm thiểu sự phức tạp và tăng cường khả năng hiểu và bảo trì hệ thống.
51Everything in Flutter is a ____4 lựa chọn
A
ClassB
ObjectC
WidgetD
FunctionLời giải
Mở trang câu hỏi này →Trong Flutter, mọi thứ đều được biểu diễn dưới dạng một đối tượng Widget. Widget là một đơn vị cơ bản trong Flutter, có thể được sử dụng để xây dựng các giao diện người dùng phức tạp. Mỗi Widget có thể chứa các Widget khác, tạo nên một cấu trúc cây Widget. Điều này cho phép các nhà phát triển tạo ra các giao diện người dùng linh hoạt và dễ dàng tùy chỉnh. Ví dụ, một Button Widget có thể chứa một Text Widget để hiển thị nội dung của nút. Điều này giúp giảm thiểu mã code và tăng hiệu suất xây dựng ứng dụng. Ngoài ra, các Widget trong Flutter cũng có thể được tùy chỉnh để đáp ứng các yêu cầu cụ thể của ứng dụng.
AOne per platform codebase
BTwo
CThree
DOne for all platforms
Lời giải
Mở trang câu hỏi này →Flutter cho phép các nhà phát triển sử dụng một cơ sở mã nguồn duy nhất cho tất cả các nền tảng. Điều này có nghĩa là bạn có thể viết mã nguồn một lần và sử dụng nó trên cả Android và iOS mà không cần phải viết lại mã nguồn. Điều này giúp giảm thiểu thời gian và công sức cần thiết để phát triển ứng dụng di động. Flutter sử dụng một ngôn ngữ lập trình gọi là Dart, và nó cung cấp một bộ công cụ mạnh mẽ để giúp bạn xây dựng ứng dụng di động nhanh chóng và hiệu quả.
53Flutter app starts from which file?4 lựa chọn
A
app.dartB
home.dartC
main.dartD
index.dartLời giải
Mở trang câu hỏi này →Khi tạo một ứng dụng Flutter, bạn cần biết nơi mà ứng dụng bắt đầu chạy. Trong Flutter, ứng dụng bắt đầu chạy từ một file gọi là main. File main thường được đặt tên là main.dart và nằm ở thư mục gốc của ứng dụng. File này chứa hàm main, nơi mà ứng dụng sẽ được khởi tạo và bắt đầu chạy. Hàm main được gọi khi ứng dụng được chạy và nó sẽ khởi tạo các widget cần thiết để hiển thị trên màn hình. Vì vậy, khi chọn đáp án, bạn cần chọn file main.dart.
54Flutter apps are compiled to?4 lựa chọn
AJava bytecode
BJavaScript only
CNative machine code
DHTML
Lời giải
Mở trang câu hỏi này →Flutter là một framework để xây dựng ứng dụng di động và web. Khi chúng ta xây dựng ứng dụng Flutter, nó sẽ được biên dịch thành mã máy tính (Native machine code) mà không cần qua các bước biên dịch trung gian như Java bytecode. Điều này cho phép ứng dụng Flutter chạy nhanh và hiệu suất cao trên các thiết bị di động. Ngoài ra, Flutter cũng hỗ trợ biên dịch thành mã JavaScript, nhưng đó không phải là lựa chọn mặc định. Vì vậy, câu trả lời đúng cho câu hỏi này là "Native machine code".
55Flutter doctor is used to?4 lựa chọn
ABuild app
BDebug UI
CCheck environment setup
DInstall packages
Lời giải
Mở trang câu hỏi này →Flutter Doctor là một công cụ quan trọng trong môi trường phát triển Flutter. Nó được sử dụng để kiểm tra và xác minh rằng môi trường phát triển của bạn đã được cấu hình đúng cách. Điều này bao gồm việc kiểm tra phiên bản của các gói phụ thuộc, xác minh rằng các gói cần thiết đã được cài đặt và đảm bảo rằng các thiết bị và hệ điều hành được hỗ trợ đã được cấu hình đúng cách. Flutter Doctor giúp bạn xác định và giải quyết các vấn đề môi trường trước khi bắt đầu phát triển ứng dụng của mình.
56Flutter engine is mainly written in?4 lựa chọn
ADart
BJava
CKotlin
DC/C++
Lời giải
Mở trang câu hỏi này →Flutter Engine là một phần quan trọng của framework Flutter, chịu trách nhiệm thực hiện các tác vụ cơ bản như vẽ hình ảnh, xử lý sự kiện và quản lý bộ nhớ. Nó được viết bằng ngôn ngữ lập trình C/C++, giúp tăng tốc độ và hiệu suất của ứng dụng. Ngôn ngữ C/C++ được chọn vì nó cung cấp khả năng truy cập trực tiếp vào các tài nguyên hệ thống và cho phép tối ưu hóa mã nguồn để chạy trên nhiều nền tảng khác nhau. Điều này giúp Flutter Engine có thể chạy mượt mà trên nhiều loại thiết bị, từ điện thoại thông minh đến máy tính bảng và máy tính để bàn.
57Flutter follows which programming style?4 lựa chọn
ADeclarative
BProcedural
CLow-level
DScript-based
Lời giải
Mở trang câu hỏi này →Flutter sử dụng một phong cách lập trình được gọi là Declarative. Điều này có nghĩa là bạn sẽ chỉ định những gì bạn muốn ứng dụng của mình làm, chứ không phải là cách thức để đạt được 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 khi xây dựng ứng dụng. Trong Flutter, bạn sẽ sử dụng các widget để xây dựng giao diện người dùng và các hàm để xử lý logic ứng dụng. Điều này cho phép bạn tập trung vào việc xây dựng ứng dụng mà không cần phải lo lắng về các chi tiết kỹ thuật.
58Flutter is best described as?4 lựa chọn
ABackend framework
BUI toolkit
CDatabase system
DOperating system
Lời giải
Mở trang câu hỏi này →Flutter là một công cụ lập trình ứng dụng di động đa nền tảng được phát triển bởi Google. Nó cho phép các nhà phát triển tạo ra các ứng dụng di động với giao diện người dùng (UI) đẹp mắt và tương tác. Flutter sử dụng ngôn ngữ lập trình Dart để xây dựng 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 di động với hiệu suất cao và độ tin cậy cao. Flutter không chỉ được sử dụng để tạo ra các ứng dụng di động, mà còn có thể được sử dụng để tạo ra các ứng dụng web và desktop. Vì vậy, Flutter được coi là một công cụ lập trình đa nền tảng, và nó được sử dụng rộng rãi trong ngành công nghiệp phát triển ứng dụng.
59Flutter renders UI using?4 lựa chọn
ANative UI components
BHTML tags
CIts own rendering engine
DXML
Lời giải
Mở trang câu hỏi này →Flutter sử dụng một công nghệ rendering riêng biệt để tạo ra giao diện người dùng. Điều này cho phép Flutter có thể chạy trên nhiều nền tảng khác nhau mà không cần phải thay đổi mã nguồn. Công nghệ rendering này cho phép Flutter có thể tạo ra giao diện người dùng mượt mà và nhanh chóng, ngay cả khi ứng dụng có nhiều tính năng phức tạp. Ngoài ra, công nghệ rendering riêng biệt của Flutter cũng cho phép các nhà phát triển có thể tùy chỉnh giao diện người dùng một cách dễ dàng và linh hoạt.
60Flutter supports which platforms?4 lựa chọn
AAndroid only
BiOS only
CMobile only
DMobile, Web, Desktop
Lời giải
Mở trang câu hỏi này →Flutter là một công cụ phát triển ứng dụng đa nền tảng, cho phép bạn xây dựng các ứng dụng di động, web và desktop một cách dễ dàng. Với Flutter, bạn có thể tạo ra các ứng dụng di động cho cả Android và iOS, cũng như các ứng dụng web và desktop. Điều này giúp bạn tiết kiệm thời gian và công sức, đồng thời cũng giúp bạn có thể phát triển các ứng dụng đa nền tảng một cách hiệu quả. Flutter hỗ trợ nhiều nền tảng khác nhau, bao gồm cả các nền tảng di động, web và desktop, giúp bạn có thể tiếp cận với nhiều người dùng hơn.
61Flutter UI is built using?4 lựa chọn
AScreens
BPages
CWidget tree
DLayout files
Lời giải
Mở trang câu hỏi này →Flutter UI được xây dựng dựa trên cấu trúc cây widget. Cây widget là một cấu trúc dữ liệu được sử dụng để mô tả giao diện người dùng trong Flutter. Nó bao gồm các widget con, được kết hợp lại với nhau để tạo thành giao diện người dùng cuối cùng. Mỗi widget trong cây widget có thể chứa các thuộc tính và hành vi riêng biệt, giúp tạo nên một giao diện người dùng phức tạp và linh hoạt. Cây widget cũng cho phép các nhà phát triển dễ dàng tái sử dụng và tùy chỉnh các phần của giao diện người dùng, giúp tăng tốc quá trình phát triển và giảm thiểu lỗi.
62Flutter uses which UI paradigm?4 lựa chọn
A
ImperativeB
DeclarativeC
ProceduraD
FunctionalLời giải
Mở trang câu hỏi này →Flutter sử dụng một mô hình UI đặc biệt gọi là mô hình Declarative. Mô hình này cho phép bạn mô tả trạng thái của ứng dụng mà không cần phải mô tả từng bước thực hiện để đạt được trạng thái đó. Điều này giúp giảm thiểu mã code và tăng cường hiệu suất. Trong mô hình Declarative, bạn chỉ cần xác định trạng thái mong muốn và Flutter sẽ tự động cập nhật giao diện dựa trên trạng thái đó. Điều này giúp bạn tập trung vào việc xây dựng ứng dụng mà không phải lo lắng về việc cập nhật giao diện.
63Flutter was originally called?4 lựa chọn
A
FlameB
SkyC
DartUID
JetLời giải
Mở trang câu hỏi này →Flutter ban đầu được gọi là Sky. Đây là tên ban đầu của công nghệ phát triển ứng dụng di động được phát triển bởi Google. Flutter được tạo ra bởi một nhóm các nhà phát triển tại Google, bao gồm Dominic Wagner, Colin Ackermann và Yohei Nakajima. Họ bắt đầu dự án này vào năm 2011 và đã phát hành phiên bản đầu tiên vào năm 2015. Tên gọi 'Sky' được chọn vì nó tượng trưng cho sự tự do và không giới hạn của công nghệ này.
64Flutter widgets are?4 lựa chọn
A
MutableB
ImmutableC
GlobalD
StaticLời giải
Mở trang câu hỏi này →Trong Flutter, các widget được thiết kế để không thể thay đổi sau khi được tạo ra. Điều này có nghĩa là một widget được tạo ra một lần và không thể được thay đổi sau đó. Điều này giúp đảm bảo tính nhất quán và hiệu suất của ứng dụng. Các widget trong Flutter được gọi là 'Immutable' vì chúng không thể thay đổi. Điều này giúp các nhà phát triển có thể dự đoán được hành vi của ứng dụng và dễ dàng bảo trì. Ngoài ra, tính chất immutable của các widget giúp giảm thiểu khả năng xảy ra lỗi và tăng cường tính bảo mật của ứng dụng.