Перейти к содержанию

Введение в нативные модули

Native Module и Native Components — это наши стабильные технологии, используемые в унаследованной архитектуре. Они будут устаревшими в будущем, когда новая архитектура станет стабильной. Новая архитектура использует Turbo Native Module и Fabric Native Components для достижения аналогичных результатов.

Иногда приложению React Native требуется доступ к API нативной платформы, который по умолчанию недоступен в JavaScript, например, к нативным API для доступа к Apple или Google Pay. Возможно, вы хотите повторно использовать некоторые существующие библиотеки Objective-C, Swift, Java или C++ без необходимости повторной реализации на JavaScript, или написать высокопроизводительный многопоточный код для таких вещей, как обработка изображений.

Система NativeModule раскрывает экземпляры Java/Objective-C/C++ (native) классов для JavaScript (JS) в виде JS объектов, что позволяет выполнять произвольный native код из JS. Хотя мы не ожидаем, что эта функция станет частью обычного процесса разработки, ее наличие крайне важно. Если React Native не экспортирует нативный API, который нужен вашему JS-приложению, вы должны быть в состоянии экспортировать его самостоятельно!

Настройка нативного модуля

Существует два способа написать нативный модуль для вашего приложения React Native:

  1. Непосредственно в проектах iOS/Android приложения React Native.
  2. В виде пакета NPM, который может быть установлен в качестве зависимости вашим/другими приложениями React Native.

В этом руководстве мы рассмотрим реализацию нативного модуля непосредственно в приложении React Native. Однако нативный модуль, который вы создадите в следующем руководстве, может быть распространен как NPM-пакет. Если вы заинтересованы в этом, ознакомьтесь с руководством Setting Up a Native Module as a NPM Package.

Начало работы

В следующих разделах мы расскажем вам о том, как создать нативный модуль непосредственно в приложении React Native. В качестве предварительного условия вам понадобится приложение React Native для работы в нем. Вы можете выполнить шаги здесь для создания приложения React Native, если у вас его еще нет.

Представьте, что вы хотите получить доступ к API календаря iOS/Android из JavaScript в приложении React Native для создания событий календаря. React Native не предоставляет JavaScript API для взаимодействия с родными библиотеками календаря. Однако с помощью нативных модулей вы можете написать нативный код, который взаимодействует с нативными API календаря. Затем вы можете вызывать этот код через JavaScript в своем приложении React Native.

В следующих разделах вы создадите такой нативный модуль Calendar как для Android, так и для iOS.

Комментарии