MMA301DễKỳ 7Chuyên ngành Cập nhật 24/07/2026

Multiplatform Mobile App Development - Phát triển ứng dụng di động đa nền tảng

Ôn luyện MMA301 – Phát triển ứng dụng di động đa nền tảng với React Native: ngân hàng câu hỏi trắc nghiệm có giải thích chi tiết, luyện thi cuối kỳ hiệu quả. Nội dung bao quát React Native, Expo, component & navigation, styling Flexbox, quản lý state bằng hooks/Redux/Context API, FlatList/SectionList, thông báo đẩy, lưu trữ AsyncStorage/SQLite/Firebase, tích hợp Gemini AI và xuất bản ứng dụng iOS/Android. Môn 3 tín chỉ tại FPT University, tiên quyết FER202.

130Câu hỏi
7Chủ đề

Câu hỏi của môn

84/130 câuCòn 46
ArenderItem
BrenderComponent
CitemComponent
DlistRenderer
Lời giải
Trong React Native, khi sử dụng FlatList để hiển thị danh sách dữ liệu, bạn có thể tùy chỉnh cách hiển thị từng mục trong danh sách bằng cách sử dụng một trong các thuộc tính sau: renderItem, renderComponent, itemComponent, listRenderer. Tuy nhiên, thuộc tính chính và được sử dụng rộng rãi nhất để tùy chỉnh cách hiển thị từng mục trong danh sách là renderItem. Với renderItem, bạn có thể sử dụng một hàm để trả về một thành phần JSX sẽ được sử dụng để hiển thị từng mục trong danh sách. Hàm này sẽ nhận vào một đối tượng có chứa dữ liệu của từng mục và một số thuộc tính khác như index, separators, v.v. Từ đó, bạn có thể tùy chỉnh cách hiển thị dữ liệu của từng mục theo ý muốn của mình.
Mở trang câu hỏi này →
AonClick
BonPress
ConButtonPress
DonClicked
Lời giải
Để xác định chức năng được thực hiện khi nút được nhấn, bạn cần sử dụng thuộc tính 'onPress' của Button component trong React Native. Đây là thuộc tính quan trọng giúp bạn liên kết hành động với nút, chẳng hạn như thực hiện một chức năng khi người dùng nhấn nút. Ví dụ, bạn có thể sử dụng thuộc tính này để thực hiện một chức năng khi người dùng nhấn nút, chẳng hạn như chuyển trang hoặc thực hiện một hành động khác. Ngoài ra, thuộc tính 'onPress' cũng cho phép bạn kiểm soát hành động được thực hiện khi nút được nhấn, chẳng hạn như ngăn chặn hành động khi người dùng nhấn nút.
Mở trang câu hỏi này →
67What is the purpose of the SectionList component?4 lựa chọnTrung bình
ATo display a list of items in a single column layout
BTo display a list of items in a grid layout
CTo create a carousel of images
DTo display a list of items organized into sections
Lời giải
Mục đích của phần tử SectionList là để hiển thị một danh sách các mục được tổ chức thành các phần. Nó cho phép người dùng dễ dàng phân loại và tìm kiếm thông tin. SectionList thường được sử dụng trong các ứng dụng di động để hiển thị danh sách các mục được sắp xếp theo thứ tự, chẳng hạn như danh sách các bài viết, danh sách các sản phẩm hoặc danh sách các sự kiện. Nó cung cấp một giao diện người dùng thân thiện và dễ sử dụng, giúp người dùng dễ dàng tìm kiếm và truy cập thông tin.
Mở trang câu hỏi này →
AtrackColor
BthumbColor
ConColor
DoffColor
Lời giải
Để tùy chỉnh màu sắc của đường track khi switch ở trạng thái 'on', bạn cần sử dụng thuộc tính 'trackColor' của Switch component trong React Native. Đây là thuộc tính quan trọng giúp bạn có thể thay đổi màu sắc của đường track khi switch được bật. Ví dụ, bạn có thể sử dụng thuộc tính này để tạo ra một giao diện người dùng hấp dẫn và dễ sử dụng hơn. Ngoài ra, bạn cũng có thể sử dụng các thuộc tính khác như 'thumbColor' để tùy chỉnh màu sắc của nút bấm và 'onColor' để tùy chỉnh màu sắc của nút bấm khi switch được bật.
Mở trang câu hỏi này →
69Which component is used to group multiple components together?4 lựa chọnTrung bình67% trả lời đúng
AText
BView
CComponent
DScrollView
Lời giải
Trong thiết kế giao diện người dùng, việc nhóm các thành phần lại với nhau là một phần quan trọng để tạo nên một bố cục đẹp mắt và dễ sử dụng. Trong các lựa chọn trên, thành phần được sử dụng để nhóm nhiều thành phần lại với nhau là "View". View có thể chứa nhiều thành phần khác nhau như Text, Image, Button, v.v. và giúp chúng ta tạo nên một bố cục phức tạp nhưng vẫn dễ dàng quản lý.
Mở trang câu hỏi này →
Aconst [value, setValue] = useState('');
Bconst [value, setValue] = useState;
Cconst value = useState('');
Dconst value = useState('Initial Value');
Lời giải
Để khởi tạo trạng thái của một TextInput sử dụng useState hook, bạn cần sử dụng cú pháp sau: const [value, setValue] = useState('');. Trong đó, 'value' là giá trị hiện tại của TextInput, còn 'setValue' là hàm được sử dụng để cập nhật giá trị của TextInput. Bạn có thể khởi tạo giá trị ban đầu của TextInput bằng cách thêm giá trị vào trong useState(). Ví dụ, nếu bạn muốn khởi tạo giá trị ban đầu của TextInput là 'Initial Value', bạn có thể sử dụng cú pháp: const [value, setValue] = useState('Initial Value');. Tuy nhiên, nếu bạn không thêm giá trị vào trong useState(), thì giá trị ban đầu của TextInput sẽ là null hoặc undefined.
Mở trang câu hỏi này →
71Which of the following is TRUE related to the renderSectionHeader prop?4 lựa chọnTrung bình67% trả lời đúng
AThe renderSectionHeader prop is a function which takes an item from the sections array and maps it to a React Element
BThe renderSectionHeader prop is used to render the footer for each section in a SectionList or FlatList component
CThe renderSectionHeader prop is used to render the items within each section in a SectionList or FlatList component
DThe renderSectionHeader prop is used to render the separator between sections in a SectionList or FlatList component
Lời giải
Prop renderSectionHeader được sử dụng để tạo tiêu đề cho từng phần trong một danh sách SectionList hoặc FlatList. Nó là một hàm có thể được sử dụng để tùy chỉnh cách hiển thị tiêu đề cho từng phần. Hàm này nhận một phần từ mảng sections và trả về một thành phần React. Điều này cho phép bạn tạo ra các tiêu đề tùy chỉnh cho từng phần, chẳng hạn như tiêu đề có thể được tùy chỉnh dựa trên dữ liệu của phần. Việc sử dụng renderSectionHeader giúp bạn có thể tạo ra các danh sách có giao diện người dùng tùy chỉnh và hấp dẫn hơn.
Mở trang câu hỏi này →
Atitle
Btext
Clabel
Dvalue
Lời giải
Để xác định văn bản được hiển thị trên nút button trong ứng dụng React, bạn cần sử dụng thuộc tính phù hợp của thành phần Button. Trong các lựa chọn đã cho, thuộc tính nào cho phép bạn định nghĩa văn bản được hiển thị trên nút button?
Mở trang câu hỏi này →
AAuto-correction
BAuto-capitalization
CPlaceholder text
DAutomatic data validation
Lời giải
Câu hỏi này yêu cầu bạn chọn tính năng không phải là thuộc tính của TextInput. TextInput là một thành phần trong giao diện người dùng, thường được sử dụng để nhập dữ liệu từ người dùng. Tính năng của TextInput bao gồm tự động hoàn thiện (auto-correction), tự động viết hoa (auto-capitalization) và hiển thị văn bản mẫu (placeholder text). Tuy nhiên, tính năng xác thực dữ liệu tự động (automatic data validation) không phải là thuộc tính của TextInput. Thay vào đó, nó thường được thực hiện bởi các thành phần khác trong ứng dụng, chẳng hạn như Button hoặc Form.
Mở trang câu hỏi này →
ALayout direction specifies the direction in which children and text in a hierarchy should be laid out
BBy default, React Native lays out with LTR layout direction
CLayout direction can be changed dynamically based on the language or user preference requirements
DLayout direction is often used to support RTL (right-to-left) languages such as Arabic or Hebrew
Lời giải
Layout direction là một thuộc tính quan trọng trong thiết kế giao diện người dùng. Nó xác định hướng sắp xếp của các yếu tố con và văn bản trong một cấu trúc hierarchy. Điều này có nghĩa là layout direction sẽ quyết định hướng sắp xếp của các thành phần trong giao diện, chẳng hạn như văn bản, hình ảnh, nút bấm, v.v. Trong React Native, layout direction có thể được thay đổi dựa trên ngôn ngữ hoặc yêu cầu của người dùng. Điều này giúp hỗ trợ các ngôn ngữ viết từ phải sang trái như Ả Rập hoặc Do Thái. Tuy nhiên, layout direction không phải lúc nào cũng có thể được thay đổi động, vì nó phụ thuộc vào thiết kế và yêu cầu của giao diện.
Mở trang câu hỏi này →
75Why do you use flex dimensions in a component's style?4 lựa chọnDễ100% trả lời đúng
AUse flex in a component's style to have the component expand and shrink dynamically based on available space
BUse flex to specify a fixed width for the component
CUse flex to align the component to the center of the screen
DUse flex to apply a border to the component
Lời giải
Flex chiều dọc và chiều ngang cho phép các thành phần trong một container thay đổi kích thước tự động dựa trên không gian có sẵn. Điều này giúp các thành phần có thể mở rộng hoặc thu nhỏ theo nhu cầu của ứng dụng. Việc sử dụng flex trong style của một thành phần giúp đảm bảo rằng thành phần đó luôn có kích thước phù hợp với không gian có sẵn, từ đó tạo ra một giao diện người dùng mượt mà và dễ sử dụng. Ngoài ra, flex cũng cho phép các thành phần được sắp xếp theo các hướng khác nhau, chẳng hạn như chiều ngang hoặc chiều dọc, giúp tạo ra một bố cục giao diện người dùng linh hoạt và đa dạng.
Mở trang câu hỏi này →
Apercentage
Babsolute
Cpixel
Dauto
Lời giải
Để lấp đầy một phần màn hình mà không muốn sử dụng layout flex, bạn có thể sử dụng các giá trị sau trong thuộc tính style của thành phần.
Mở trang câu hỏi này →
Arow
Bcolumn
Ccolumn-reverse
Drow-reverse
Lời giải
Để sắp xếp các mục linh hoạt trong một hàng từ trái sang phải, chúng ta cần sử dụng thuộc tính flex-direction với giá trị 'row'. Đây là thuộc tính quan trọng trong CSS Flexbox giúp định hướng sắp xếp các mục linh hoạt trong một dòng. Khi sử dụng 'row', các mục sẽ được sắp xếp theo thứ tự từ trái sang phải, giúp tạo ra một bố cục rõ ràng và dễ hiểu. Ngoài ra, chúng ta cũng có thể sử dụng các giá trị khác như 'column' để sắp xếp các mục theo cột, 'column-reverse' để sắp xếp các mục theo cột nhưng từ phải sang trái và 'row-reverse' để sắp xếp các mục theo hàng nhưng từ phải sang trái.
Mở trang câu hỏi này →
78What are fixed dimensions used for?4 lựa chọnTrung bình
ATo set the dimensions of a component is by adding a fixed width and height to the style
BTo make components responsive
CTo dynamically adjust component size based on available space
DTo align components within a layout
Lời giải
Các chiều cố định được sử dụng để đặt kích thước cố định cho các thành phần. Điều này có nghĩa là bạn có thể thêm chiều rộng và chiều cao cố định vào thuộc tính style của thành phần để xác định kích thước của nó. Ví dụ, bạn có thể thêm thuộc tính width: 500px và height: 300px vào style của một div để đặt kích thước cố định cho nó. Điều này giúp bạn có thể kiểm soát kích thước của thành phần một cách chính xác và đảm bảo rằng nó luôn có kích thước như mong muốn.
Mở trang câu hỏi này →
AUsing percentages (%)
BUsing flex values
CUsing absolute values (density-independent pixels)
DUsing relative values (em, rem)
Lời giải
Trong React Native, các kích thước cố định được định nghĩa trong kiểu dáng bằng cách sử dụng giá trị tuyệt đối, được gọi là density-independent pixels (dip). Điều này có nghĩa là kích thước được đo bằng số pixel, nhưng không phụ thuộc vào mật độ màn hình. Ví dụ, nếu bạn muốn một thành phần có chiều rộng 300 pixel, bạn có thể sử dụng giá trị 'width: 300' trong kiểu dáng. Điều này cho phép bạn tạo ra các thành phần có kích thước cố định trên các thiết bị khác nhau, mà không cần phải tính toán kích thước dựa trên mật độ màn hình.
Mở trang câu hỏi này →
AGrid
BFlexbox
CStack
DView
Lời giải
Để đảm bảo bố cục thống nhất trên các kích thước màn hình khác nhau, người ta thường sử dụng Flexbox. Flexbox cho phép bạn sắp xếp các phần tử theo chiều dọc hoặc chiều ngang, đồng thời tự động điều chỉnh kích thước dựa trên kích thước màn hình. Điều này giúp tạo ra một bố cục thống nhất và linh hoạt trên các thiết bị khác nhau.
Mở trang câu hỏi này →
Aflex-start
Bcenter
Cflex-end
Dspace-between
Espace-around
Lời giải
Tính chất justifyContent là thuộc tính giúp xác định cách sắp xếp các phần tử flexbox theo chiều dọc. Default option của justifyContent là flex-start, nghĩa là các phần tử sẽ được sắp xếp từ trên xuống dưới theo thứ tự xuất hiện trong HTML. Điều này có nghĩa là phần tử đầu tiên sẽ được đặt ở vị trí đầu tiên và phần tử cuối cùng sẽ được đặt ở vị trí cuối cùng. Ví dụ, nếu bạn có một div chứa 3 phần tử và muốn chúng được sắp xếp theo chiều dọc, bạn có thể sử dụng justifyContent là flex-start để đạt được kết quả mong muốn.
Mở trang câu hỏi này →
82What is the purpose of the Geolocation API?4 lựa chọnDễ
ATo manage user authentication and authorization
BTo handle navigation and routing within the application
CTo access to geographical location data associated with a user's device
DTo interact with external services and retrieve data
Lời giải
API vị trí địa lý (Geolocation API) là một tính năng của trình duyệt web, cho phép ứng dụng web truy cập vị trí địa lý của thiết bị người dùng. Mục đích chính của API này là cung cấp thông tin vị trí địa lý chính xác, bao gồm cả địa chỉ IP và vị trí GPS. Điều này cho phép các ứng dụng web cung cấp trải nghiệm người dùng tùy chỉnh, chẳng hạn như hiển thị bản đồ, cung cấp thông tin thời tiết, hoặc thậm chí là điều hướng. Để sử dụng API vị trí địa lý, ứng dụng web cần được phép truy cập vị trí của người dùng, và người dùng cần đồng ý cho phép ứng dụng truy cập thông tin này.
Mở trang câu hỏi này →
83Which of the following is not TRUE related to API Platform?4 lựa chọnDễ75% trả lời đúng
AAn API platform is a software system with integrated tools and processes that allow teams to effectively build, manage, publish, and consume APIs
BAn API platform helps API producers manage the entire API lifecycle - from design to production - while engaging directly with API consumers
CAPI platforms complement and enhance existing workflows through integrations with source code management tools, CI/CD pipelines, cloud infrastructure, and APM solutions
DAPI platforms are primarily used for managing user authentication and authorization tasks
Lời giải
Một nền tảng API là một hệ thống phần mềm tích hợp các công cụ và quy trình cho phép các nhóm xây dựng, quản lý, xuất bản và tiêu thụ API một cách hiệu quả. Nó giúp các nhà sản xuất API quản lý toàn bộ vòng đời của API - từ thiết kế đến sản xuất - trong khi tương tác trực tiếp với người tiêu thụ API. Các nền tảng API bổ sung và nâng cao các quy trình hiện có thông qua tích hợp với các công cụ quản lý mã nguồn, các dòng luồng CI/CD, cơ sở hạ tầng đám mây và giải pháp theo dõi hiệu suất APM. Tuy nhiên, các nền tảng API không chỉ được sử dụng để quản lý các tác vụ xác thực và ủy quyền người dùng.
Mở trang câu hỏi này →
AUse Image
BUse ViewMap
CInstall react-native-maps and use MapView component
DInstall library react-native-maps and use Map component
Lời giải
Để sử dụng Geolocation API để hiển thị một bản đồ, bạn cần thực hiện các bước sau. Trước hết, bạn cần cài đặt thư viện react-native-maps bằng cách chạy lệnh npm install react-native-maps trong terminal. Sau đó, bạn cần thêm thư viện này vào dự án của mình bằng cách thêm import { MapView } từ thư viện react-native-maps. Tiếp theo, bạn cần tạo một component mới và sử dụng MapView để hiển thị bản đồ. Bạn có thể sử dụng các phương thức của MapView để tùy chỉnh bản đồ, chẳng hạn như thêm các marker, polyline, polygon, v.v. Ngoài ra, bạn cần sử dụng Geolocation API để lấy vị trí hiện tại của thiết bị và hiển thị bản đồ dựa trên vị trí đó. Điều này sẽ giúp bạn tạo ra một ứng dụng bản đồ động và chính xác.
Mở trang câu hỏi này →