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
130Câu hỏi
7Chủ đề
Câu hỏi của môn
104/130 câuCòn 26
85Which of the following statements about the persistence mechanism of AsyncStorage in React Native is true?4 lựa chọnTrung bình
AAsyncStorage uses a SQLite database to store key-value pairs on both iOS and Android
BAsyncStorage is an unencrypted, asynchronous, persistent, key-value storage system that is global to the app
CAsyncStorage stores data in a secure, encrypted format by default
DAsyncStorage automatically synchronizes stored data across devices using a cloud service
Lời giải
Mở trang câu hỏi này →AsyncStorage là một cơ chế lưu trữ giá trị theo cặp khóa-giá trị không được mã hóa, bất đồng bộ và bền vững, toàn cục cho ứng dụng. Nó cho phép lưu trữ dữ liệu trong ứng dụng mà không cần phải lưu trữ trong bộ nhớ RAM. AsyncStorage sử dụng cơ chế lưu trữ cơ bản, không phức tạp như cơ chế lưu trữ SQLite. Điều này làm cho AsyncStorage trở nên dễ sử dụng và hiệu suất cao hơn. Ngoài ra, AsyncStorage không tự động đồng bộ hóa dữ liệu trên các thiết bị khác nhau sử dụng dịch vụ đám mây.
86Which of the following steps is NOT necessary when creating a custom native module for Android?4 lựa chọnTrung bình
ACreating a Java class that extends ReactContextBaseJavaModule
BRegistering the module in a Package class that implements ReactPackage
CAdding the native module to the MainApplication.java file
DModifying the AndroidManifest.xml to declare the native module
Lời giải
Mở trang câu hỏi này →Khi tạo một mô-đun bản địa tùy chỉnh cho Android, có một số bước cần thực hiện để đảm bảo mô-đun hoạt động đúng cách. Đầu tiên, bạn cần tạo một lớp Java mở rộng ReactContextBaseJavaModule để định nghĩa các phương thức của mô-đun. Sau đó, bạn cần đăng ký mô-đun trong một lớp Package thực hiện ReactPackage để chỉ định nó được sử dụng trong ứng dụng. Cuối cùng, bạn cần thêm mô-đun vào file MainApplication.java để liên kết nó với ứng dụng. Tuy nhiên, bước không cần thiết là chỉnh sửa AndroidManifest.xml để khai báo mô-đun bản địa. Điều này là vì AndroidManifest.xml chỉ cần khai báo các thành phần Android cơ bản, còn các mô-đun bản địa được quản lý bởi React Native.
87Consider the following steps in creating a native module in React Native for iOS. Which step involves creating a bridging header?4 lựa chọnTrung bình67% trả lời đúng
AWriting the native module in Objective-C or Swift
BRegistering the module with RCTBridgeModule
CConfiguring the Xcode project to include the bridging header
DUsing RCT_EXPORT_METHOD to expose methods to JavaScript
Lời giải
Mở trang câu hỏi này →Bước tạo một mô-đun bản địa trong React Native cho iOS là một quá trình phức tạp. Tuy nhiên, bước quan trọng là cấu hình dự án Xcode để bao gồm tệp bridging header. Tệp này cho phép giao tiếp giữa mã Objective-C hoặc Swift và mã JavaScript trong ứng dụng React Native. Khi tạo một mô-đun bản địa, bạn cần tạo một tệp bridging header để ánh xạ các hàm và biến từ Objective-C hoặc Swift sang JavaScript. Điều này cho phép bạn sử dụng các hàm và biến này trong mã JavaScript của ứng dụng. Bước này là rất quan trọng vì nó cho phép giao tiếp giữa hai ngôn ngữ lập trình khác nhau.
88Which hook would you use to get access to the navigation object within a functional component in React Navigation?4 lựa chọnTrung bình67% trả lời đúng
A
useRouteB
useNavigationC
useNavigationStateD
useIsFocusedLời giải
Mở trang câu hỏi này →Để có thể truy cập vào đối tượng navigation trong một thành phần chức năng trong React Navigation, bạn cần sử dụng một trong các hook sau. Tuy nhiên, hook phù hợp nhất trong trường hợp này là "useNavigation". Hook này cho phép bạn truy cập vào đối tượng navigation và sử dụng các phương thức của nó để điều hướng giữa các màn hình. Ví dụ, bạn có thể sử dụng phương thức navigate để chuyển sang màn hình khác hoặc sử dụng phương thức goBack để trở về màn hình trước đó. Ngoài ra, bạn cũng có thể sử dụng phương thức replace để thay thế màn hình hiện tại bằng màn hình khác. Tóm lại, "useNavigation" là hook phù hợp nhất để truy cập vào đối tượng navigation trong một thành phần chức năng trong React Navigation.
Aconst route = useRoute(); const routeName = route.name;
Bconst navigation = useNavigation(); const routeName = navigation.state.routeName;
Cconst navigationState = useNavigationState(state => state.routes[state.index].name);
Dconst isFocused = useIsFocused(); const routeName = isFocused ? navigation.routeName : '';
Lời giải
Mở trang câu hỏi này →Để lấy tên của đường dẫn hiện tại sử dụng hooks trong React Navigation, bạn có thể sử dụng hàm `useRoute()` từ thư viện React Navigation. Hàm này sẽ trả về đối tượng hiện tại của đường dẫn, và bạn có thể lấy tên của nó bằng cách sử dụng thuộc tính `name`. Ví dụ, bạn có thể sử dụng mã sau để lấy tên của đường dẫn hiện tại:
`const route = useRoute(); const routeName = route.name;`
Hàm `useRoute()` sẽ trả về đối tượng hiện tại của đường dẫn, và bạn có thể lấy tên của nó bằng cách sử dụng thuộc tính `name`. Điều này giúp bạn có thể dễ dàng lấy tên của đường dẫn hiện tại trong ứng dụng của mình.
90How would you apply the useReducer hook to manage complex state logic in a React Native application?4 lựa chọnDễ
ABy using the useReducer hook to create a custom reducer function and dispatch actions to update state
BBy using a combination of useState hooks to manage different slices of state separately
CBy implementing a custom state management solution using context and higher-order components
DBy directly mutating the state object within functional components to update state
Lời giải
Mở trang câu hỏi này →Để áp dụng useReducer vào việc quản lý logic trạng thái phức tạp trong ứng dụng React Native, bạn cần hiểu rõ về cách sử dụng hook này. useReducer cho phép bạn tạo một hàm giảm (reducer) tùy chỉnh và thực hiện các hành động (actions) để cập nhật trạng thái. Bằng cách sử dụng useReducer, bạn có thể tách rời logic trạng thái phức tạp thành các phần nhỏ hơn và dễ quản lý hơn. Điều này giúp bạn dễ dàng theo dõi và debug trạng thái ứng dụng. Ngoài ra, useReducer cũng cho phép bạn sử dụng các hành động (actions) để cập nhật trạng thái, giúp bạn có thể dễ dàng quản lý trạng thái ứng dụng trong thời gian dài.
91What is the primary purpose of a Native module in a React Native application that uses useReducer?4 lựa chọnTrung bình67% trả lời đúng
ATo manage asynchronous tasks and side effects
BTo define the layout and styling of user interface components
CTo handle state management and data flow within the application
DTo interact with platform-specific APIs and functionalities
Lời giải
Mở trang câu hỏi này →Mô-đun Native trong ứng dụng React Native sử dụng useReducer có mục đích chính là để tương tác với các API và tính năng đặc trưng của nền tảng. Điều này cho phép ứng dụng truy cập vào các tính năng và chức năng đặc biệt của thiết bị di động, chẳng hạn như camera, GPS, v.v. Mô-đun Native cũng giúp ứng dụng tương tác với các hệ thống bên ngoài, chẳng hạn như mạng xã hội, email, v.v. Việc sử dụng mô-đun Native giúp ứng dụng trở nên linh hoạt và đa dạng hơn, đồng thời cũng giúp ứng dụng có thể tận dụng được các tính năng và chức năng đặc trưng của nền tảng.
92Which component is used to navigate between different screens?4 lựa chọnTrung bình
A
StackNavigationB
StackNavigatorC
ScreenNavigateD
PressNavigatorLời giải
Mở trang câu hỏi này →Component được sử dụng để di chuyển giữa các màn hình khác nhau là gì? Trong React Navigation, có một số loại navigation khác nhau, nhưng StackNavigator là một trong những phổ biến nhất. Nó cho phép bạn tạo một chồng màn hình, nơi mỗi màn hình được thêm vào chồng khi người dùng chuyển sang màn hình mới. Điều này cho phép người dùng quay lại các màn hình trước đó bằng cách nhấn nút quay lại. StackNavigator cũng cho phép bạn định nghĩa các màn hình và các hành động khi người dùng chuyển sang màn hình mới.
93Which of the following is not main navigator that React Navigation comes bundled with?4 lựa chọnTrung bình
ATab Navigator
BDrawer Navigator
CStack Navigator
DSwitch Navigator
Lời giải
Mở trang câu hỏi này →React Navigation cung cấp một số loại trình điều hướng chính, bao gồm Tab Navigator, Drawer Navigator và Stack Navigator. Mỗi loại trình điều hướng này đều có mục đích và cách sử dụng riêng. Tab Navigator thường được sử dụng để tạo giao diện tab, giúp người dùng dễ dàng chuyển đổi giữa các màn hình khác nhau. Drawer Navigator thường được sử dụng để tạo giao diện menu kéo, giúp người dùng dễ dàng truy cập vào các chức năng khác nhau. Stack Navigator thường được sử dụng để tạo giao diện màn hình chồng lên nhau, giúp người dùng dễ dàng chuyển đổi giữa các màn hình khác nhau. Switch Navigator không phải là một loại trình điều hướng chính được cung cấp bởi React Navigation. Thay vào đó, nó thường được sử dụng để tạo giao diện chuyển đổi giữa các màn hình khác nhau, nhưng nó không phải là một phần của bộ công cụ trình điều hướng chính của React Navigation.
94Given the following component4 lựa chọncó codeTrung bình50% trả lời đúng
using useNavigationState, what does currentRoute contain? const currentRoute = useNavigationState(state => state.routes[state.index].name);AThe index of the current route in the navigation stack
BThe parameters of the current route
CThe name of the current route
DThe state object of the current route
Lời giải
Mở trang câu hỏi này →Khi sử dụng useNavigationState, bạn có thể truy cập thông tin về trạng thái hiện tại của ứng dụng. Trong trường hợp này, bạn đang sử dụng hàm state => state.routes[state.index].name để lấy tên của tuyến đường hiện tại. Tuyến đường hiện tại được xác định bởi index, đó là vị trí của tuyến đường trong mảng routes. Vì vậy, currentRoute sẽ chứa tên của tuyến đường hiện tại.
A
DrawerLayoutAndroidB
TouchableNativeFeedbackC
InputAccessoryViewD
SafeAreaViewLời giải
Mở trang câu hỏi này →iOS là một hệ điều hành di động được phát triển bởi Apple. Để xây dựng các ứng dụng iOS, chúng ta cần sử dụng các thành phần (components) đặc trưng của hệ điều hành này. Trong số các lựa chọn sau, hãy chọn 2 thành phần là các thành phần iOS.
96Which component is a wrapper for making views respond properly to touches in Android?4 lựa chọnTrung bình67% trả lời đúng
A
TouchableNativeB
TouchableNativeFeedbackC
TouchableViewD
DataPickerLời giải
Mở trang câu hỏi này →Trong Android, để tạo ra các giao diện người dùng (views) phản hồi đúng cách khi chạm vào, chúng ta cần sử dụng một thành phần cụ thể. Thành phần này được gọi là TouchableNativeFeedback. Nó giúp tạo ra hiệu ứng chạm vào cho các view, bao gồm cả việc thay đổi màu sắc và hình dạng khi người dùng chạm vào. Điều này giúp tạo ra trải nghiệm người dùng tốt hơn và hấp dẫn hơn. Ngoài ra, TouchableNativeFeedback cũng giúp cải thiện hiệu suất của ứng dụng bằng cách giảm thiểu số lượng các thành phần cần được cập nhật khi người dùng chạm vào.
97Consider the following code4 lựa chọncó codeDễ
using useIsFocused: import React, {
useEffect
}from 'react'; import { Text } from 'react-native'; import { useIsFocused } from '@react-navigation/native'; function HomeScreen() { const isFocused = useIsFocused(); useEffect(() => {
if (isFocused) {
console.log('HomeScreen is focused');
}else { console.log('HomeScreen is not focused'); } }, [isFocused]); return <Text>Home Screen</Text>; } What will be logged if the component is initially focused and then loses focus?
A'HomeScreen is focused' initially, followed by 'HomeScreen is not focused'
B'HomeScreen is focused' only
C'HomeScreen is not focused' only
D'HomeScreen is not focused' initially, followed by 'HomeScreen is focused'
Lời giải
Mở trang câu hỏi này →Khi sử dụng hàm `useIsFocused` trong React Native Navigation, chúng ta có thể theo dõi xem màn hình hiện tại có đang được tập trung hay không. Trong ví dụ trên, chúng ta có một hàm `HomeScreen` sử dụng `useIsFocused` để kiểm tra xem màn hình đang được tập trung hay không. Hàm `useEffect` được sử dụng để thực hiện hành động khi màn hình được tập trung hoặc mất tập trung. Nếu màn hình được tập trung, sẽ in ra 'HomeScreen is focused' vào console, còn nếu mất tập trung, sẽ in ra 'HomeScreen is not focused'. Khi component được khởi tạo và ban đầu được tập trung, sẽ in ra 'HomeScreen is focused'. Sau đó, khi màn hình mất tập trung, sẽ in ra 'HomeScreen is not focused'. Vì vậy, kết quả sẽ là 'HomeScreen is focused' ban đầu, sau đó là 'HomeScreen is not focused'.
A
PickerB
ImageC
ImagePickerD
ViewLời giải
Mở trang câu hỏi này →Để chụp ảnh bằng camera trên thiết bị, bạn cần sử dụng một thành phần bản địa cụ thể. Trong các lựa chọn đã cho, thành phần "ImagePicker" là lựa chọn đúng. Thành phần này cho phép bạn truy cập vào camera của thiết bị và chụp ảnh. Nó cung cấp một giao diện đơn giản để chọn ảnh từ thư viện ảnh hoặc chụp ảnh mới bằng camera.
99What is React Native?4 lựa chọnDễ
AJavaScript library
BOpen source framework is specifically designed to build iOS and Android mobile apps
CProgramming language
DCloud computing platform
Lời giải
Mở trang câu hỏi này →React Native là một công cụ mở nguồn (open source) được thiết kế để xây dựng các ứng dụng di động cho cả iOS và Android. Nó cho phép các nhà phát triển xây dựng các ứng dụng di động sử dụng ngôn ngữ lập trình JavaScript và các thư viện của React. Điều này giúp giảm thiểu thời gian và công sức cần thiết để xây dựng các ứng dụng di động cho cả hai nền tảng. React Native sử dụng một số công nghệ như JSX, JavaScript và các thư viện của React để tạo ra các thành phần UI và logic ứng dụng. Nó cũng cung cấp một số tính năng như khả năng tương tác với các thư viện và dịch vụ của hệ điều hành, cũng như khả năng sử dụng các công nghệ khác như GPS, camera và mạng xã hội.
A
renderSectionHeaderB
renderItemC
renderRowD
renderComponentLời giải
Mở trang câu hỏi này →SectionList là một thành phần trong React Native cho phép người dùng hiển thị danh sách các phần tử. Khi sử dụng SectionList, mỗi phần tử trong danh sách sẽ được render theo một cách nhất định. Trong trường hợp này, chúng ta cần chọn hai phương thức render cho SectionList. Theo mặc định, SectionList sẽ render mỗi phần tử trong danh sách theo phương thức renderItem. Tuy nhiên, chúng ta cũng có thể render phần đầu của mỗi phần tử theo phương thức renderSectionHeader. Điều này cho phép người dùng tùy chỉnh giao diện của SectionList theo ý muốn.
A
DrawerLayoutAndroidB
TouchableNativeFeedbackC
InputAccessoryViewD
SafeAreaViewLời giải
Mở trang câu hỏi này →Các thành phần Android là những phần quan trọng của ứng dụng Android. Trong các lựa chọn trên, có hai thành phần Android chính là DrawerLayoutAndroid và TouchableNativeFeedback. DrawerLayoutAndroid là một layout giúp tạo ra thanh kéo (drawer) cho ứng dụng, cho phép người dùng truy cập vào các tính năng hoặc màn hình khác. TouchableNativeFeedback là một thành phần giúp tạo ra hiệu ứng chạm (touch feedback) cho các yếu tố UI trong ứng dụng. Cả hai thành phần này đều được sử dụng rộng rãi trong việc xây dựng ứng dụng Android.
102In Bridge architecture, which thread is the place where the entire JavaScript code is placed and compiled?4 lựa chọnDễ100% trả lời đúng
AJavaScript Thread
BNative Thread
CJSRender Thread
DRender Thread
Lời giải
Mở trang câu hỏi này →Trong kiến trúc Bridge, luồng JavaScript (JavaScript Thread) là nơi chứa toàn bộ mã JavaScript và được biên dịch. Đây là luồng chính nơi thực hiện các tác vụ liên quan đến JavaScript, bao gồm việc biên dịch, chạy và quản lý mã JavaScript. Luồng JavaScript đóng vai trò quan trọng trong việc đảm bảo hiệu suất và tính ổn định của ứng dụng web.
103Which of the following best describes a style sheet?4 lựa chọnTrung bình
AA file containing JavaScript code used for handling user interactions within components
BA data structure used for managing state within React Native components
CA set of rules defining the appearance and layout of components in a React Native application
DA utility for handling asynchronous tasks and data fetching in React Native
Lời giải
Mở trang câu hỏi này →Một style sheet trong React Native là một tập hợp các quy tắc định nghĩa về hình thức và bố cục của các thành phần trong một ứng dụng. Nó giúp tạo ra một giao diện thống nhất và dễ sử dụng cho người dùng. Style sheet thường bao gồm các thuộc tính như màu sắc, kích thước, kiểu font, v.v. để định nghĩa cách các thành phần sẽ được hiển thị trên màn hình. Việc sử dụng style sheet giúp giảm thiểu sự phức tạp trong việc thiết kế và phát triển ứng dụng, đồng thời cũng giúp tăng cường tính linh hoạt và dễ dàng bảo trì.
104Consider the following code snippet using AsyncStorage in React Native. What will be the output if saveData('username', 'john_doe') is called, followed by readData('username'), assuming no errors occur?4 lựa chọnDễ100% trả lời đúng
ARetrieved value: john_doe
BError reading data [error object]
CError saving data [error object]
DNo output, as AsyncStorage operations are non-blocking and asynchronous
Lời giải
Mở trang câu hỏi này →Khi thực hiện lệnh saveData('username', 'john_doe') sau đó là readData('username'), AsyncStorage sẽ lưu trữ giá trị 'john_doe' vào bộ nhớ cache. Sau đó, khi thực hiện lệnh readData('username'), AsyncStorage sẽ đọc giá trị đã lưu trữ trước đó và trả về giá trị 'john_doe'. Vì vậy, kết quả cuối cùng sẽ là 'Retrieved value: john_doe'. Điều này cho thấy rằng AsyncStorage là một cơ chế lưu trữ dữ liệu tạm thời, giúp ứng dụng có thể lưu trữ và đọc dữ liệu mà không cần phải lưu trữ vào bộ nhớ chính.