Господа мобильщики, подскажите - есть задача заменить сторонние сервисы своими приложениями. Вопрос выбора технологии - реакт нэйтив или нативная аппка. Хочется потом внезапно не встрять с реакт нэйтивом, что оно к примеру не умеет в фоновом режиме работать и слать координаты девайса на сервак, или еще что. Где можно ознакомиться с примерным списком ограничений и преимуществ?
Два наиболее популярных подхода к разработке под React Native:
- Expo SDK (проще, но много ограничений, типа неподдержки Bluetooth, список есть в доках)
- Ejected Expo / чистый React Native (больнее, но практически без ограничений)
Во втором случае возможности примерно ничем неограничены (в частности, делали у себя геолокацию в бэкграунде), даже если чего-то не хватает всегда можно написать свой нативный модуль и подключить из JS (так тоже делали для кастомной интеграции с Raspberry Pi). Главная проблема с React Native у нас была в поддержке нативных зависимостей (gradle / cocoapods), но кажется с этим проблемы будут и при нативной разработке. Еще с перфомансом могут быть проблемы, но там уже зависит от конкретной задачи.
Из очевидных преимуществ: можно использовать любимые re-frame / fulcro и подключаться к процессу через REPL. Насколько знаю, в shadow-cljs сейчас хорошая поддержка React Native, Томас Хеллер специально выделил на него много времени летом.