Первые мысли перед созданием приложения…

Для моего предстоящего проекта я решил создать приложение для телефона с использованием React Native, а не PWA (прогрессивное веб-приложение), поскольку я хотел бы использовать некоторые из встроенных функций телефона: камеру, геолокацию, push-уведомления и т. д., которые было бы сложнее включить в PWA.

После небольшого поиска в Google о React Native стало ясно, что создание приложения с использованием этой библиотеки может быть не таким сложным, как может показаться на первый взгляд, в основном из-за нового ребенка в блоке: Expo.

Приложения Expo — это приложения React Native, содержащие Expo SDK. SDK — это нативная и JS-библиотека, которая обеспечивает доступ к системным функциям устройства (таким как камера, контакты, локальное хранилище и другое оборудование). Это означает, что вам не нужно использовать Xcode или Android Studio или писать какой-либо нативный код, а также делает ваш проект на чистом JS очень переносимым, поскольку он может работать в любой нативной среде, содержащей Expo SDK. Источник: https://docs.expo.io

Проще говоря, Expo упрощает создание приложений, потому что устраняет необходимость писать какой-либо нативный код из-за встроенных конфигураций Android Studio/XCode. Это отражается в файловой структуре, когда вы создаете приложение Expo с помощью команды expo init <project-name>..

Как вы можете видеть на изображении выше, универсальное приложение React Native будет иметь две дополнительные папки, android и ios, которых нет в приложении Expo, т. е. практически нет нативного кода в Java/Swift/Objective C!

Некоторые другие преимущества использования Expo:

  1. Вы можете сразу протестировать на реальном мобильном устройстве!
  2. Поделитесь своим приложением со ссылкой на выставку — не нужно размещать его в магазинах приложений!

Когда нельзя использовать Экспо (согласно Экспо):

  1. Приложения Expo не поддерживают выполнение кода в фоновом режиме
  2. Не все API для iOS и Android доступны в Expo. Bluetooth
  3. Если вы хотите использовать конкретную службу push-уведомлений вместо службы push-уведомлений/API Expo
  4. Если важно, чтобы размер вашего приложения был как можно меньше