Проверяет знание нативных модулей React Native для доступа к файловой системе, камере и другим возможностям устройства.
React Native позволяет взаимодействовать с нативными функциями устройства, такими как файловая система, камера, геолокация и другие, через систему нативных модулей. Это достигается с помощью моста (bridge), который связывает JavaScript-код с нативными API iOS и Android. Для упрощения разработки используются популярные сторонние библиотеки, которые предоставляют готовые интерфейсы.
Для работы с файловой системой применяется библиотека react-native-fs. Она позволяет читать, записывать, удалять файлы и управлять директориями. Пример записи файла:
import RNFS from 'react-native-fs';
const path = `${RNFS.DocumentDirectoryPath}/example.txt`;
RNFS.writeFile(path, 'Hello, World!', 'utf8')
.then(() => console.log('File written'))
.catch(err => console.error(err));Для доступа к камере используется react-native-camera или expo-camera (если проект на Expo). Библиотека предоставляет компонент RNCamera, который можно встроить в интерфейс. Пример:
import { RNCamera } from 'react-native-camera';
const CameraView = () => (
<RNCamera
style={{ flex: 1 }}
type={RNCamera.Constants.Type.back}
captureAudio={false}
/>
);Для доступа к нативным функциям необходимо запрашивать разрешения. На Android используется PermissionsAndroid, на iOS — Permissions из библиотеки react-native-permissions. Пример запроса разрешения камеры на Android:
import { PermissionsAndroid } from 'react-native';
async function requestCameraPermission() {
try {
const granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.CAMERA
);
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
console.log('Camera permission granted');
}
} catch (err) {
console.warn(err);
}
}Использование нативных модулей в React Native позволяет создавать приложения с полным доступом к возможностям устройства, сохраняя единую кодовую базу для iOS и Android. Это особенно полезно для приложений, требующих работы с файлами, медиа или датчиками, где веб-технологии ограничены.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию